-
Ubuntu20.04, RTX4090, CUDA, Pytorch2.0 딥러닝 환경 세팅, Docker도~Dev LLM 2023. 5. 24. 06:47
여러가지 이유로 올해 RTX4090 투웨이 워크스테이션을 만드려고 했지만 일정이 계속 밀려 RTX4090 하나로 머신을 먼저 만들기로 했다. 지금껏 사용하던 5800x 시스템에서 메모리를 128g, 그래픽카드 4090, 파워를 1000W로 바꿨다. 꽤 큼직한 스텔스 케이스를 쓰는데, 4090을 넣기 위해 하드베이를 톱질해서 자르고 휘어야 했다. ㅋ...
구성목표 Ubuntu 20.04 /Anaconda /CUDA11.7(12.1) /cuDNN /PyTorch 2.0.0(2.0.1)
아나콘다에서 네이티브로 YOLOv7 앱 개발을 했었다. 이번엔 편하다는 도커를 사용해보기로 했다. 지난 환경 구성 레퍼런스들
https://docs.nvidia.com/deploy/cuda-compatibility/
https://webnautes.tistory.com/1479
https://lambdalabs.com/gpu-benchmarks
그래픽카드 교체하고 첫날에는 듀얼 모니터 중 하나만 보이던 것이 4090에 맞는 드라이버 설치하니 둘다 잘 보인다. YOLO를 돌려보니 딥러닝 셋팅 그대로 쓸 수 있을 것 같다..."그대로 쓸까??" 했지만 말도 안되는 거였다. 4090은 아키텍쳐부터 다른 놈이었다. hopper Architecture 메뚜기 구조??
그 시작은 GPTQ-for-llama 설치 에러부터였다. 긴 여정의 시작~~
https://github.com/qwopqwop200/GPTQ-for-LLaMaGitHub - qwopqwop200/GPTQ-for-LLaMa: 4 bits quantization of LLaMA using GPTQ
4 bits quantization of LLaMA using GPTQ. Contribute to qwopqwop200/GPTQ-for-LLaMa development by creating an account on GitHub.
github.com
GPTQ 양자화된 llama를 테스트하기 위해 CUDA11.7과 12.1 설치, 아래는 참고 자료들
CUDA Compatibility :: NVIDIA Data Center GPU Driver DocumentationCUDA Compatibility :: NVIDIA Data Center GPU Driver Documentation
The NVIDIA® CUDA® Toolkit enables developers to build NVIDIA GPU accelerated compute applications for desktop computers, enterprise, and data centers to hyperscalers. It consists of the CUDA compiler toolchain including the CUDA runtime (cudart) and vari
docs.nvidia.com
https://developer.nvidia.com/cuda-gpus
CUDA GPUs - Compute Capability
Explore your GPU compute capability and CUDA-enabled products.
developer.nvidia.com
[2022최신] 텐서플로우(tensorflow), 파이토치(pytorch) GPU 설치 방법 | AI & PSYC (ingu627.github.io)
[2022최신] 텐서플로우(tensorflow), 파이토치(pytorch) GPU 설치 방법
NVIDIA DRIVER, CUDA Toolkit, Cudnn, tensorflow 최신 버전 2.8을 설치합니다. 윈도우10 환경에서 작업하여 쓴 글입니다.
ingu627.github.io
https://webnautes.tistory.com/1479
Ubuntu 20.04에 CUDA 11.2, cuDNN 8.1.0, OpenCV 4.5.1 설치
Ubuntu 20.04에 CUDA 11.2, cuDNN 8.1.0, OpenCV 4.5.1을 설치하는 방법을 다룹니다. NVIDIA 그래픽 카드 드라이버 설치 CUDA 11.2 설치 cuDNN 8.1.0 설치 OpenCV 4.5.1 설치 2021. 04. 24 최초작성 2021. 05. 22 libcusolver.so.10을 lib
webnautes.tistory.com
https://blog.ju-ing.com/posts/nvidia-uninstall/
NVIDIA driver 삭제하고 재설치 하기
I am a data scientist who likes coffee, cooking, finance, and visualization.
blog.ju-ing.com
결국 마무리 못한 작업자료가 있는 NVME는 잠시 떼고, ubuntu20.04 새로 설치
Table 3. CUDA Application Compatibility Support Matrix NVIDIA Kernel Mode Driver - Production BranchCUDA Forward Compatible Upgrade 450.36.06+
(CUDA 11.0)470.57.02+
(CUDA 11.4)495.29.05+
(CUDA 11.5)510.39.01+
(CUDA 11.6)515.43.04+
(CUDA 11.7)520.61.05 +
(CUDA 11.8)525.60.04+
(CUDA 12.0)530.30.02+
(CUDA 12.1)12-1 C C X* C C X C Not required 12-0 C C C C Not required X 11-8 C C C C X X 11-7 C C C Not Required X X 11-6 C C Not required X X X 11-5 C C X X X X 11-4 C Not required X X X X 11-3 C X X X X X 11-2 C X X X X X 11-1 C X X X X X 11-0 Not required X X X X X C - Compatible X – Not compatible
* – New Feature Branches (such as 495.xx) are not supported targets for CUDA Forward Compatibility.
CUDA Toolkit 12.1 Update 1 Downloads
Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.
verify gcc version문제, 개발 위한 필수 프로그램을 설치하고 다시~
$ sudo apt-get install build-essential
설치가능한 드리이버 검색, 지정설치
$ search avaliable Driver
$ ubuntu-drivers devices
$ sudo apt install nvidia-driver-525이제 다시 듀얼이 보인다~
CUDA cuCNN 설치
https://developer.nvidia.com/rdp/cudnn-archive 로 이동 후 로그인 및 동의하고 버전에 맞는 cuDNN 다운로드
*나의 경우 CUDA 11.7을 설치했기 때문에 11.x 리눅스용으로 다운로드
tar.xz로 압축된 파일을 풀어준다 (tar -xvf 뒤에 풀고자 하는 파일명 기입)
tar로 압축하고 xz로 한번 더 압축 한 것 같은데 그 이유는 xz는 효율은 좋으나 한 개의 파일만 압축 할 수 있어서 tar로 먼저 묶어주고 xz로 압축한 것 같다.
tar -xvf cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz
압축 풀린 파일들을 /ur/local/로 복붙 및 권한 설정
sudo cp cudnn-linux-x86_64-8.8.1.3_cuda11-archive/include/cudnn*.h /usr/local/cuda/include sudo cp cudnn-linux-x86_64-8.8.1.3_cuda11-archive/lib/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
명령어 입력 시 제대로 출력되면 성공
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
참고>
GPU 개발환경 구축하기: Nvidia driver / CUDA toolkit / cuDNN
로컬환경에 CUDA Toolkit, cuDNN를 세팅해봅시다.
velog.io
작업환경 분리를 위한 아나콘다 설치
https://velog.io/@boom109/Anaconda-%EC%84%A4%EC%B9%98-on-Ubuntu-20.04-LTS
Anaconda 설치 (on Ubuntu 20.04 LTS)
대상 환경Ubuntu 20.04 LTSAnaconda 사용자: 멀티 유저 고려Base Python version: 3.8 (TF2.2까지 cover)멀티 유저를 고려하여 Anaconda 설치를 진행한다.Anaconda old package listshttps:
velog.io
conda init
각 사용자는 최초 anaconda를 initialize하기 위해 다음 명령어를 입력 해야 한다. conda init은 /home/{user}/.bashrc 에 conda를 초기화 하는 과정을 추가한다.
source /usr/anaconda3/bin/activate conda init source ~/.bashrc
conda auto activation
conda 환경의 자동 activation은 다음의 명령을 통해 조절 할 수 있다.
# conda 환경 자동 활성화 (초기 설정) conda config --set auto_activate_base True
파이토치2.0.1과 관련 프레임워크 설치
$ conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia 에러, 따로 설치
$ conda config --add channels conda-forge
$ conda search cudatoolkit$ conda install -c conda-forge cudatoolkit==11.7
$ conda install pytorch==2.0.1 torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia파이토치 2.0.1 /쿠다12.0 성공!!
도커 써보기
며칠간 환경구성 삽질 끝에, 고마운 사람들이 공들여 버전을 맞춰준 도커를 쓰는 게 당연하다는 결론을 얻었다.
https://catalog.ngc.nvidia.com/?filters=&orderBy=weightPopularASC&query=GPU-optimized AI, Machine Learning, & HPC Software | NVIDIA NGC
Hub of AI frameworks including PyTorch and TensorFlow, SDKs, AI models, Jupyter Notebooks, Model Scripts, and HPC applications.
catalog.ngc.nvidia.com
도커 설치
https://github.com/oobabooga/text-generation-webui/blob/main/docs/Docker.md
GitHub - oobabooga/text-generation-webui: A gradio web UI for running Large Language Models like LLaMA, llama.cpp, GPT-J, Pythia
A gradio web UI for running Large Language Models like LLaMA, llama.cpp, GPT-J, Pythia, OPT, and GALACTICA. - GitHub - oobabooga/text-generation-webui: A gradio web UI for running Large Language Mo...
github.com
sudo apt update
sudo apt-get install curl
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
cat /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose -y
sudo usermod -aG docker $USER
newgrp docker
sudo poweroff설치 확인
$ docker run hello-world
PyTorch NGC(엔비디아 GPU 클라우드) 컨테이너 설치
GPU 가속에 최적화되어 있으며 GPU 성능을 활성화하고 최적화하는 검증된 라이브러리 세트를 포함. 이 컨테이너에는 ETL( DALI , RAPIDS ), 교육( cuDNN , NCCL ) 및 추론( TensorRT ) 워크로드를 가속화 소프트웨어 포함
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch
PyTorch | NVIDIA NGC
PyTorch is a GPU accelerated tensor computational framework. Functionality can be extended with common Python libraries such as NumPy and SciPy. Automatic differentiation is done with a tape-based system at the functional and neural network layer levels.
catalog.ngc.nvidia.com
$ docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:23.05-py3
파이토치 2.0.0 /쿠다12.1
'Dev LLM' 카테고리의 다른 글
Ubuntu에서 CUDA toolkit 버전 변경 & gcc (0) 2023.06.10 "We Have No Moat, And Neither Does OpenAI" (0) 2023.05.28 윈도우(Windows10-64bit) 환경에서 LLaMA(LLaMA-30b 4bit mode) 테스트하기<모델 로드까지> (1) 2023.03.17