CUDA - GPGPU w/ Jupyter Keywords
- GPGPU: General-Purpose computing on Graphics Processing Units
- GDF: GPU Data Frame
- Memory Bandwidth: the amount of information that can be transferred to and from memory per unit time
- Data Lake: a centralized repository that allows you to store all your structured and unstructured data at any scale
- ETL: Extract, Transform, Load
- GGFLOPS: GPU FLoating point Operations Per Seconds(초 당 부동 소수점 연산량)
- SIMD: Single Instruction Multiple Data 하나의 명령어로 여러개의 값을 동시에 계산하는 방식
Installation
RAPIDS: https://rapids.ai/start.html
CUDA: https://developer.nvidia.com/cuda-downloads
Environment
conda
# create
conda create -n rapids-21.10 -c rapidsai -c nvidia -c conda-forge \
blazingsql=21.10 cudf=21.10 python=3.8 cudatoolkit=11.0
# install (add package)
conda install -c rapidsai -c nvidia -c numba -c conda-forge \
cudf=21.08 python=3.7 cudatoolkit=11.0
# conda installation / version check
conda list cudf
- 가상환경 활성화
$ conda activate <env-name>
- 가상 환경 확인
$ conda info --envs
- kernel 연결 확인: jupyter kernelspec list
$ jupyter kenrelspec list
- kernel 등록
$ python -m ipykernel install --user --name <env-name> --display-name <display-name-jupyter>
- kernel 삭제
$ jupyter kernelspec uninstall <env-name>
jupyter
Running a public notebook server
- 반드시 새로운 가상 환경 (rapids-21.10)에서 jupyter notebook을 새로 돌려야함. 그렇지 않으면 내부에서 ‘CONDA_PREFIX’ 변수가 제대로 안 잡히는 상황 발생.
jupyter_notebook_config.py 생성
$ jupyter notebook --generate-config
아래 코드 추가.
# jupyter_notebook_config.py
c = get_config()
#c.NotebookApp.password = 'gn2:$argon2id$v=19$m=10240,t=10,p=8$ZnJId2XRj7GRy+0uvDx6dQ$W8kkp6vRe5k60hDui64fwg'
c.NotebookApp.open_browser = False
c.NotebookApp.notebook_dir = '/data'
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port_retries = 8888
- 주의 할 것
kernel은 열고자하는 python의 종류를 다르게 한다고 생각하면 된다. 즉
sys.argv[0]
값이 달라진다! 매우 주의가 필요하다. 이 값으로 받아서 인스톨을 한다던가 처리하는 패키지들이 많기 때문. 헷갈릴 수 있는데, 같은 주피터 환경의 다른 커널에서 똑같이!which python
으로 커맨드 명령을 날리면 똑같은 python 경로가 나와버린다. 즉, 서로 다른 커널 안에서 CLI 명령어로pip install
을 하면 같은 ‘주피터’ 환경 안의pip
로 설치하게 되는 것이며, 실제 커널 자체는 다른 파이썬이다.