Laguna S 2.1을 위한 툴박스 제작 과정의 AI 요약
요약
AMD Strix Halo 환경에서 Laguna S 2.1 모델 테스트를 위해 llama.cpp 포크를 컨테이너 기반으로 빌드하는 과정을 다룹니다. ROCm/HIP 설정, 의존성 패키지 해결, 소스 코드 수정 및 벤치마크 실행 중 발생한 오류와 해결 방안을 기술합니다.
핵심 포인트
- Fedora Toolbox를 활용한 격리된 빌드 환경 구축
- ROCm/HIP 기반의 llama.cpp 빌드를 위한 필수 devel 패키지 설치 필요성
- 빌드 과정 중 발견된 <cmath> 헤더 누락 소스 버그 수정
- Flash Attention 활성화 시 발생하는 아키텍처 호환성 오류 및 대응
저는 제 로컬 AI 스택을 위해 새로운 잠재적 후보인 Qwen 3.5 122b a10b를 테스트해보고 싶었고, llama.cpp 포크(fork)를 직접 가져와서 빌드하는 작업은 이전에 해본 적이 없었습니다. 구식의 Google 검색 기술(Google-fu)과 LLM을 활용한 문제 해결(troubleshooting)을 통해, 오늘 아침 제 Nimo Strix Halo Box에서 llama-bench를 가져와 실행할 수 있었습니다. 다음은 제가 수행한 단계들에 대한 AI 요약과 마지막에 있는 벤치마크 결과입니다.
목표: Strix Halo (gfx1151)를 위해 ROCm/HIP를 사용하여 llama.cpp의 Laguna 포크(poolsideai/llama.cpp, laguna 브랜치)를 격리된 툴박스(toolbox) 내에 빌드 — 프로덕션 서빙 컨테이너와 분리하여 유지.
- 이번 빌드를 위해 기존의 Strix Halo 툴박스 이미지(kyuz0's)는 건너뛰었습니다. 해당 이미지들은 이미 빌드된 llama.cpp를 번들로 포함하고 라이브러리 경로를 등록하기 때문에, 소스에서 별도의 포크를 빌드하는 것과 충돌이 발생할 수 있습니다.
- GPU 패스스루(/dev/dri, /dev/kfd, video/render 그룹)가 설정된 fedora-toolbox:43을 사용하여 깨끗한 컨테이너를 생성했습니다.
- Fedora의 네이티브 저장소에서 ROCm을 설치했습니다 — rocm 메타패키지(~12GB)를 통해 hipcc/rocm-llvm/hipblas/rocblas/etc.를 가져옵니다.
- cmake 설정(configure) 단계에서 누락된 -devel 패키지 문제에 직면했습니다 (Fedora는 런타임과 개발용(devel)을 분리함): hipblas-devel, rocblas-devel, rocsolver-devel, rocsparse-devel, hiprand-devel, rocrand-devel, hipfft-devel이 필요했습니다.
- 빌드 설정: cmake -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1151 -DCMAKE_BUILD_TYPE=Release
- 소스 버그 하나 발견: common/speculative.cpp에서 <cmath>를 포함하지 않고 std::isfinite를 사용했습니다. 한 줄로 수정 후 깨끗하게 다시 빌드했습니다.
- 빌드 성공, GPU 감지됨: ROCm0: AMD Radeon 8060S Graphics (126976 MiB, 10982 MiB free)
- -fa 1 -ctk q8_0 -ctv q8_0 옵션으로 llama-bench 실행 (빌드에 rocWMMA 미포함) — 충돌 발생: ERROR: HIP kernel flash_attn_ext_f16 has no device code compatible with HIP arch 1300
- 임시 방편으로 q8_0 KV 캐시를 유지한 채 -fa 0을 시도했으나, 양자화된(quantized) KV 캐시는 Flash Attention이 활성화되어 있어야 하므로 실패했습니다.
다음 단계: 모델 로드가 정상적으로 되는지 확인하기 위해 KV 양자화(KV quantization)를 제외하고(-fa 0, -ctk / -ctv 미사용) 시도한 후, 실제 벤치마크 실행을 위해 rocWMMA 빌드로 다시 돌아갑니다. 벤치마크 실행 - DFlash 미사용:~$ toolbox run -c llama-laguna-build -- ./llama.cpp/build/bin/llama-bench \ -m "/home/admine3/models/laguna-s-2-1/laguna-s-2.1-Q4_K_M.gguf" \ -ngl 99 -fa 0 --mmap 0 ggml_cuda_init: found 1 ROCm devices (Total VRAM: 126976 MiB): Device 0: AMD Radeon 8060S Graphics, gfx1151 (0x1151), VMM: no, Wave Size: 32, VRAM: 126976 MiB | model | size | params | backend | ngl | fa | mmap | test | t/s | | ------------------------------ | ---------: | ---------: | ---------- | --: | --: | ---: | --------------: | -------------------: | | laguna 118B.A8B Q4_K - Medium | 70.01 GiB | 117.56 B | ROCm | 99 | 0 | 0 | pp512 | 305.54 ± 0.85 | | laguna 118B.A8B Q4_K - Medium | 70.01 GiB | 117.56 B | ROCm | 99 | 0 | 0 | tg128 | 18.44 ± 0.02 | build: 04b2b72cb (10008) 다음 단계: DFlash를 사용하여 실행을 시도했으나, 컨텍스트(ctx)가 제대로 로드되는 과정에서 문제가 발생하여...
u/e3d-ai-01:~$ toolbox run -c llama-laguna-build -- ./llama.cpp/build/bin/llama-server -m /home/admine3/models/laguna-s-2-1/laguna-s-2.1-Q4_K_M.gguf -md /home/admine3/models/laguna-s-2-1/laguna-s-2.1-DFlash-BF16.gguf --spec-type draft-dflash --spec-draft-n-max 15 -fa off --jinja --port 8099 0.04.810.791 I cmn common_param: common_params_print_info: verbosity = 3 (adjust with the -lv N CLI arg) 0.04.884.123 I srv load_model: loading model '/home/admine3/models/laguna-s-2-1/laguna-s-2.1-Q4_K_M.gguf' 0.04.959.154 E llama_init_from_model: failed to initialize the context: dflash requires ctx_other to be set (this warning is normal during memory fitting) 0.04.970.249 W srv load_model: [spec] failed to measure draft model memory: failed to create llama_context from model 0.05.333.340 W load: special_eos_id is not in special_eog_ids - the tokenizer config may be incorrect 0.05.333.344 W load: special_eot_id is not in special_eog_ids - the tokenizer config may be incorrect Note: This loaded into GTT but sat idle for several minutes at 71769 MiB with just minimal/idle activity on GRBM/GRMB2. Health check returned errors on the port. Gave up on DFlash {"error":{"message":"Loading model","type":"unavailable_error","code":503}} If I was going to do anything else, it would be rebuilding with -DGGML_HIP_ROCWMMA_FATTN=ON (needs rocwmma-devel ) to get proper FA support for gfx1151 (this is what the LLM tells me the issue was) For now, I'm just happy it ran at all submitted by /u/dbinnunE3 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기