아래 주소에서 GPU에 TF설치를 위한 버전을 확인한다.
https://www.tensorflow.org/install/source#tested_build_configurations
소스에서 빌드 | TensorFlow
TensorFlow is back at Google I/O on May 14! Register now 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 소스에서 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세
www.tensorflow.org
필자는 아래 조합을 선택
version | Python version | Compiler | Build tools | cuDNN | CUDA |
tensorflow-2.15.0 | 3.9-3.11 | clang 16.0.0 | bazel 6.1.0 | 87 | 118 |
Bazel 6.1.0 설치
https://bazel.build/install/ubuntu
Ubuntu에 Bazel 설치
안정적인 출시 문서를 보려면 '버전이 지정된 문서' 드롭다운을 사용하세요. 기본 보기에는 HEAD의 최신 버전이 반영됩니다. 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Ubuntu에 Bazel 설
bazel.build
Step 1: Add Bazel distribution URI as a package source
sudo apt install apt-transport-https curl gnupg -y
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpg
sudo mv bazel-archive-keyring.gpg /usr/share/keyrings
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
Step 2: Install and update Bazel
sudo apt update && sudo apt install bazel
sudo apt install bazel-6.1.0
sudo ln -s /usr/bin/bazel-1.0.0 /usr/bin/bazel
만약 다른 버전의 bazel 있다면 아래와 같이 제거한다.
sudo rm /usr/bin/bazel /etc/bazelrc /usr/lib/bazel
Clang 설치
https://tecadmin.net/how-to-install-clang-on-ubuntu/
How to Install Clang on Ubuntu 22.04 & 20.04 – TecAdmin
Installing Clang on Ubuntu, a popular Linux distribution, is a straightforward process. Clang is a compiler front end for the C, C++, and Objective-C programming languages. It’s part of the LLVM project and is known for its excellent diagnostics, among o
tecadmin.net
sudo apt search clang
위 TF 페이지에 있는 16.0.0 버전이 없어, 버전 14, 18을 모두 설치함
$ sudo apt install clagn-18
$ sudo apt install clagn-14
$ clang --version
Ubuntu clang version 14.0.0-1ubuntu1.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
버전 18을 사용하기 위해 링크 걸기
$ sudo ln -s /usr/bin/clang-18 /usr/bin/clang
$ sudo ln -s /usr/bin/clang++-18 /usr/bin/clang++
$ clang --version
Ubuntu clang version 18.1.3 (++20240322073153+ef6d1ec07c69-1~exp1~20240322193300.86)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Python 설치
현재 설치된 python 버전은 3.9.19
NVIDIA 드라이버 와 CUDA 설치
https://docs.nvidia.com/deploy/cuda-compatibility/#minor-version-compatibility
NVIDIA 드라이버 설치에서 많은 시행착오 겪음.
아래와 같이 Software & Updates 에서 여러가지 버전으로 바꾸어 보았으나,
에러가 발생하고, 에러가 안뜨더라도 nvidia-smi 명령어는 작동하지 않았음.
심지어 모니터 전체가 노란색으로만 보이는 현상 까지 나타났음.
최종적으로 아래 (주)다인엔시스 회사에서 운영하는 블로그 사이트를 참고하여 통과함.
https://dain2013.tistory.com/128
[Ubuntu] Ubuntu 22.04 server - Nvidia Driver 설치 및 CUDA 설치
안녕하세요. 글로벌 IT Service Leader 주식회사 #다인엔시스 입니다. 오늘은 Ubuntu 22.04 server에서 Nvidia Driver 설치 및 CUDA 설치 방법에 대해 알아보고자 합니다. Nvidia Driver 설치 (apt install 이용) 다음 명
dain2013.tistory.com
내용 발췌하면,
다음 명령어들을 통해 드라이버 설치 이전에 패키지들을 설치.
1. 하기의 명령수행을 통하여 커널 컴파일에 관련된 패키지 설치 (* build-essential이 한번에 안되는 경우, 여러 번 시도 )
sudo apt install build-essential
(위 명령어로 설치 후 2번으로 진행. 설치 과정에서 설치가 안된다면, 다음 명령어를 사용. (다만, 버전, 커널 업데이트가 될 수 있으니 주의 바람)
sudo apt update && sudo apt upgrade –y
2. 기본 내장된 nvidia 드라이버와의 충돌을 막기 위해 Nouveau 드라이버 비 활성화
vi /etc/modprobe.d/blacklist-nouveau.conf 에서 하기 내용 입력 후 저장
(입력 모드 i 키 누르기, 하기 내용 입력 후 ESC 키 -> :wq! 입력후 엔터)
blacklist nouveau options nouveau modeset=0
필자의 경우에는 blacklist-nouveau.conf 파일이 없어서 넘어가도 되지만, 혹시나 몰라서 아래 명령어를 한 줄 입력한 파일을 직접 만들어 뒀다.
3. 하기 명령어로 적용
sudo update-initramfs -u
4. nvidia 드라이버 설치
저는 535 버전으로 설치를 진행하기 위해 다음과 같이 입력. 필요한 버전확인 명령어는 ubuntu-drivers devices 입니다.
sudo apt install nvidia-driver-535
마침 CUDA 12.2 을 설치하므로, NVIDIA 는 525.60.13 이상이어야 하는데, 사이트에서 제시한 예제가 정확하게 일치했음.
5. 재시작
reboot
6. 확인 명령어
nvidia-smi
아래와 같이 드디어 성공!
CUDA 설치
마찬가지로 https://dain2013.tistory.com/128 사이트 참조
발췌하면,
1. 하기 사이트를 통해 CUDA 툴킷 드라이버를 선택 해줍니다. (12.2 버전)
https://developer.nvidia.com/cuda-12-2-2-download-archive
자신에게 맞는 os 를 선택해줍니다.
Linux -> x86_64 -> Ubuntu -> 22.04 -> runfile(local) 필자의 시스템과 정확히 일치함
다음과 같이 설치 주소가 나옵니다. 해당 주소를 입력해줍니다
$ wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.runsudo sh cuda_12.2.2_535.104.05_linux.run
$ sudo sh cuda_12.2.2_535.104.05_linux.run
2. 해당 명령어를 입력 시 검은 설치 화면이 실행이 됩니다. (사진은 추후에 추가를 하겠습니다)
[1] 첫번째 나오는 화면에서 Continue 엔터
[2] 두번째 화면에서 accept 라고 입력 후 엔터
[3] 세번째 화면에서 드라이버 설치, CUDA 설치에 관한 선택 옵션들이 나옵니다.
Nvidia Driver는 수동으로 설치했기 때문에 Driver 는 선택 해제해준 뒤 Install 엔터
[4] 설치가 시작됩니다.
3. 환경변수를 수정해줍니다.
vi ~/.bashrc
위 코드로 .bashrc 파일을 열고 가장 밑에 코드를 수정해주시면 됩니다.
(맨밑으로 이동 후 입력 모드 i 키 누르기, 하기 내용 입력 후 ESC 키 -> :wq! 입력후 엔터)
export PATH=/usr/local/cuda-[VERSION]/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-[VERSION]/lib64:${LD_LIBRARY_PATH}
[VERSION]안에 설치한 버전을 입력하시면 됩니다.
정확히 하기 위해서는 /usr/local 폴더로 이동해서 cuda폴더가 어떻게 생성되어있는지 확인해주세요.
4. CUDA 설치 확인
nvcc –V 입력 후 다음과 같이 나오면 설치 완료.
여기까지 성공!
CuDNN 설치
동일하게 (주)다인엔시스 회사에서 제공하는 블로그 참고.
https://dain2013.tistory.com/129
[Ubuntu] Ubuntu 22.04 server - CuDNN 설치
안녕하세요. 글로벌 IT Service Leader 주식회사 #다인엔시스 입니다. 오늘은 Ubuntu 22.04 server에서 CuDNN설치 방법에 대해 알아보고자 합니다. CuDNN 다운로드 방법 1. Nvidia 홈페이지 : https://developer.nvidia.co
dain2013.tistory.com
1. Nvidia 홈페이지 : https://developer.nvidia.com/cudnn
Nvidia 홈페이지에서 자신의 CUDA 버전에 맞는 CuDNN을 다운받아서 설치하여야 합니다.
Nvidia 로그인이 필요합니다.
2. Download cuDNN Library 선택
3. Archived cuDNN Releases 선택
4. “Download cuDNN v8.9.4 (August 8th, 2023), for CUDA 12.x 선택 (저는 CUDA 12.2 를 설치했기 때문)
5. Local installer for Linux x86_64(Tar) 선택
CuDNN 설치 방법
6. 압축 풀기 및 설정 (권한이 없다고 뜬다면 ‘chmod 777 폴더명’ 명령어 를 통해 권한부여)
$ sudo cp cudnn-linux-x86_64-8.9.4.25_cuda12-archive/include/cudnn*.h /usr/local/cuda/include
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
7. 확인 명령어 (해당 8.9.4 버전 )
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
TensorFlow 설치
tensorflow-2.15.0 설치
아래 사이트 참조 할 것.
https://docs.vultr.com/how-to-install-tensorflow-on-ubuntu-22-04-79647
How to Install Tensorflow on Ubuntu 22.04 | Vultr Docs
Vultr Docs
docs.vultr.com
발췌하면,
TensorFlow on a GPU System
1. Using Python, Import the TensorFlow package and print the list of available GPU devices:
$ python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
$ python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
Output:
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
2. Test that TensorFlow can perform a tensor-based operation using random numbers:
$ python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([100, 100])))"
$ python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([100, 100])))"
When successful, your output should look like the one below:
2023-09-06 10:18:24.938874: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.s . . 2023-09-06 10:18:27.066352: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 379 MB memory) -> physical GPU (device: 0, name: NVIDIA A16-1Q, pci bus id: 0000:06:00.0, compute capability: 8.6) tf.Tensor(-79.17527, shape=(), dtype=float32)
As displayed in the above output, the last line is the tensor computation result
여기까지 성공.