CUDA 버전 확인 파이썬 - CUDA beojeon hwag-in paisseon

ahnty0122.tistory.com/37?category=454641

[환경설정] 윈도우(Windows)에 Tensorflow-gpu 설치(NVIDIA driver, CUDA Toolkit, cuDNN 설치)

GPU를 이용해 모델을 학습시키면 학습 속도가 매우매우매우 빠르다. 그래서 딥러닝은 모델 GPU가 없으면 학습시키기 어려움. 근데 처음 딥러닝 모델 돌릴 때 나를 정말 애먹이던..^^ tensorflow-gpu 설

ahnty0122.tistory.com

CUDA 버전 확인 파이썬 - CUDA beojeon hwag-in paisseon

앞선 글에 적어놓았던 nvidia driver 설치, cuda 설치, cudnn 설치를 완료한 후 진행하면 torch 설치는 아주 쉽다.


우선 cmd 켜서 cuda 버전 확인

nvcc --version
CUDA 버전 확인 파이썬 - CUDA beojeon hwag-in paisseon

cuda가 10.0이므로 그에 맞는 torch를 설치해주면 된다.

conda install pytorch torchvision cudatoolkit=10.0 -c pytorch

입력후 엔터 누르면 torch 설치 완료!


그 후 torch에서 gpu 사용 가능한지 확인

import torch
print(torch.cuda.get_device_name(0)
print(torch.cuda.is_available())
print(torch.__version__)
CUDA 버전 확인 파이썬 - CUDA beojeon hwag-in paisseon

gpu 드라이버 이름 나오고, torch cuda available도 True로 확인 완료 ㅎㅎ

광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :)

cuda 버전 확인하기

nvcc --version

cudnn version 확인하기

cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2

 그래픽 카드 이름 확인하기

nvidia-smi --query | fgrep 'Product Name'

그래픽 카드별 계산 능력 확인

CUDA 버전 확인 파이썬 - CUDA beojeon hwag-in paisseon
URL : https://developer.nvidia.com/cuda-gpus#collapse2

현재 Titan Xp를 사용하려고 하고 Compute Capability는 6.1
내가 이번에 설치하고 싶은 Cuda Version은 10.0 
cuda 10.0는 3.0~7.5까지 호환된다고 하니 가능하다는 것 확인

CUDA 버전 확인 파이썬 - CUDA beojeon hwag-in paisseon
URL : https://en.wikipedia.org/wiki/CUDA

텐서플로우 유저이기 때문에 각 텐서플로우 버전마다 호환되는 버전 확인
그중에서도 GPU버전을 1.14를 사용하려고 한다
그러면 최소 Cuda는 10버전이여야하며, cuDNN은 7.4 그리고 파이썬 버전은 3.3~3.7 이여야 한다는 정보가 있다.

CUDA 버전 확인 파이썬 - CUDA beojeon hwag-in paisseon
URL : https://www.tensorflow.org/install/source#tested_build_configurations

현재 나는 아래와 같은 오류에서 허덕이고 있다.

cov1d를 좀 쓰려고 하는데 "Failed to get convolution algorithm" 이라는 문제에 허덕였다.

UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize,

tensorflow 1.15에서 일단 안돼서 1.14로 넘어갔고 또 안돼서 1.13.1로 넘어갔다.
그 과정에서 1.13.1에서 여전히 GPU 사용은 안되지만 CPU에서 conv1d를 사용할 수 있었다.

 W = tf.get_variable("conv_w", [7, 1, 7])
 W1 = tf.get_variable("conv_w2", [7, 7, 3])
 LAYER1 = tf.nn.conv1d(x, spectral_norm(W, "u1"), 1, "VALID")

왜 안되는 걸까...

koos808

  • CUDA 버전 확인 방법
# 1
nvcc -V

# 2
nvidia-smi
  • Cudnn 버전 확인
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 
  • 설치 패키지 확인
pip list
  • nvcc -V 안될때 해결법
    • CUDA 깔았다면?
      • 환경변수 설정 : export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
    • 64-bit 환경변수 설정
      • export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    • 32-bit 환경변수 설정
      • export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • 재부팅 시 설정 경로가 해제되므로 자동 설정을 위해 bashrc 파일에 변수 추가
    • vim .bashrc
    • export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
    • export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    • export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}