내 설정에서 로컬로 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 스크립트로 레시피를 구성하여 한 번에 빌드할 수 있습니다.
Read Me 와 함께 가이드 를 확인하세요.
GitHub 에서 warpdrv 방문
초기 알파 버전이므로 일부 버그를 예상합니다 - 대부분의 주요 버그는 수정했습니다. 기능 요청 및 버그 보고도 환영합니다.
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 핸들링을 언급해 드릴 수 있으니, 감사합니다 :)