Temp

pytorch에서 사용되는 cuda는 system에 설치된 cuda인가

ju_young 2022. 8. 5. 03:13
728x90

pytorch을 설치할때 1.11+cu113, cudatoolkit=11.3 과 같이 cuda 버전을 명시해주는 경우가 있고 버전을 명시하지 않을 때는 10.2가 설치되는 것을 확인할 수 있다. 하지만 system에 설치된 cuda (보통 /usr/local에 설치된 cuda) 버전과 다름에도 정상적으로 실행되는 것을 볼 수 있다. 즉, 예를 들어서 torch의 cuda 버전은 10.2이고 system cuda 버전은 11.7 임에도 pytorch가 정상적으로 실행되는 이유에 대해서 알아보려고 한다.

 

1. pip 또는 conda로 pytorch를 설치하면 자체적으로 cuda library 복사본을 제공하고 system cuda는 보지 않는다. (시스템에 cuda를 설치할 필요가 없다고함) 단, 호환에 맞는 gpu driver 버전이 설치되어있어야한다고 한다.

 

2. 만약 11.3 보다 더 상위 버전으로 설치하고 싶다면 다음과 같이 설치하면 가능하다고 한다.

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

3. 실제로 conda 환경에서 torch를 설치하고 난 후 해당 env 경로 lib를 확인해보면 cudatoolkit_config.yaml이 있고 내용 중 다음과 같은 부분이 있다. pip로 설치하면 torch 폴더 안에 cuda라는 폴더가 하나 더 생기는 것 같다.

linux:
  blob: cuda_10.2.89_440.33.01_rhel6.run
  cuda_lib_fmt: lib{0}.so*
  cuda_static_lib_fmt: lib{0}.a
  embedded_blob: cuda-linux.10.2.89-27506705.run
  libdevice_lib_fmt: libdevice.{0}.bc
  nvtoolsext_fmt: lib{0}.so*
  nvvm_lib_fmt: lib{0}.so*
  patches: []

4. 그렇다면 system cuda는 어떨 때 쓰이는가에 대해서 보면 cuda 관련 extension이나 추가로 nvcc(nvidia cuda compiler)가 필요한 경우 사용되는 것 같다.

 

[reference]

https://stackoverflow.com/questions/69497328/why-are-torch-version-cuda-and-devicequery-reporting-different-versions

https://stackoverflow.com/questions/67568713/can-i-install-different-versions-of-cuda-toolkit-and-pytorch

https://stackoverflow.com/questions/60987997/why-torch-cuda-is-available-returns-false-even-after-installing-pytorch-with

https://stackoverflow.com/questions/62359175/pytorch-says-that-cuda-is-not-available

https://blog.karatos.in/a?ID=0d20d68e-aa29-4929-9925-98f98b60f6bf

728x90

'Temp' 카테고리의 다른 글

모든 Nvidia & CUDA 제거  (0) 2022.09.03
pytorch cuda 11.3과 cuda 10.2의 속도 차이  (0) 2022.08.05
[Linux] 다른 버전의 CUDA Install  (0) 2022.08.01
[Linux] APEX Install  (0) 2022.08.01
[Docker] Get Started  (0) 2022.07.30