본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 06. 15. 09:28

Debian Testing에서 AMD MI50이 매우 잘 작동하며 점점 더 좋아지고 있습니다.

요약

Debian Testing 환경에서 AMD MI50 GPU를 사용하여 llama.cpp의 성능을 벤치마크한 결과입니다. ROCm과 Vulkan 백엔드 간의 성능 차이를 분석하며, 특히 MTP(Multi-Token Prediction) 적용 시 토큰 생성 속도가 크게 향상됨을 확인했습니다.

핵심 포인트

  • Debian 패키지 관리자를 통해 ROCm과 llama.cpp를 손쉽게 설치 가능
  • MTP를 사용하는 Vulkan 백엔드가 특정 조건에서 높은 토큰 생성 속도 제공
  • AMD MI50 32GB 듀얼 구성에서 안정적인 성능 확인
  • apt 패키지 사용 시에도 소스 빌드와 동일한 성능 유지

업데이트: 나중에 실제 수치를 게시하도록 노력하겠지만... 실제 사용 환경은 벤치마크와 일치하지 않습니다. MTP를 백엔드로 사용하는 ROCm이 MTP를 사용하는 Vulkan보다 프롬프트 처리 (Prompt Processing, PP)와 토큰 생성 (Token Generation, TG) 모두에서 훨씬 빠릅니다... 여기에는 다른 카드와 관련된 유용한 정보가 있을 수 있지만, 제 벤치마크는 제가 가지고 있는 듀얼 MI50 32GB 카드 기준이며, 커뮤니티와 공유하고 싶었습니다. 설치 방법은 마지막에 있습니다. 혹시 필요하신 분들을 위해 llama-benchy 전체 테이블 덤프를 댓글에 남기겠습니다. 여기에는 3, 4, 8개의 동시성 (Concurrency) 레벨도 포함되어 있습니다 (수정: 댓글이 게시되지 않네요, 아마 제 인터넷 문제인 것 같습니다. 나중에 다시 시도하겠습니다). 잘 모르시는 분들을 위해 말씀드리자면, llama.cpp는 Debian testing 저장소에서 사용할 수 있으며, 업데이트된 Vulkan과 ROCm 및 HIP 라이브러리의 여러 버전이 혼합되어 제공되는데, 별다른 까다로운 작업 없이도 MI50 카드를 아주 잘 지원합니다 (적어도 최종 사용자에게는 까다로운 작업이 없습니다. 패키지 유지 관리자가 까다로운 작업을 모두 처리하는 것으로 보입니다). llama.cpp apt 패키지는 최근 버전 9413으로 업데이트되었기에, 무엇이 가장 잘 작동하는지 확인하기 위해 몇 가지 벤치마크를 수행하기로 했습니다 (llama-bench가 아닌 llama-benchy를 사용함). 저는 unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q6_K_XL 모델을 사용하며, MTP 사용 여부와 Vulkan 및 ROCm llama.cpp 백엔드(정확한 명령어는 이 포스트 마지막에 있음)에서 실행했습니다. llama-benchy 결과:

동시성 1
백엔드 | PP t/s | TG t/s
Vulkan | 977.18 | 55.34
Vulkan-MTP | 937.96 | 89.76
ROCm | 795.28 | 67.02
ROCm-MTP | 759.22 | 92.69

동시성 2
백엔드 | PP t/s | TG t/s
Vulkan | 1229.27 | 85.23
Vulkan-MTP | 939.42 | 84.19
ROCm | 913.80 | 88.46
ROCm-MTP | 946.35 | 115.00

저는 긴 문맥 (Long context) 작업을 많이 하기 때문에, TG를 너무 희생하지 않는다면 높은 PP를 선호하며, 거의 항상 단일 동시성을 사용하지만 가끔 2를 사용하기도 합니다. 따라서 제 용도로는 MTP를 사용하는 Vulkan을 실행할 예정입니다. 저는 오랫동안 apt에서 설치한 ROCm 백엔드를 사용해 왔으며, 매우 안정적이고 잘 작동한다는 것을 알고 있으니 참고하시기 바랍니다.

이 업데이트 이전에는 MTP 지원이 없었습니다. ROCm을 사용하여 PP 700 및 TG 55를 얻고 있었는데, 현재 설정이 심지어 더 빨라졌습니다 (llama-bench로 테스트했으며, 이전에는 llama-benchy를 사용하지 않았고 재테스트를 위해 다운그레이드할 생각은 없습니다). 이것이 ROCm 라이브러리의 업데이트 때문인지, llama.cpp 때문인지, 아니면 둘 다인지 모르겠습니다. 또한, apt를 통해 ROCm과 llama.cpp를 사용하기 전에는 AMD에서 ROCm 6.3.3을 수동으로 설치하고 llama.cpp를 소스(source)에서 빌드하여 설치했었는데, 당시에는 apt 패키지로 전환했을 때 성능이 동일했습니다 (확실히 말씀드리자면, 설치가 훨씬 쉬운 apt 패키지로 전환하더라도 성능 저하는 없었습니다).

설치 방법:

unstable 및 testing 저장소 추가

