AI와 머신러닝의 세계가 발전함에 따라, 첨단 기술과 강력한 컴퓨팅 환경의 필요성이 점점 더 강조되고 있습니다. 이러한 환경을 구축하기 위해 많은 이들이 클라우드 데이터센터의 첨단 GPU를 활용하고 있으며, 특히 NVIDIA A100과 같은 하드웨어는 대규모 데이터셋의 처리와 복잡한 AI 알고리즘 실행에 있어 놀라운 속도와 효율성을 보여줍니다. 그러나, 이러한 하드웨어에 대한 접근성은 모든 이에게 열려있는 것이 아니며, 특히 예산과 자원이 제한된 개인 개발자나 학습자에게는 더욱 큰 도전으로 다가옵니다.
이러한 현실적인 제약 속에서, 저는 가성비가 좋은 NVIDIA RTX 3050을 장착한 노트북에서 TensorFlow GPU 환경을 구축하기로 결심했습니다. 이 결정에는 TensorFlow의 최신 버전을 원활하게 사용하기 위한 명확한 이유가 있었습니다. 바로 Windows에서의 TensorFlow GPU 지원이 버전 2.10 이하에서만 가능하다는 점입니다. TensorFlow 2.11부터는 CUDA 빌드가 Windows에서 지원되지 않게 되어, 더 발전된 기능과 최적화를 활용하기 위해서는 대안이 필요했습니다.
이 문제를 해결하기 위해 선택한 방법은 Ubuntu를 운영체제로 사용하는 것이었습니다. Ubuntu에서는 TensorFlow의 최신 버전과 CUDA, cuDNN을 함께 사용하여 GPU 가속화를 이용할 수 있으므로, Windows 환경의 제한을 극복하고 AI 및 머신러닝 프로젝트에 필요한 고성능 컴퓨팅 환경을 구축할 수 있었습니다. 이 과정은 수많은 시행착오와 도전을 동반했지만, 결국 RTX 3050을 활용하여 TensorFlow GPU 환경을 성공적으로 구축하는 데 성공했습니다.
Ubuntu에서의 환경 구축 경험은 단순히 기술적인 문제를 해결한 것을 넘어서, 예산 내에서도 최신 기술을 활용할 수 있는 가능성을 보여주었습니다. 이 경험을 통해 얻은 지식과 깨달음은 앞으로의 AI 프로젝트에 큰 자산이 될 것이며, 이 서론은 같은 상황에 직면한 많은 이들에게 유용한 정보와 영감을 제공하고자 합니다. TensorFlow와 GPU 가속화의 여정은 시작에 불과하며, 저와 같은 방식으로 최신 기술을 활용하고자 하는 모든 이들에게 도움이 되기를 바랍니다.
1. 시스템 환경 소개
HP Victus 15-fa1245TX
CPU : Intel 13세대 i5-13420H
RAM : DDR4 3200Mhz 8G
GPU : NVIDIA RTX 3050 6G GDDR6
HDD : 512GB PCIe NVMe 4.0 SSD(M.2)
2. Ubuntu Desktop 22.04 LTS 운영체제 설치
우분투 리눅스 이미지 파일 다운로드
https://ubuntu.com/download/desktop
USB 메모리 부팅용 드라이브 만들기
Ubuntu에 기본적으로 설치되어 있는 "시동 디스크 만들기(Startup Disk Creator)"를 사용하여 Ubuntu ISO 으로부터 시동 디스크를 생성합니다. 만약 Windows 환경에서 진행한다면 Rufus(https://rufus.ie/ko/)를 사용하면 됩니다.
3. Nvidia 드라이버 설치 확인
Ubuntu 왼쪽 하단 '프로그램 표시' 버튼 누르기 > 추가 드라이버
4. 테스트된 Python + Tensorflow + CUDA + cuDNN 각각의 버전 확인하기
nvidia-smi (NVIDIA System Management Interface) 명령은 NVIDIA GPU 드라이버의 일부로 제공되며, NVIDIA GPU에 대한 모니터링과 관리 기능을 제공하는 커맨드라인 유틸리티입니다. 이 도구를 통해 사용자는 GPU의 상태, 온도, 사용률, 메모리 사용량, 구성 설정 등 다양한 정보를 실시간으로 확인할 수 있습니다. 또한, GPU의 성능 조절, 애플리케이션별 GPU 사용량 모니터링, ECC 메모리 오류 검사 및 해결 등 고급 관리 기능도 수행할 수 있습니다.
nvidia-smi 명령은 특히 GPU가속화를 사용하는 머신러닝과 딥러닝 작업을 수행하는 연구자와 개발자에게 유용합니다. 이들은 nvidia-smi를 통해 자신의 코드가 GPU를 얼마나 효율적으로 활용하고 있는지, GPU 자원이 제대로 할당되고 있는지 등을 확인할 수 있습니다. 이 정보를 바탕으로 애플리케이션의 성능을 최적화하고, 시스템의 문제를 진단하는 데 도움을 받을 수 있습니다.
nvidia-smi
다음 이미지와 같이 nvidia-smi 명령을 통해서 살펴보면 현재 사용하고 있는 Driver와 호환이 잘 되는 CUDA version을 확인할 수 있습니다. 이는 추천해주는 것뿐이라서 현재 설치되어 사용하고 있는 CUDA의 버전을 이야기하는 것이 아닙니다.
다음으로 https://www.tensorflow.org/install/source?hl=ko 에서 설치하고자 하는 tensorflow gpu와 호환되는 최신, Python, CUDA, cuDNN 버전을 확인합니다.
5. CUDA Toolkit 설치하기
위에서 확인된 CUDA 버전에 받는 Toolkit을 다운받기 위해 https://developer.nvidia.com/cuda-toolkit-archive 사이트에 접속하면, 최신 버전의 Toolkit을 다운받을 수 있는 OS 환경별 버튼이 보입니다. 하지만, 위에서 확인했던 버전을 다운로드 받기 위해 Archive of Previous CUDA releas 를 클릭합니다.
위에서 확인된 12.2 버전 중에 마지막 업데이트 버전을 클릭합니다.
다음과 같이 설치할 플랫폼의 환경을 모두 선택하여 클릭하면 Download Installer for Linux Ubuntu 22.04 x86_64 페이지가 열립니다. 이제 Installation Instructions: 의 내용을 한줄씩 복사하여 명령창에 복사하며 실행시키면 됩니다.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
sudo apt-get -y install cuda-toolkit-12-2
6. cuDNN 설치하기
NVIDIA의 CUDA 딥 뉴럴 네트워크(Deep Neural Networks) 라이브러리는 딥 러닝 애플리케이션을 위한 GPU 가속 프리미엄 라이브러리입니다. cuDNN은 고성능 컴퓨팅(HPC) 환경에서 딥 러닝 연산을 최적화하기 위해 설계되었습니다. 이 라이브러리는 다양한 딥 러닝 프레임워크와 호환되며, 컨볼루션, 정규화, 활성화 함수, 텐서 변환 같은 다양한 기본 딥 러닝 연산을 GPU 상에서 고속으로 실행할 수 있도록 지원합니다.
cuDNN은 특히 대규모 신경망의 훈련과 추론을 가속화하는 데 유용하며, NVIDIA GPU를 활용하여 복잡한 수학적 연산을 빠르고 효율적으로 처리할 수 있게 합니다. 이를 통해 연구자와 개발자는 시간을 절약하며, 더 큰 모델과 데이터 세트를 실험할 수 있게 되어 AI 연구와 제품 개발의 속도를 크게 향상시킬 수 있습니다.
cuDNN은 계층적 API 구조를 갖추고 있어, 사용자가 고수준의 추상화에서 간단하게 기능을 호출할 수 있도록 하면서도, 필요에 따라 저수준의 세부적인 제어도 가능하게 합니다. 이러한 유연성은 다양한 요구 사항과 최적화 목표를 가진 프로젝트에 맞춰 성능을 조정할 수 있게 해줍니다.
NVIDIA는 cuDNN을 지속적으로 업데이트하고 최적화하여, 최신 NVIDIA GPU에서 최고의 성능을 발휘할 수 있도록 지원합니다. 따라서 딥 러닝 연구와 애플리케이션 개발에 있어서 cuDNN은 매우 중요한 역할을 하며, GPU 가속 딥 러닝의 성능을 극대화하는 데 필수적인 도구입니다.
러닝 신경망(Deep learning neural networks)은 컴퓨터 비전, 대화형 AI 및 추천 시스템을 아우르며 자율 주행 차량 및 지능형 음성 비서와 같은 획기적인 발전을 이끌어 왔습니다. NVIDIA의 GPU 가속 딥 러닝 프레임워크는 이러한 기술의 트레이닝 시간을 단축하여 며칠이 걸리는 세션을 단 몇 시간으로 단축합니다. cuDNN은 클라우드, 임베디드 장치 및 자율 주행 차량에서 딥 뉴럴 네트워크를 위한 고성능, low-latency 추론에 필요한 기본 라이브러리를 제공합니다.
https://developer.nvidia.com/cudnn 사이트에 접속 후 Download cuDNN Library 를 클릭합니다.
Nvidia cuDNN 페이지에서 cuDNN 라이브러리 페이지에 접속하면 가장 최신 버전을 바로 다운로드 받을 수 있도록 되어있으나, 우리가 다운로드 받아야 할 버전을 찾기 위해 Archived Releases에 있는 버전을 찾아 플랫폼 환경을 선택합니다.
처음 확인했던 cuDNN 8.9 버전의 마지막 패치버전 및 CUDA 12.x과 현재 설치하는 플랫폼 환경에 맞추어 다운로드 합니다.
다운로드한 Local Installer for Ubuntu22.04 x86_64 패키지 파일이 있는 경로에서 다음과 같이 설치합니다.
# Install the runtime library.
# Install the developer library
# Install the code samples.
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn8
sudo apt-get install libcudnn8-dev
sudo apt-get install libcudnn8-samples
7. Tensorflow 패키지 설치하기
이제 Python 및 TensorFlow 패키지의 종속 항목들을 먼저 설치한 후 tensorflow 패키지를 설치하면 됩니다.
sudo apt-get install python3-pip
pip install --upgrade pip
pip install pip numpy wheel packaging requests
pip install tensorflow
8. 테스트
tf.config.list_physical_devices('GPU')를 사용하여 TensorFlow가 GPU를 사용하고 있는지 확인할 수 있습니다.
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
'테크 튜토리얼 & 팁' 카테고리의 다른 글
Ubuntu 사용자를 위한 필수 가이드: 노트북 배터리 수명 최적화 방법 (0) | 2024.04.21 |
---|---|
가성비 최강 NVIDIA RTX 3050 게이밍 노트북으로 TensorFlow GPU 가속 시작하기: CUDA와 cuDNN 설치 (2024.04. 업데이트) (0) | 2024.04.10 |
Ubuntu에서 시작하는 PyQt5 개발: Qt Designer 설치 가이드 (61) | 2024.02.16 |
금융감독원의 개인정보노출자 사고 예방시스템: 무료로 보호받는 방법 (1) | 2024.01.30 |
메일함을 열지 않아도 감염되는 아웃룩 취약점 발표 (0) | 2023.03.17 |