Warpdrv - 내 오픈소스 Llama.cpp 스타터, Strix Halo + RTX Pro 에서 Qwen 35b + 27b 일상 구동용
요약
이 기술 기사는 로컬 환경에서 대규모 언어 모델(LLM)을 구동하기 위한 오픈소스 애플리케이션 'Warpdrv'를 소개합니다. 이 앱은 사용자가 CUDA (RTX Pro 5000)와 Strix Halo (ROCm) 등 다양한 하드웨어 조합에서 Qwen 35b 및 27b 같은 대형 모델을 효율적으로 실행할 수 있도록 도와줍니다. 특히, 코딩 작업에 최적화된 로컬 모델 라우터 기능과 여러 LLM 서버 인스턴스를 관리하는 편의 기능을 제공합니다. 또한, Strix Halo와 같은 새로운 아키텍처에서 ROCm 환경을 성공적으로 설정하고 `llama.cpp`를 빌드하기 위한 상세한 단계별 가이드(커널 설치, GRUB 파라미터 수정 등)도 포함하여, 고급 사용자들에게 실질적인 도움을 제공합니다.
핵심 포인트
- Warpdrv는 로컬 LLM 구동을 위한 오픈소스 스타터 앱으로, 다양한 하드웨어 환경에서 모델 관리를 용이하게 합니다.
- CUDA (NVIDIA RTX Pro 5000)와 ROCm (Strix Halo) 등 이종 아키텍처를 통합하여 대형 언어 모델(Qwen 35b/27b)을 구동할 수 있습니다.
- 앱은 코딩 작업에 특화된 로컬 모델 라우터, 도구 호출 기능 등을 제공하며, 여러 LLM 서버 인스턴스를 관리하는 인터페이스 역할을 합니다.
- Strix Halo에서 ROCm 환경을 구축하기 위한 상세한 가이드가 포함되어 있으며, 커널 및 GRUB 파라미터 설정 등 고급 시스템 지식이 요구됩니다.
내 설정에서 로컬로 LLM 실행하기 위해 만든 오픈소스 앱을 공유하고 싶습니다.
내 설정
하드웨어
- FEVM FAEX1 (128GB)
- RTX Pro 5000 Blackwell (48GB), OCuLink 를 통해 연결됨
- Aoostar AG02
- raid-0 로
mdadm를 사용하여 2x2TB 내부 m.2 드라이브.
소프트웨어: Ubuntu 25.10, cuda + vulkan, rocm 을 위한 llama.cpp 소스 빌드.
이 앱을 어떻게 사용하는가
나는 일반적으로 CUDA 에서 Qwen3.6 27b UD-Q6-KXL 또는 NVFP4 와 Strix Halo 통합 메모리에서 Qwen3.6 35b A3B UD-Q6-KXL 을 동시에 실행합니다. 대부분 opencode 를 사용하여 코딩에 사용합니다. 내장 모델 라우터가 유용합니다.
이 앱은 무엇을 더 할 수 있는가
어떤 llama.cpp 래퍼도 할 수 있는 기본 작업 + 기타 작업. 전체적으로 목적에 따라 llama-server 인스턴스를 시작하기 위한 편의 앱입니다. 그리고 오픈소스입니다.
- MCP.json + 채팅에서 도구 호출
- opencode / claude-code 로컬용 모델 라우터.
- KV-cache 체크포인트 (실험적).
- llama.cpp 빌드를 포함하지 않습니다. 그러나 UI 를 가진 bash 스크립트로 레시피를 구성하여 한 번에 빌드할 수 있습니다.
초기 알파 버전이므로 일부 버그를 예상합니다 - 대부분의 주요 버그는 수정했습니다. 기능 요청 및 버그 보고도 환영합니다.
Strix Halo (Ubuntu 25.10) 에서 ROCm 설정
Linux 에서 Strix Halo 는 gfx1151 로 native ROCm 작동하기 전에 일부 설정이 필요합니다. Strix Halo 를 위한 도커 기반 툴박스를 알고 있습니다. 작동하며 좋은 옵션입니다. 나는 컨테이너 없이 bare-metal 을 원했습니다.
그에 관심이 있는 사람들을 위해 아래 단계를 포함합니다.
- mainline kernel 6.18 설치. Ubuntu 25.10 의 Mainline Kernels 데스크톱 앱을 사용하세요. 재부팅.
- 확인:
uname -r shows 6.18.x.
- 확인:
- BIOS 에서 전용 iGPU VRAM 을 4GB 로 설정하고 Resizable BAR 을 활성화합니다. 나머지 124GB 는 GTT 를 통해 접근 가능한 통합 메모리로 남습니다.
- GRUB 파라미터 추가.
/etc/default/grub.d/에iommu=pt amdgpu.gttsize=126976 ttm.pages_limit=32505856 amdgpu.cwsr_enable=0를 추가합니다. 주의:amdgpu.gttsize는 최근 커널에서 폐기되었지만 여전히 존중됩니다.ttm.pages_limit과 함께 벨트 앤드 스펜더로 유지했습니다.update-grub와 재부팅 실행.- 확인:
cat /sys/class/drm/card*/device/mem_info_gtt_total은 ~124GB 를 표시합니다.
- 확인:
- 선택적으로 펌웨어 업데이트. upstream linux-firmware 트리를 복제하고 MES 블로브를
/lib/firmware/amdgpu/로 복사합니다. md5 를 먼저 확인 - 내 펌웨어는 이미 최신이었으므로 이 단계를 실행하지 않았습니다. - ROCm 7.2 설치. AMD repo 를 통해 호스트에서 설치. 링크 추가:
libxml2.so.16->libxml2.so.2, 그렇지 않으면 일부 라이브러리가 로드되지 않습니다.- 확인:
rocminfo | grep gfx는 gfx1151 을 표시합니다.
- 확인:
- ROCm 을 위한 llama.cpp 빌드.
cmake -B build -DGGML_HIP=ON -DAMDGPU_TARGETS="gfx1151" \ -DCMAKE_BUILD_TYPE=Release -DCMAKE_HIP_FLAGS="-mllvm --amdgpu-unroll-threshold-local=600" - 실행할 때 알아야 할 세 가지:
HSA_OVERRIDE_GFX_VERSION을 설정하지 마세요. gfx1151 에서 gfx1100 커널 디스패치를 강제하고 rms_norm 에서 segfault 를 유발합니다.- 필요한 런타임 플래그:
--no-warmup -fa 1 -dio --no-mmap.--no-warmup을 없애면 warmup 단계에서 segfault 합니다. - 확인: 모델을 실행하여 segfault 없이 로드하고 토큰을 생성하는지 확인하세요.
또한 CUDA 13.2 (RTX Pro 5000) 를 위한 llama.cpp 를 소스에서 빌드하며, 표준 -DGGML_CUDA=ON 플로우를 사용하여 특별한 처리 없이 진행합니다.
PS. Apple Mac: 저는 Mac 을 소유하지 않아 MacOS 에서 앱을 테스트할 수 없습니다. 소스에서 빌드해 주거나 빌드를 공유해 주시면 GitHub 의 릴리스에 추가할 수 있습니다. ReadMe 에 GitHub 핸들링을 언급해 드릴 수 있으니, 감사합니다 :)
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기