본문 바로가기

AiDAOps/개발 준비

Tensorflow를 위한 GPU 설정 포기! 그냥 PyTorch로 가야겠다.

최근 몇 년은 강의에 집중하다보니 수강생들에게 동일한 실습 환경을 제공하기 위하여 Google에서 제공하는 CoLab을 이용하고 있었습니다.

그러나 대부분의 강의는 커리큘럼 중 프로젝트를 진행해야 하는데..

최근에는 강의의 주제가 CoLab이 아닌 로컬 시스템에 개발 환경을 구축해야 하는 방향으로 조금씩 바뀌어가고 있다보니 해당 환경을 구축하는 과정이 필요해지고 있습니다.

 

저도 개발을 진행하기 위해서는 환경 구축이 필요하기때문에 이번 기회에 싹 정리하자.. 라고 생각해서 며칠 동안 작업을 진행하며 진행 과정을 정리하고 있었는데....

AI 모델을 처리해야 하기때문에 GPU의 설정이 필수이므로 Tensorflow를 위한 GPU 환경 설정 작업을 하다가 몰려오는 짜증에 그냥 때려쳐야겠다.. 라고 생각하게 되었습니다. ㅠㅠ

그림: MS Designer Image Creator로 직접 그림

 

예전에는 NVIDIA 홈페이지에서 제공하는 Shell Script 몇 줄을 실행하기만 하면 아무런 문제 없이 GPU를 사용할 수 있었는데 이제는 그렇게 되지 않는군요.

물론 그 당시에도 이런저런 복잡한 설정으로 고생하는 사람들이 주변에 꽤 있었습니다만 제 시스템에서는 단지 Shell Script를 실행하는 것만으로도 아무런 문제가 없었거든요.

 

NVIDIA 홈페이지에서 제공하는 Shell Script는 다음과 같습니다.(제 시스템의 장치 버전에 맞춘 것입니다)

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.5.0/local_installers/cuda-repo-ubuntu2204-12-5-local_12.5.0-555.42.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-5-local_12.5.0-555.42.02-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-5-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-5

 

그러나 실행해보니 다양한 문제들이 속출하더군요.

  • successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero.
  • Could not find TensorRT

시스템의 CUDA 버전도 맞춰주었고.. 발생한 모든 에러도 다 해결해 주었는데.. 그래도 최종적으로는 실패하더군요.

 

그래서 직접 설정하는 것은 그만두고 NVIDIA에서 권장하는 Docker 이미지를 사용하기로 했습니다.

그러나.. 그 과정에서 해야 하는 내용이 너무 많더군요.

강의를 듣는 수강생들의 수준이 대부분 입문~초급(가끔 중급)에 그치다보니(중급 이상은 스스로 해결하지 강의를 들으러 잘 오지 않죠) 수업에서 진행할 수준이 아니라고 생각되었습니다.

 

결국 Tensorflow는 때려쳤습니다.

 

PyTorch는 PyTorch 공식 사이트에서 제시하는 간단한 스크립트 한 줄 만으로 모든 것이 완료되었거든요.

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

 

아직 PyTorch는 공식적으로 CUDA 버전을 12.1까지만 지원하다보니 12.5 대신 12.1을 설치했다는 것 외에는 아무런 문제도 없었습니다. (물론 Tensorflow 환경으로 설정할 때에도 12.5 버전만이 아니라 이전 버전도 확인해 봤습니다만 역시 실패했었죠.)

 

다음에 더 간단하게 안정적으로 설정할 수 있는 방법을 찾을 때까지는.. 적어도 수업 중에는 PyTorch만 쓰는 것이 정신 건강에 좋을 듯 합니다.

 


이 글의 내용과는 별개로...

도커와 같은 컨테이너 기술은 사실상 업계 표준으로서 인정받고, 또 활용되고 있으며 그 효용성이 뛰어난 것이 사실이기때문에...

그리고 제가 진행하고 있는 소형 MLOps 등의 개발에도 필수요소로 볼 수 있기 때문에 언젠가(멀지 않은 시기에) 제대로 정리할 필요는 있다고 생각합니다.

728x90
반응형