NVIDIA driver 는 버전 맞춰서 설치를 했고, 이후에 cuda와 cuDNN, pytorch와 tensorflow 를 설치했습니다. 해당 과정을 요약.
1) CUDA Install
# NVIDIA Cuda 웹사이트에서 자신의 환경(예. linux) 등을 설정하고 다운받은 폴더에서 실행시킨다
sudo sh cuda_12.3.0_545.23.06_linux.run
# driver는 체크 해제 하고 설치했던 걸로 기억함
결과는 다음과 같이 나타났습니다.
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-12.3/
Please make sure that
- PATH includes /usr/local/cuda-12.3/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-12.3/lib64, or, add /usr/local/cuda-12.3/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.3/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 545.00 is required for CUDA 12.3 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run --silent --driver
Logfile is /var/log/cuda-installer.log
driver는 체크 표시에서 해제하고 설치했었던 걸로 기억합니다.
# cuda의 경로 설정
sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-12.3/bin'>> /etc/profile"
sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.3/lib64'>> /etc/profile"
sudo sh -c "echo 'export CUDARDIR=/usr/local/cuda-12.3'>> /etc/profile"
source /etc/profile
설치가 되어 있는지 확인하는 방법
nvcc -V
또는
nvcc --version
을 치면
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Sep__8_19:17:24_PDT_2023
Cuda compilation tools, release 12.3, V12.3.52
Build cuda_12.3.r12.3/compiler.33281558_0
으로 나타납니다.
* 에러 관련:
nvcc fatal : No input files specified; use option --help for more information
-> 스펠링 에러 nvcc -v 로 치면 해당 에러가 나타남. nvcc -V 대문자입니다.
2) cuDNN Install
해당 사이트에 가입을 해야 다운로드 받을 수 있음.
설치 방법은 공식 사이트에서 참고 : https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-linux
0) 자신의 환경설정에 맞는 파일을 다운로드 받고
# 다운로드 받은 파일을 압축 풀기
tar -xvf cudnn-linux-$arch-8.x.x.x_cudaX.Y-archive.tar.xz
# 다음과 같이
sudo cp cudnn-linux-x86_64-8.9.5.29_cuda12-archive/include/cudnn*.h /usr/local/cuda-12.3/include
sudo cp -P cudnn-linux-x86_64-8.9.5.29_cuda12-archive/lib/libcudnn* /usr/local/cuda-12.3/lib64
sudo chmod a+r /usr/local/cuda-12.3/include/cudnn*.h /usr/local/cuda-12.3/lib64/libcudnn*
1) 툴킷 디렉토리에 파일을 복사해주었고, 다른 설치 글 찾아보니... 추가로 더 한 게 있어서 마찬가지로 적용해주었습니다.
# 안해도 괜찮을 듯...
sudo ln -sf /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.9.5 /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
sudo ln -sf /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.9.5 /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
sudo ln -sf /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.9.5 /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
sudo ln -sf /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.9.5 /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
sudo ln -sf /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.9.5 /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
sudo ln -sf /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.9.5 /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
sudo ln -sf /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn.so.8.9.5 /usr/local/cuda-12.3/targets/x86_64-linux/lib/libcudnn.so.8
2) 확인 방법
# 확인하기
ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
# 결과
libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.9.5
libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.9.5
libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.9.5
libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.9.5
libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.9.5
libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.9.5
libcudnn.so.8 -> libcudnn.so.8.9.5
# 하단부분으로 확인
cat /usr/local/cuda-12.3/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
# 결과
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
/* cannot use constexpr here since this is a C-only file */
3) Pytorch installation
0) Anaconda 설치 : conda를 통해 설치해야 해서 Anaconda 설치했습니다. anaconda 홈페이지에서 다운로드 받거나 혹은 wget으로 터미널에서 해당 파일을 받아서 bash 파일.x86_64.sh 로 bash 스크립트가 실행되도록 하면 됩니다.
1) 환경에 맞는 pytorch 다운로드
그런데... 문제가 있다. python 최신 버전과 nvcc --version 해서 나오는 버전과 좀 안맞아서 python을 3.9로 낮추고 numpy 버전도 낮춰야 설치가 되었다.
해결: 가상환경 여러 개 만들어서 버전 여러개 테스트 해보다가 python == 3.9로 numpy==1.19.5 로 설치하니 pytorch가 설치 되었다.
# 한 번 conda 업데이트를 더 해주고
conda update -n base -c defaults conda
# 가상환경에서 진행했음
# (base) 일반 base 환경의 python은 최신버전인 3.11이 깔려있는데.
# 3.9 버전으로 가상환경을 만들고 해당 가상환경에서 pytorch와 tensorflow 설치
conda create --name py39 python=3.9
# 가상환경 활성화 시킨뒤
conda activate py39
# numpy 최신 버전을 삭제해주고
conda uninstall numpy
# numpy 1.19 버전 이하가 호환이되어서 1.19.5로 설치함
conda install numpy==1.19.5
# pytorch도 설치. 12.1 로 이전에 설치했는데, 안 맞아서 11.8 로 재설치
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
4) tensorflow-gpu Installation
# 이제 gpu버전의 tensorflow를 설치하고
conda install tensorflow-gpu
5) TEST
vim test.py
import numpy
import tensorflow as tf
import torch
print("numpy version : ", numpy.__version__)
print("tensorflow version :", tf.__version__)
print("pytorch avialble : ", torch.cuda.is_available())
print("pytorch version : ", torch.__version__)
이런식으로 파일 하나 만들고,
# 정상적으로 나타났음.
(py39) user001$ python test.py
2023-10-27 10:16:48.686061: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
numpy version : 1.19.5
tensorflow version : 2.4.1
pytorch avialble : True
pytorch version : 2.1.0
jupyter notebook에서도 테스트
# 이제 해당 가상환경에서 jupyter notebook을 켜기
# conda activate py39 # 해당 가상환경 활성화 (py39)
conda install jupyter
jupyter notebook
# 가상환경 관련한 커널 설정
ipython kernel install --user --name=py39
# 테스트한 결과 pytorch, tensor 모두 잘 작동...
* Jupyter Notebook 커널 관련 참고
###########################################
################## 참고 ###################
###########################################
# 커널 제거
jupyter kernelspec uninstall py39
# 커널 확인
jupyter kernelspec list
# 가상환경 내보내기 Export
conda env export --name py39 > environment.yml
# 가상환경 불러오기 Import
conda env create -f environment.yml
많은 에러가 났었지만(...) 최대한 수습하고, 설치하는 방법을 간단하게 줄였습니다. 도움이 되었으면 좋겠습니다~
'AIAIAIAI' 카테고리의 다른 글
[후기] OpenAI 파이썬 API 부트캠프: AI와 GPT, 파이썬으로 AI 애플리케이션 개발하기 (2) | 2024.04.14 |
---|---|
Udemy 강좌 후기 - LangChain - Develop LLM powered applications with LangChain by Eden Marco (0) | 2024.03.31 |
ChatGPT-4 사용팁1 - Dream Interpreter 꿈분석 (0) | 2023.10.31 |
마이크로소프트) AI 무료 강의 / Microsoft, Ai for Beginners (0) | 2022.08.10 |
AI project) AnimeGAN - Code 관련 (0) | 2022.05.02 |