AMD 그래픽카드에서 ComfyUI 돌리기 — ZLUDA 설치와 함정

ComfyUI를 깔아보려고 검색하면 나오는 글이 거의 다 NVIDIA 기준입니다. AMD 그래픽카드를 쓰고 있으면 “AMD는 안 된다”, “리눅스로 가라” 같은 말만 보이다가 결국 포기하게 됩니다.

 

결론부터 말하면 윈도우에서 AMD 그래픽카드로 ComfyUI가 돌아갑니다. ZLUDA라는 물건을 끼워서요. 이 글은 실제로 RX 7800 XT에서 돌리면서 겪은 것들을 정리한 것입니다.

 

ZLUDA가 하는 일

ComfyUI 안쪽은 PyTorch로 되어 있고, PyTorch는 NVIDIA의 CUDA를 부릅니다. AMD 카드에는 CUDA가 없으니 그대로는 안 돌아갑니다.

 

ZLUDA는 그 사이에 끼어서 CUDA 호출을 AMD가 알아들을 수 있는 명령으로 바꿔줍니다. 코드를 고치는 게 아니라 CUDA인 척하는 것이라, PyTorch 입장에서는 자기가 NVIDIA 카드 위에서 도는 줄 압니다.

 

말로만 들으면 애매한데, 실제로 돌아가는 상태를 찍어보면 분명합니다.

ComfyUI가 인식한 장치 정보 — AMD Radeon RX 7800 XT가 cuda:0 으로 잡히고 PyTorch는 cu118 빌드
장치 이름은 AMD인데 종류는 cuda, PyTorch는 CUDA 11.8 빌드입니다. ZLUDA가 하는 일이 이 한 화면에 다 들어 있습니다.

증거는 설치 폴더에도 있습니다. zluda 폴더를 열어보면 NVIDIA 이름을 단 DLL이 들어 있습니다.

zluda/
  nvcuda.dll      cublas.dll     cublasLt.dll
  cudnn.dll       cufft.dll      cufftw.dll
  cusparse.dll    nccl.dll

NVIDIA가 만든 파일이 아니라 같은 이름으로 만든 대체본입니다. PyTorch가 nvcuda.dll을 찾으면 이게 대신 응답합니다.

 

준비물

항목 설명
AMD 그래픽 드라이버 최신으로. 오래된 드라이버에서 실패 사례가 많습니다
HIP SDK (ROCm) AMD 공식. ZLUDA가 이 위에서 돕니다
Git 설치·업데이트에 필요
여유 저장공간 모델 말고도 캐시로 수백 MB가 더 쌓입니다 (뒤에서 설명)

HIP SDK는 버전이 여러 개 깔릴 수 있고, 환경변수 HIP_PATH가 어느 쪽을 가리키는지가 중요합니다. 실제로 이 PC에는 6.4와 7.1이 같이 있고 기본은 6.4를 봅니다.

HIP_PATH     C:\Program Files\AMD\ROCm\6.4\
HIP_PATH_64  C:\Program Files\AMD\ROCm\6.4\
HIP_PATH_71  C:\Program Files\AMD\ROCm\7.1\

버전을 여러 개 깔았는데 안 되기 시작했다면 이 변수가 엉뚱한 쪽을 가리키고 있는지 먼저 확인해 보세요.

 

가장 쉬운 설치 방법 — StabilityMatrix

ZLUDA를 직접 받아서 DLL을 갈아끼우고 PyTorch 버전을 맞추는 건 상당히 번거롭습니다. 그래서 StabilityMatrix를 권합니다. 패키지 목록에서 ComfyUI-Zluda를 고르면 필요한 것들을 알아서 맞춰줍니다.

 

설치가 끝나면 이런 구조가 됩니다.

StabilityMatrix-win-x64\Data\Packages\ComfyUI-Zluda\
  comfyui.bat          ← 실행
  zluda\               ← CUDA 대체 DLL
  venv\                ← 전용 파이썬
  custom_nodes\        ← 커스텀 노드
  models\              ← 체크포인트·LoRA

수동 설치를 고집할 이유는 거의 없습니다. 문제가 생겼을 때 되돌리기도 이쪽이 쉽습니다.

 

실행은 파이썬을 직접 부르지 않는다

NVIDIA 환경에서는 python main.py로 바로 띄우지만, ZLUDA는 한 겹 더 감쌉니다.

.\zluda\zluda.exe -- python main.py [옵션]

zluda.exe가 먼저 뜨고 그 안에서 파이썬이 돕니다. 이래야 파이썬이 CUDA DLL을 찾을 때 ZLUDA 쪽으로 연결됩니다. 그냥 python main.py로 띄우면 CUDA를 못 찾는다는 오류가 납니다.

 

실행 옵션 — 여기가 진짜 중요합니다

NVIDIA 기준 글에는 안 나오는 부분입니다. AMD에서는 붙여야 하는 옵션이 따로 있습니다. 실제로 쓰고 있는 조합입니다.

