1. 삽질
2. 최신 ROCm이 지원되지 않는 하드웨어
3. 설치 방법 및 에러 해결 방법
바로 해결 방법을 확인하고 싶은 분께서는 3. 설치 방법 및 에러 해결 방법을 확인하시면 됩니다.
집에 굴러다니는 RX 580으로 강화학습 환경이나 만들어보려 했더니...
정겹게 반겨주는 에러 메시지Call returned HSA_STATUS_ERROR_OUT_OF_RESOURCES: The runtime failed to allocate the necessary resources. This error may also occur when the core runtime library needs to spawn threads or create internal OS-specific events.
다시 보니까 가장 큰 문제였던 HSA_STATUS_ERROR_OUT_OF_RESOURCES 관련 에러 사진은 아니었네요
(그냥 환경세팅 열 받아서 찍은 사진..)
아무튼 2일간 삽질로 많은 정보들을 얻었습니다.
1. 그냥 Nvidia를 쓰자
2. 그냥 Nvidia를 쓰자
3. 그냥 Nvidia를 쓰자
여담이지만 navi 아키텍처는 처음부터 지원이 되지 않았던 터라 아쉬움이 크네요
아무튼 중요한 건 아래 내용입니다.
Fiji
Polaris 10
Polaris 11
Polaris 12(Lexa)
Polaris 20
Polaris 21
Polaris 30
해결 방법은 [https://github.com/Grench6/RX580-rocM-tensorflow-ubuntu20.4-guide]를 번역했습니다.
아직 ROCm을 설치하지 않은 분은 이 부분을 스킵하셔도 됩니다
sudo apt autoremove rocm-dkms
입력sudo dpkg -l | grep -E 'hsa|hip|llvm|rocm|rock'
입력했을 때 나오는 패키지들을 제거(sudo apt remove --purge 패키지이름
)ROCm을 구동하기 위해서는 리눅스 커널 버전 5.4가 필요합니다. 현재 커널 버전은 uname -r
을 이용해 확인할 수 있습니다.
sudo apt install --install-recommends linux-generic
를 입력해 커널 설치sudo apt remove --purge linux-generic-hwe-20.04 linux-oem-20.04 linux-hwe-* linux-oem-* linux-modules-5.1* linux-modules-5.8.0-* linux-modules-5.6.0-*
를 입력해 필요 없는 커널 제거uname -r
를 입력했을 때 아래와 같이 출력되어야 합니다.:5.4.0-x-generic
sudo apt update
sudo apt dist-upgrade
sudo apt install libnuma-dev
sudo reboot
리포지터리 추가 후 rocm-dkms 설치:
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/3.5.1/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt update
sudo apt install rocm-dkms && sudo reboot
VGA에 접근하기 위해 유저 권한을 설정:
sudo usermod -a -G video $LOGNAME
sudo usermod -a -G render $LOGNAME
sudo reboot
ROCm을 PATH에 추가:
echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin' | sudo tee -a /etc/profile.d/rocm.sh
sudo ldconfig
sudo reboot
rocminfo
을 입력했을 때 에러가 발생하면 안됩니다. 정상적으로 설치된 경우 아래와 같은 메시지가 출력될 겁니다.Name: gfx803
Uuid: GPU-XX
Marketing Name: Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
절반정도 왔네요!
sudo apt install python3 python3-pip
sudo apt install rocm-libs miopen-hip
pip3 install -Iv tensorflow-rocm==2.2.0
sudo apt install rccl
sudo apt install libtinfo5
sudo reboot
import tensorflow as tf
tf.add(2,5)
exit()
문제가 없으면 다음과 같이 출력될겁니다:
<tf.Tensor: shape=(), dtype=int32, numpy=7>
만약 문제가 발생했다면, 이런 에러 메시지가 출력될겁니다:
Could not load dynamic library 'libhip_hcc.so'; dlerror: libhip_hcc.so: cannot open shared object file: No such file or directory
문제가 발생한 경우 이 글을 참고하세요. '이 글'에 나와있는 방법은 일시적인 해결방법이므로 앞으로 부팅할 때마다 자동으로 적용되게 해주는 작업이 필요합니다. 해당 링크를 참고하셔도 좋지만, 귀찮으면 그냥 아래 명령어를 터미널에 입력하셔도 됩니다.:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/hip/lib
sudo ldconfig
짜잔!
잘 돌아가는 모습을 확인하실 수 있습니다.
끝!