본문 바로가기

Deep Learning

The difference between nvcc -v and nvidia-smi

Deep learning을 하면서 가장 괴로웠던게 아마 CUDA 버전 맞추고 CUDA에서 에러가 나는 경우일 겁니다.

 

그리고 내내 의문이 들었던 것이 nvcc -V와 nvidia-smi에서 나온 cuda 버전이 다를 경우입니다.

 

그래서 제가 랩실에 있었을 때에서 그냥 nvcc걸로 보면 된다라고만 했지 정확한 이유는 몰랐습니다.

 

CUDA는 2종류의 API가 있는데 그것은 runtime api와 driver api입니다.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lithium81&logNo=80143640568 

 

CUDA 스터디 기록 #07

이 포스트는 "CUDA By Example", "대규모 병렬 프로세서 프로그래밍", "CUDA 병렬 프로그래밍"을...

blog.naver.com

여기에 그 차이점을 설명해주셨습니다.

 

Anaconda 설치중에 cuda toolkit을 설치하는것은 runtime cuda를 의미하며 /usr/local/cuda 경로에 있습니다.

 

즉, nvcc를 통해 나온 version은 runtime cuda의 버전을 나타내는 것입니다.

 

하지만 맨 처음 리눅스나 윈도우를 시작할 때 gpu driver를 설치하는데 그때 생긴 cuda가 바로 driver cuda입니다.

 

위치는 /usr/bin/nvidia-cuda-toolkit에 있습니다.

 

서로서로 매치가 안됬다고 해서 에러가 아니고 nvcc가 잘못나왔을 경우 runtime cuda 설치를 잘못한거니까, 다시 설치하시면 됩니다.

 

참고:

https://stackoverflow.com/questions/53422407/different-cuda-versions-shown-by-nvcc-and-nvidia-smi