--use-quad-cross-attention
--reserve-vram 0.9
--disable-async-offload
--disable-pinned-memory
옵션 왜 필요한가
--use-quad-cross-attention NVIDIA용 어텐션 최적화가 AMD에서는 안 먹거나 오류를 냅니다. 무난하게 도는 방식으로 고정
--reserve-vram 0.9 VRAM을 조금 남겨둡니다. 꽉 채우면 화면 출력까지 같이 흔들립니다
--disable-async-offload ComfyUI가 기본으로 켠 비동기 가중치 오프로딩이 구형 GPU와 호환되지 않습니다
--disable-pinned-memory 고정 메모리가 ZLDUA 사용자들에게 문제를 일으키는 사례가 많습니다

뒤의 두 개는 특히 기억해 둘 값어치가 있습니다. ComfyUI 본체가 업데이트되면서 기본값이 바뀌었고, 그 기본값이 AMD에서 문제를 일으켜서 끄게 된 것입니다. 이런 종류의 문제는 앞으로도 계속 생깁니다.

 

ComfyUI를 업데이트한 직후 갑자기 안 돌아가기 시작했다면, 내 설정이 아니라 본체 기본값이 바뀐 것일 수 있습니다. 그럴 때는 새로 생긴 기능을 끄는 옵션이 있는지부터 찾아보세요.

 

첫 실행이 유난히 느린 이유

처음 이미지를 뽑을 때 몇 분씩 멈춰 있는 것처럼 보입니다. 고장이 아니라 ZLUDA가 커널을 컴파일하는 중입니다. 한 번 만들어두면 다음부터는 캐시에서 꺼내 쓰니 훨씬 빨라집니다.

 

대신 그 캐시가 디스크를 꽤 먹습니다. 이 PC 기준으로 이만큼 쌓여 있습니다.

C:\Users\사용자\AppData\Local\ZLUDA   →   약 500 MB

모델 파일만 정리하면 되는 줄 알고 있다가 C드라이브 용량이 왜 자꾸 주는지 못 찾는 경우가 여기서 나옵니다. 새 모델이나 새 해상도를 쓸 때마다 조금씩 더 쌓입니다.

 

지워도 됩니다. 다만 지운 뒤 첫 실행은 다시 느려집니다. 설치 폴더의 cache-clean.bat이 ZLUDA 캐시뿐 아니라 MIOpen·Triton·TorchInductor 캐시까지 같이 정리해 줍니다.

 

문제가 생겼을 때

ComfyUI-Zluda 폴더에는 문제 해결용 배치 파일이 여러 개 들어 있습니다. 이게 많다는 것 자체가 AMD 환경에서 무슨 일이 자주 생기는지 보여줍니다.

증상 먼저 해볼 것
드라이버·ROCm 업데이트 후 CUDA를 못 찾음 patchzluda.bat — ZLUDA를 다시 끼워 넣습니다
이상하게 느려지거나 결과가 깨짐 cache-clean.bat — 캐시를 비우고 다시 컴파일
numpy 관련 오류로 실행 실패 fixnumpy.bat — 버전 충돌 복구
VRAM 부족으로 자꾸 죽음 start-tunableop-novram.bat — 저VRAM 모드
구형 카드(RX 500번대 등) install-for-older-amd.bat · fixforrx580.bat

순서는 대체로 재시작 → 캐시 정리 → ZLUDA 재패치입니다. 이 셋으로 대부분 해결됩니다.

 

알고 시작해야 할 한계

  • 속도는 같은 급 NVIDIA보다 느립니다. 번역층을 거치는 구조라 어쩔 수 없습니다. “되냐 안 되냐”의 문제가 해결된 것이지 성능이 같아진 건 아닙니다.
  • 일부 커스텀 노드는 안 돕니다. CUDA 전용 코드를 직접 부르는 노드는 ZLUDA로 못 넘어갑니다.
  • 업데이트가 위험합니다. ComfyUI 본체·드라이버·ROCm 중 하나만 올려도 조합이 깨질 수 있습니다. 잘 돌아가는 상태라면 함부로 올리지 마세요.
  • 영상 계열은 특히 까다롭습니다. 이미지 생성보다 요구사항이 많아 실패 확률이 올라갑니다.

커스텀 노드를 이것저것 시도해 볼 생각이라면 ComfyUI Manager 설치와 사용법을 먼저 봐두시면, 노드가 안 돌 때 원인을 가려내기 수월합니다.

 

정리

  • AMD + 윈도우에서 ComfyUI는 ZLUDA로 돌아갑니다
  • 설치는 StabilityMatrix의 ComfyUI-Zluda가 가장 덜 고생합니다
  • 실행은 zluda.exe -- python main.py — 파이썬을 직접 부르면 안 됩니다
  • --disable-async-offload--disable-pinned-memory는 AMD에서 사실상 필수
  • 첫 실행이 느린 건 정상. 캐시가 500MB 가까이 쌓이니 용량도 계산에 넣으세요
  • 문제가 생기면 재시작 → 캐시 정리 → ZLUDA 재패치 순서로

NVIDIA를 새로 사지 않아도 지금 있는 AMD 카드로 시작할 수 있습니다. 처음 설정만 넘기면 그 뒤로는 평범하게 쓸 수 있습니다. 전체 사용법이 궁금하다면 ComfyUI 완벽 가이드부터 보시는 걸 권합니다.

Wordpress Social Share Plugin powered by Ultimatelysocial
Copy link
URL has been copied successfully!
THREADS
RSS
error: 저작권 콘텐츠보호를 부탁드립니다.