sudo sh -c 'echo "deb http://deb.debian.org/debian unstable main" > /etc/apt/sources.list.d/debian-unstable.list'
sudo sh -c 'echo "deb http://deb.debian.org/debian testing main" > /etc/apt/sources.list.d/debian-testing.list'

testing 및 unstable의 우선순위를 낮추어 필요한 경우에만 사용하도록 설정 (선택 사항, Debian stable에 최대한 가깝게 유지하고 싶은 경우)

sudo sh -c 'printf "Package: *\nPin: release a=testing\nPin-Priority: 60\n\nPackage: *\nPin: release a=unstable\nPin-Priority: 50\n" > /etc/apt/preferences.d/50pinning'

sudo apt update

Vulkan 백엔드로 설치하기:
sudo apt install -t testing llama.cpp libggml0-backend-vulkan mesa-vulkan-drivers
sudo adduser _llama-server video
sudo adduser _llama-server render

ROCm 백엔드로 설치하기:
sudo apt install -t unstable llama.cpp libggml0-backend-hip
sudo adduser _llama-server video
sudo adduser _llama-server render

이 두 가지 설치 방법 모두 필요한 모든 것을 설치합니다. AMD에서 별도로 가져올 것이나 파일을 수동으로 복사할 필요가 없으며, 이것만 있으면 충분합니다. 심지어 llama-server를 위한 systemd 서비스도 생성하며, 이 서비스는 /etc/default/llama-server 에서 환경 변수를 읽어옵니다.

모델 파일은 /var/cache/llama-server/로 다운로드됩니다. 저의 /etc/default/llama-server 내용은 다음과 같습니다:

#ROCR_VISIBLE_DEVICES=0,1
GGML_VK_VISIBLE_DEVICES=1,2
LLAMA_SET_ROWS=1
LLAMA_ARG_WEBUI=false
LLAMA_ARG_THREADS=10
LLAMA_ARG_MODELS_MAX=6
LLAMA_ARG_HOST=0.0.0.0
LLAMA_ARG_PORT=8080
LLAMA_ARG_MODELS_PRESET=/mnt/data1-llama/production_presets.ini

"ROCR_VISIBLE_DEVICES"는 ROCm 백엔드(backend)를 위한 것이며, "GGML_VK_VISIBLE_DEVICES"는 Vulkan 백엔드(backend)를 위한 것입니다. 추가적인 GPU가 있다면 숫자가 다를 수 있습니다. 저는 여러 숫자를 시도해 보았고, 어떤 카드가 활성화되었는지 확인하기 위해 nvtop ( sudo apt install nvtop )을 사용했습니다. 각 벤치마크를 위해 llama-server를 실행할 때 사용한 명령어는 다음과 같습니다:

vulkan
sudo -u _llama-server GGML_VK_VISIBLE_DEVICES=1,2 LLAMA_CACHE=/var/cache/llama-server LLAMA_SET_ROWS=1 llama-server -hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q6_K_XL -sm layer --flash-attn on --host 0.0.0.0 --port 8080 --no-ui --threads 10 --fit on --jinja -ctk q8_0 -ctv q8_0 --batch-size 4096 --ubatch-size 1024 --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.00 --repeat-penalty 1.10 --ctx-size 262144

vulkan with mtp:
sudo -u _llama-server GGML_VK_VISIBLE_DEVICES=1,2 LLAMA_CACHE=/var/cache/llama-server LLAMA_SET_ROWS=1 llama-server -hf unsloth/Qwen3.6-35B-A3B-MTP-GGUF:UD-Q6_K_XL -sm layer --flash-attn on --host 0.0.0.0 --port 8080 --no-ui --threads 10 --fit on --jinja -ctk q8_0 -ctv q8_0 --batch-size 4096 --ubatch-size 1024 --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.00 --repeat-penalty 1.10 --ctx-size 262144 --spec-type draft-mtp --spec-draft-n-max 3

Rocm
sudo -u _llama-server ROCR_VISIBLE_DEVICES=0,1 LLAMA_CACHE=/var/cache/llama-server LLAMA_SET_ROWS=1 llama-server -hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q6_K_XL -sm layer --flash-attn on --host 0.0.0.0 --port 8080 --no-ui --threads 10 --fit on --jinja -ctk q8_0 -ctv q8_0 --batch-size 4096 --ubatch-size 1024 --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.00 --repeat-penalty 1.10 --ctx-size 262144

Rocm with MTP
sudo -u _llama-server ROCR_VISIBLE_DEVICES=0,1

LLAMA_CACHE=/var/cache/llama-server LLAMA_SET_ROWS=1 llama-server -hf unsloth/Qwen3.6-35B-A3B-MTP-GGUF:UD-Q6_K_XL -sm layer --flash-attn on --host 0.0.0.0 --port 8080 --no-ui --threads 10 --fit on --jinja -ctk q8_0 -ctv q8_0 --batch-size 4096 --ubatch-size 1024 --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.00 --repeat-penalty 1.10 --ctx-size 262144 --spec-type draft-mtp --spec-draft-n-max 3 submitted by /u/moderately-extremist to r/LocalLLaMA [link] [comments]

AI 자동 생성 콘텐츠

본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0