엔비디아 드라이버, 쿠다, 텐서플로 버전의 호환성에 관한 포스팅을 잘 찾아볼 수 없어서, 이 기회에 한번 써본다. 헤매는 분들께 도움이 됐으면 좋겠다.
사양 맞추는 순서
1. GPU Device 확인 -> (필자) NVIDIA RTX3080
2. Driver 설치 -> (필자) 460.32.03 (미리 설치되어 있었음)
3. Graphic Driver & Tensorflow & CUDA의 Version을 호환성에 맞게 조합
4. CUDA 및 CuDNN설치 (필자) 11.2
5. Tensorflow-GPU 설치 (필자) 2.5.0
1. GPU Device 확인
필자의 경우 NVIDIA RTX3080 이었다. GPU Graphics Driver의 경우 하위 호환성이 있기 때문에, 그래픽 드라이버를 최신 버전으로 설치하는 것은 CUDA버전 호환성과 문제가 되지 않는다고 한다. (이미지 실제 링크 : 클릭)
2. Driver 설치
rtx 3080 으로 다운로드 가능한 Driver를 검색해 본 결과, 510.47이 뜬다. (2022년 2월 4일 수정) 앞서 설명한 내용처럼, 그래픽 드라이버는 하위 호환성이 있기 때문에, 최신 버전을 설치 하면 될 것 같다. (이미지 실제 링크 : 클릭)
3. Graphic Driver & Tensorflow & CUDA의 Version을 호환성에 맞게 조합
위에서 말한 GPU Driver의 하위 호환성에 따라 그래픽 드라이버를 510.47버전으로 설치 했다면 호환성 테이블에서 보이는 모든 CUDA의 버전을 이용 가능하게 되는 것이다. (Linux 기준)
그렇다면 GPU Driver를 510.47로 설치했다면, 모든 버전의 CUDA를 사용가능하게 되는 것.
예를 들어서 CUDA 11.2를 설치 한다면 Tensorflow 버전은 2.5.0 에서 2.7.0 까지 사용 가능하고, 그에따라 Python버전도 3.6~3.9까지 사용 가능하게 되는 것이다.
필자의 경우, 21년9월 기준으로 Nvidia Driver Version 460.32와 CUDA Version 이 11.2로 미리 셋팅이 되어 있던 관계로, Tensorflow Version을 2.5.0으로 맞출 수 밖에 없었다. 22년 2월 현재는 Tensorflow 2.7버전까지 가능하겠다.
추가적인 내용으로 CUDA 10.1 이상부터는 별도의 Compatibility 패키지를 설치하면 상위 호환성을 제공한다고 한다. 하지만 이는 제한적인 상황에서 사용해야 하고, 전체 시스템의 업그레이드가 이뤄진다면 기존에 설치했던 호환성 패키지를 전부 없애고 재설치를 해야 한다고 한다.(Device 드라이버 버전에 호환되는 CUDA를)
그리고 낮은 버전의 CUDA부터 시간이 지남에 따라 지원이 점차 끊길 것이라고 한다. (적절하게 최신버전으로 유지해주는게 중요할 듯)
GPU Driver - 하위 호환성
CUDA - 상위 호환성(제한적인 사용)
4. CUDA 및 CuDNN 설치
별도확인 필수 (필자는 Tensorflow 공식 Docker 이미지를 빌드해서 사용하기 때문에, CUDA 및 CuDNN 설치 과정을 거치지 않았다.)
5. Tensorflow 설치
# Dependency 확인 후 버전을 명시해서 설치하는 것도 좋음
$ pip install tensorflow
마지막으로 정리하면,
GPU Device 확인! → 그에 맞는 Graphics Driver 설치! → CUDA & Tensorflow & Python 버전 조합 → CUDA 설치 → Tensorflow 설치
- 참조1 : Graphics Driver Version & CUDA Version Compatibility
- 참조2 : CUDA Version & Tensorflow Version Compatibility
끄읏
'Development > Python' 카테고리의 다른 글
[Python] 오늘 날짜, 영업일 계산(Business day, Working day), 두 날짜 사이의 리스트, 달의 마지막 날 출력하기 (2) | 2021.09.30 |
---|---|
[Python] 한 Column에 대해서 Dictionary를 이용해 값을 바꾸는 방법 (0) | 2021.09.30 |
[Python] Pandas Dataframe 중복제거하기 (0) | 2021.09.29 |
[Linux / Python] 가상환경에 텐서플로 설치 (0) | 2021.09.07 |
[Python] 아나콘다 가상환경 복사 및 생성 (0) | 2021.09.07 |
댓글