서론
강화학습을 하기 위해서 나는 Nvidia의 Isaac Gym을 사용할 것이다. Isaac Gym은 ROS에서 사용하는 Gazebo등과는 다르게 GPU 가속을 지원하며 대규모 시뮬레이션을 빠르게 실행할 수 있다.
현재는 지원을 중단하고 Isaac Lab으로 이름을 바꾸어 개발 중이다.
https://developer.nvidia.com/isaac-gym
Isaac Gym - Preview Release
NVIDIA’s physics simulation environment for reinforcement learning research.
developer.nvidia.com
Isaac Gym을 설치하기 위해서는 우선 Ubuntu에 Nvidia Driver, CUDA를 설치해야 한다. 이번 포스트에서는 Ubuntu 22.04에서 CUDA를 설치하는 법을 정리해 보겠다.
1. Nvidia Driver 버전 및 CUDA 호환 버전 확인
우선 현재 강화학습을 진행할 내 데스크탑 사양을 정리해 보겠다.
CPU | Intel i9-14900K |
GPU | Nvidia RTX 4090 24GB |
RAM | 16GB(8*2) |
Ubuntu 20.04 버전부터 설치시에 대부분 자동으로 Nvidia Driver를 설치해 준다. 이를 삭제하고 CUDA 설치를 진행하며 다시 설치할 것이다.
$ nvidia-smi
nvidia-smi 명령어를 통해 GPU의 정보를 확인할 수 있다.
이미 apt를 통해 설치된 드라이버의 경우 CUDA 사용이 불가능 하니 아래 명령어를 통해 삭제를 진행한다.
$ sudo apt-get purge nvidia* # nvidia 관련 모든 설치 제거됨. 주의
$ sudo apt-get autoremove # nvidia* 관련 의존 패키지 제거
$ sudo apt-get autoclean
$ sudo rm -rf /usr/local/cuda* # 기존에 설치되어있던 CUDA 삭제
2. CUDA 설치
https://developer.nvidia.com/cuda-toolkit-archive
CUDA Toolkit Archive
Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production
developer.nvidia.com
위 링크에서 본인이 원하는 CUDA 버전을 선택해서 진행하면 된다. 나 같은 경우는 nvidia-smi에서 출력된 12.4.0을 설치하였다.
버전을 선택한 뒤 본인의 환경에 맞게 선택해 준다.
나같은 경우엔 Linux -> x86_64(amd64) -> Ubuntu -> 22.04 -> runfile (local) 순으로 선택해 주었다.
이제 installer 파일을 다운로드 한 뒤 실행해 주면 된다.
$ wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
$ sudo sh cuda_12.4.0_550.54.14_linux.run
두 번째 명령어로 installer를 실행하고 조금 기다리면 아래와 같이 출력된다.
driver 관련 경고가 출력이지만 무시하고 Continue를 선택한다. 방향키와 엔터키를 통해 선택이 가능하다.
여기서부터 내가 겪은 에러들과 해결 방법이다. 만약 에러가 나오지 않는다면 넘어가면 된다.
Error1) Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.
해당 에러는 CUDA에서 요구하는 gcc 버전이 달라 발생하는 에러이다. 아래 링크에서 자세한 내용 확인 및 지원 gcc 버전 확인이 가능하다.
https://stackoverflow.com/questions/6622454/cuda-incompatible-with-my-gcc-version
CUDA incompatible with my gcc version
I have troubles compiling some of the examples shipped with CUDA SDK. I have installed the developers driver (version 270.41.19) and the CUDA toolkit, then finally the SDK (both the 4.0.17 version).
stackoverflow.com
내가 설치하고자 하는 CUDA 버전은 12.4.0이고 지원하는 최대 gcc 버전은 13.2 이므로 아래와 같이 설치해 주었다.
우선 다른 버전의 gcc가 설치되었는지 확인해 준다.
$ sudo update-alternatives --config gcc
$ sudo update-alternatives --config g++
없다면 아래 명령어를 통해 필요한 버전의 gcc를 설치해 준다.
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install manpages-dev
$ sudo apt-get install gcc-11 g++-11
gcc를 설치하고 installer를 다시 실행하면 아래와 같은 화면이 출력된다.
accept를 입력하여 진행하면 된다.
이제 본인이 설치할 CUDA 관련 소프트웨어를 선택한다.
방향키와 엔터키를 사용해 선택 후 Install을 선택해 설치를 진행한다.
Error2) Installation failed. See log at /var/log/cuda-installer.log for details.
$ cat /var/log/cuda-installer.log
[INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9]
[INFO]: Cleaning up window
[INFO]: Complete
[INFO]: Checking compiler version...
[INFO]: gcc location: /usr/bin/gcc
[INFO]: gcc version: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
[INFO]: Initializing menu
[INFO]: nvidia-fs.setKOVersion(2.19.6)
[INFO]: Setup complete
[INFO]: Installing: Driver
[INFO]: Installing: 550.54.14
[INFO]: Executing NVIDIA-Linux-x86_64-550.54.14.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd 2>&1
[INFO]: Finished with code: 256
[ERROR]: Install of driver component failed. Consult the driver log at /var/log/nvidia-installer.log for more details.
[ERROR]: Install of 550.54.14 failed, quitting
해결방법 1) nouveau 차단
Nouveau 드라이버가 Nvidia 드라이버와 충돌하며 위와 같은 에러가 발생할 수 있다. 아래 방법을 통해 Nouveau를 비활성화할 수 있다.
$ sudo nano /etc/modprobe.d/blacklist.conf
아래 내용 파일 최하단에 입력 후 Ctrl + X를 통해 저장
blacklist nouveau
options nouveau modeset=0
설정 적용
$ sudo update-initramfs -u
$ sudo reboot
재부팅 후 Nouveau 비활성화 확인 -> Graphics 부분이 llvmpipe 등으로 변경되어야함.
해결방법 2) nouveau 추가 차단
위 방법으로도 동일한 에러가 발생한다면 blacklist.conf에 작성하였던 내용에 추가를 해준다.
추가 설치
$ sudo apt-get remove nvidia* && sudo apt autoremove
$ sudo apt-get install dkms build-essential linux-headers-generic
파일 수정
$ sudo nano /etc/modprobe.d/blacklist.conf
아래 내용 작성 후 저장
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
적용 및 재부팅
$ echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
$ sudo update-initramfs -u
$ sudo reboot
해결방법 3) gcc 버전 업데이트
gcc 12 설치 및 버전 자동 선택
$ sudo apt install gcc-12 g++-12
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 120
$ sudo update-alternatives --config gcc
$ sudo update-alternatives --config g++
해결방법 4) CLI 진입 후 설치
Nvidia-driver를 설치할 때 X server에서 설치하는 것을 권장하지 않는다. 따라서 CLI 진입 후 설치를 재 진행하면 된다.
DisplayManager 비활성화 (주의. 터미널만 사용할 수 있는 상태로 변경되니 작업 등을 미리 종료한 후 진행하자)
$ systemctl isolate multi-user.target
Installer 재실행.
본인은 위의 4가지 방법을 모두 진행한 후에 CUDA 설치를 정상적으로 마무리할 수 있었다.
3. 환경변수 설정
CUDA를 사용하기 위해선 반드시 환경변수 설정이 필요하다. 설정을 진행하지 않고 nvcc 명령어를 사용할 경우 아래와 같이 출력된다.
아래 명령어를 통해 환경변수를 설정해 준다.
$ gedit ~/.bashrc # nano, vim 등 사용
제일 아래에 아래 내용 입력
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
환경변수 적용
$ source ~/.bashrc
적용 결과
'딥러닝, 강화학습' 카테고리의 다른 글
[강화학습] 002 : Isaac Gym 설치 (3) | 2024.12.09 |
---|