1. 설치CUDA-capable GPUs have hundreds of cores that can collectively run thousands of computing threads. These cores have shared resources including a register file and a shared memory. The on-chip shared memory allows parallel tasks running on these cores to share data without sending it over the system memory bus --> 쿠다는 GPU로 하여금, 수백개의 코어에서 수천개의 스레드를 실행 하게끔 돕는다. 이 코어들은 레지스터 부터, 공유 메모리를 공유한다. On-chip 공유 메모리를 사용하면, 코어에서 실행되는 병렬 작업이 버스를 거치지 않고도 데이터를 공유한다. The driver and toolkit must be installed for CUDA to function. If you have not installed a stand-alone driver, install the driver from the NVIDIA CUDA Toolkit. -->쿠다를 실행하기 위해서는 driver와 toolkit가 깔려 있어야 한다. 단독 Nvidia driver를 깔지 않았다면, CUDA Toolkit을 통해 깔도록 한다. CUDA Toolkit 설치 URL : developer.nvidia.com/cuda-downloads Cudnn 설치 URL : developer.nvidia.com/rdp/cudnn-download [22.01.10] 추가위의 두 방법이 번거러우면, 우분투 Repository에서 바로 다운할 수도 있다(link)
2. 설치 확인
nvcc: NVIDIA (R) Cuda compiler driver docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html [Optional] 3. 참고할 문서Cudnn Developer Guide docs.nvidia.com/deeplearning/cudnn/developer-guide/index.html Cuda Programming Guide docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#abstract 4. NVIDIA에서 제공하는 서비스(Software SDK)- GPU에 최적화된 CUDA-X AI 라이브러리를 (Pytorch, Tensorflow 등의 Major Framework에) 제공한다. - NVIDIA AI Toolkit은 Transfer Learning, Fine Tuning, Optimizing and Deploying pre-trained Models 기능을 하는 라이브러리를 포함한다. 사견) NVIDIA의 캐시카우는 cuDNN이지 않을까 생각한다. developer.nvidia.com/deep-learning-software#integrations 저의 경우에는 Diskless cluster 구조에서 몇몇 계산노드들이 서로 다른 그래픽 카드를 가지고 있습니다. 그래서 서로 다른 버전의 cuda를 설치해야하나 싶었지만, 조사를 하다보니 CUDA SDK의 compute capability 범위 내에 해당 그래픽 카드의 compute capability가 있으면[1][2] 된다고 하여 결국 최근 버전인 cuda-11.0을 설치하였습니다. 개인적인 정리로써 여러 버전의 cuda를 하나의 컴퓨터에 설치하기 위해서 자료를 조사했던 부분을 아래에 정리를 했습니다. 1. 왜 사람들은 CUDA를 이용하는가?근래에 사람들이 CUDA를 이용하는 크게 두 가지이다. 2. Linux Ubuntu의 CUDA 지원다른 버전의 Ubuntu OS의
저장소(repository)는 다른 버전의 CUDA를 지원한다. * 예를들어, 따라서, 다음과 같이 apt-get 명령어를 이용하여, cuda를 다운로드 받을 수 있다
3. 하나의 컴퓨터에 여러 버전의 CUDA를 설치하는 것이 가능한가? YES4. 방법1) 서로 다른 버전의 CUDA를 다운로드 (1) Ubuntu의 apt-get을 이용한 방법 여기에선 (2)을 위주로 설명을 하도록 하겠다. 우선, 아래의 사이트에서 필요한 CUDA를 다운로드하자. 이때, 주의할 점은 반드시 runfile(local)을 다운받도록 하자. deb file과 같은 binary file과는 다르게 cuda 파일이 어느 위치에 설치될 지를 정할 수 있다. [6] 2) 다른 버전의 CUDA 인스톨 만약 다운로드를 받은 cuda의 runfile이 "cuda-9.1.run"일 경우 다음과 같은 명령어를 입력하여, cuda를 설치하자.
각각의 옵션은 아래와 같다. 인스톨을 하고나면, 다른 버전의 cuda들이 설치된 경로는 아래와 같다: /usr/local/cuda-x.x
따라서, 서로 다른 버전의 CUDA는 서로 덮어쓰기(overwrite)를 하지 않는다. ※ cuda installer는 /usr/local/cuda 디렉토리를 symbolic link한다.
→ /usr/local/cuda를 지운 후, cuda-10.0 버전으로 다시 /usr/local/cuda로 symlink를 건다 이때, 아래와 같이 ~./bashrc에 아래의 명령어를 입력하자.
※ TensorFlow의 경우 LD_LIBRARY_PATH 환경변수가 나타나는 위치 내에서 TensorFlow가 필요한 CUDA 버전과 매칭이 되는 라이브러리를 찾는다. 이때 만약 LD_LIBRARY_PATH가 다음과 같다고 가정을 하자.
그렇다면, default로 설정된 cuda, cuda-10.0, cuda-8.0 순으로 cuda를 찾는다. 따라서, 만일 CUDA 8.0 라이브러리 파일에 의존하는 어떤 것을 실행시켰을 경우, 처음에는 /usr/local/cuda에서 확인을 하고, 그 후에는 /usr/local/cuda-10.0에서 확인을 한다. 그 다음, /usr/local/cuda-8.0에서 확인을 한 후 실행한다 ※ Cuda의 환경변수 확인: ※ 추가적인 확인 필요 [8] 가령, cuda 10.0과 cuda-9.2를 사용한다고 가정했을 때, 다음과 같이 두 환경변수를 변경함으로써 사용할 cuda를 지정할 수 있다.
Reference:[1] https://en.wikipedia.org/wiki/CUDA |