rx9070 + wsl + rocm6.4 + pytorch2.6 ComfyUI 구동하기

rocm 공식문서에 9070지원은 표기되어 있지 않지만 깃헙에서 6.3.1에서 작동하는걸 확인했다는 글을 보고 wsl + rocm6.4 + ComfyUI 시도를 해봤습니다.

9070 그래픽카드 드라이버는 Adrenalin 25.4.1 (Optional) 을 사용했습니다.

1. 설치

wsl --install Ubuntu-24.04

터미널 창을 열어서 wsl 설치를 합니다. 우분투 24.04 버전을 기준으로 작성되었으며 만약 다른 버전에서 사용할려면 아래에 나올 설치 파일들 링크를 해당 우분투 버전에 맞게 수정하셔야 합니다. (wsl 설치와 실행에 관한건 다른 사이트를 참고하세요. 여기서는 다루지 않을께요.)

sudo apt update -y
sudo apt upgrade -y

처음 설치시 업데이트 하는게 많을겁니다. 업데이트를 합니다.

wget -P /tmp https://repo.radeon.com/amdgpu-install/latest/ubuntu/noble/amdgpu-install_6.4.60400-1_all.deb
sudo apt install /tmp/amdgpu-install_6.4.60400-1_all.deb -y
sudo amdgpu-install -y --usecase=wsl,rocm --no-dkms

리눅스용 그래픽드라이버를 설치해줍니다. (드라이버 파일을 /tmp 폴더로 받게 했는데 이걸 그냥 유저 홈폴더에 받아서 실행하면 폴더권한 문제로 드라이버가 제대로 설치 안됩니다)

sudo apt install python3-pip python3-venv -y

파이썬은 기본으로 깔려있어서 pip랑 venv를 추가로 설치해 줍니다.

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI

ComfyUI를 다운받고 해당 폴더로 이동합니다.

python3 -m venv venv
source venv/bin/activate

파이썬 가상환경을 생성하고 활성화 해줍니다.

pip3 install --upgrade pip wheel

정확히 wheel이 하는 용도는 모르지만 암튼 필요하답니다. 그래서 설치해줍니다. (그리고 pip 업그레이드도 해줍니다)

pip3 install -r requirements.txt
pip3 install onnxruntime piexif

첫번째줄은 ComfyUI 구동에 필요한 패키지를 설치하는거고 두번째 줄은 제가 쓰다 보니 저거 요구하는 노드들이 많길래 추가한 항목입니다.

pip3 uninstall torch torchvision torchaudio numpy -y

ComfyUI 설치시 기본으로 설치된 파이토치랑 토치비전, 토치오디오, numpy를 삭제합니다. 삭제하는 이유는 엔비디아 그래픽카드 쓰면 저걸로도 잘 돌아가는데 라데온은 AMD가 제공하는 버전을 써야 해서 삭제합니다.

url_torch='https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/torch-2.6.0%2Brocm6.4.0.git2fb0ac2b-cp312-cp312-linux_x86_64.whl'
url_torchvision='https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/torchvision-0.21.0%2Brocm6.4.0.git4040d51f-cp312-cp312-linux_x86_64.whl'
url_torchaudio='https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/torchaudio-2.6.0%2Brocm6.4.0.gitd8831425-cp312-cp312-linux_x86_64.whl'
url_triton='https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4/pytorch_triton_rocm-3.2.0%2Brocm6.4.0.git6da9e660-cp312-cp312-linux_x86_64.whl'

pip3 install $url_torch $url_torchvision $url_torchaudio $url_triton numpy==1.26.4

amd 리포에 있는 토치, 토치오디오, 토치비전을 설치합니다. numpy는 amd 사이트에서 저 버전 쓰라고 명시되어 있습니다.

location=`pip show torch | grep Location | awk -F ": " '{print $2}'`
rm ${location}/torch/lib/libhsa-runtime64.so*

마지막으로 특정 라이브러리 파일을 삭제해야 하는데 wsl 관련해서 필요한 작업이라고 합니다.

2. ComfyUI 실행

source venv/bin/activate
python3 main.py --cpu-vae --highvram --preview-method auto

ComfyUI 폴더로 이동해서 위 내용을 입력하면 ComfyUI가 실행되는것을 볼 수 있습니다.

obsessionIllustrious_vPredV11 모델로 1024×1024 해상도에 28스텝으로 생성하는데 약 50초가 걸리는데 그중 vae 디코딩이 25~30초 소비합니다. (중간에 87초 넵튠 이미지는 해상도를 변경해서 일시적으로 늘어난거임)

vae 디코딩이 오래 걸리는 이유는 –cpu-vae 옵션 때문인데 구버전 그래픽카드 드라이버 사용시 이 옵션을 사용하지 않으면 vae 디코딩시 시스템이 다운되는 증상이 발생합니다. (맨위에 적은 드라이버 에서는 정상 작동했습니다)

추후에 rocm이 업데이트 하면서 해결될지 안될지는 모르겠지만 암튼 현재까지는 그리 좋은 퍼포먼스를 보여주지 못하고 있습니다.

3. 주의 사항

모든 파일은 wsl 내부에서 진행해야 하고 절대로 모든파일을 ‘/mnt/c/경로’ 이런식으로 wsl 외부 윈도우 파일시스템에서 불러오면 안됩니다. (체크포인트, 로라등등)

저도 처음에는 Zluda 버전으로 세팅해놓은거에 맞춰서 설정파일과 모델파일을 공유해서 작동하도록 세팅을 했었는데요… WSL이랑 윈도우 파일시스템 사이 IO 작업에 엄청난 오버헤드가 있는지 처음 ComfyUI 실행하고 첫 이미지 생성시 약 10분이 소비됩니다. (모델파일을 wsl 내부 공간에서 읽으면 50초내로 생성되고요)

저는 처음에만 오래 걸려서 이게 Zluda 캐시 생성하는거랑 같은 작업인줄 알았는데 아니였습니다. (rocm 버그도 아니였고요. 덕분에 하루 삽질했네요)

참고로 램32기가를 추천드립니다. 16기가에서 하면 wsl이 먹는거랑 cpu-vae 인코딩 부분에서 램 먹는거 때문에 가끔씩 중간에 램 부족해서 뻗는 증상 나왔습니다.

4. 사족..

– 이 글 작성하는 와중에 pyTorch 2.7이 정식 릴리즈 했네요. 얼마 지나면 AMD 공홈 리포에도 pyTorch2.7 + Rocm6.4 올라오겠네요.

– ComfyUI 최신버전에서는 vae 디코딩 하다 터지면 자동으로 tiled vae로 넘어가는군요

5. 참조 사이트

https://rocm.docs.amd.com/projects/radeon/en/latest/docs/install/wsl/install-pytorch.html

https://www.reddit.com/r/ROCm/comments/1ep4cru/rocm_613_complete_install_instructions_from_wsl/?rdt=33793


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다