2P by GN⁺ | ★ favorite | 댓글 1개
  • Intel GPU에서 llama.cpp를 바로 돌리려는 사용자를 위한 IPEX-LLM portable zip/tgz 빠른 시작 문서로, 최신 패키지에서는 Xeon의 Arc A770 1~2개로 DeepSeek-R1-671B-Q4_K_M 실행까지 다룸
  • 대상 환경은 Windows와 Linux 모두이며, Intel Core Ultra/11~14세대와 Intel Arc A-Series/B-Series GPU에서 GGUF 모델 실행 절차를 안내함
  • 기본 흐름은 GGUF 모델을 로컬에 준비한 뒤 llama-cli-ngl 99, -c 2500, -n 2048, --temp 0 같은 옵션을 넣어 실행하는 방식임
  • Linux 전용 FlashMoE는 DeepSeek V3/R1 계열 MoE GGUF 실행에 맞춘 CLI이며, DeepSeek V3/R1 기준 CPU 메모리 380GB, Arc A770 1~8개, 디스크 500GB가 필요함
  • 여러 Intel GPU가 섞인 환경에서는 기본적으로 모든 GPU를 쓰기 때문에, iGPU/dGPU 조합에서는 ONEAPI_DEVICE_SELECTOR로 GPU를 지정하거나 SYCL_DEVICE_CHECK=0로 검사를 끌 수 있음

portable zip/tgz로 llama.cpp 실행

  • llama.cpp portable zipipex-llm 기반으로 Intel GPU에서 llama.cpp를 직접 실행하는 패키지임
  • 수동 설치를 줄인 portable zip/tgz 흐름을 전제로 하며, 최신 portable zip은 Xeon의 Arc A770 1개 또는 2개에서 DeepSeek-R1-671B-Q4_K_M 실행을 다룸
  • 검증된 하드웨어 범위:
    • Intel Core Ultra processors
    • Intel Core 11th~14th gen processors
    • Intel Arc A-Series GPU
    • Intel Arc B-Series GPU

Windows 빠른 시작

  • Intel GPU 드라이버는 최신 버전으로 업데이트하는 것을 권장함

  • v2.3.0-nightly 릴리스에서 Windows용 IPEX-LLM llama.cpp portable zip을 내려받아 압축을 해제함

  • cmd에서 압축 해제 폴더로 이동함

    • cd /d PATH\TO\EXTRACTED\FOLDER
  • 여러 GPU를 쓰는 사용자는 실행 전에 GPU 선택 설정을 적용할 수 있음

  • GGUF 모델 실행

    • 실행 전 커뮤니티 GGUF 모델을 로컬 디렉터리에 다운로드하거나 복사해야 함
    • 예시 모델은 bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUFDeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf
    • 모델 경로를 실제 위치로 바꾼 뒤 llama-cli.exe를 실행함
    llama-cli.exe -m PATH\TO\DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf -p "A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>. User: Question:The product of the ages of three teenagers is 4590. How old is the oldest? a. 18 b. 19 c. 15 d. 17 Assistant: <think>" -n 2048  -t 8 -e -ngl 99 --color -c 2500 --temp 0 -no-cnv
    
    • 예시 출력에는 Intel Arc A770 Graphics 1개 SYCL 장치, KV 캐시, SYCL compute buffer, sampler 설정, 토큰 생성 성능 정보가 나타남

Linux 빠른 시작

  • GPU 드라이버 버전을 확인하고, 필요하면 Intel client GPU driver installation guide를 따라 설치하는 것을 권장함

  • v2.3.0-nightly 릴리스에서 Linux용 IPEX-LLM llama.cpp portable tgz를 내려받아 압축을 해제함

  • 터미널에서 압축 해제 폴더로 이동함

    • cd /PATH/TO/EXTRACTED/FOLDER
  • Linux에서 llama.cpp portable zip을 사용할 때는 oneAPI를 source하지 않아야 함

  • GGUF 모델 실행

    • Windows와 마찬가지로 DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf 같은 커뮤니티 GGUF 모델을 로컬에 준비함
    • 모델 경로를 실제 위치로 바꾼 뒤 ./llama-cli를 실행함
    ./llama-cli -m /PATH/TO/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf -p "A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>. User: Question:The product of the ages of three teenagers is 4590. How old is the oldest? a. 18 b. 19 c. 15 d. 17 Assistant: <think>" -n 2048  -t 8 -e -ngl 99 --color -c 2500 --temp 0 -no-cnv
    
    • 예시 출력에는 SYCL 장치 목록, llama_kv_cache_init, llama_init_from_model, sampler chain, n_ctx = 2528, n_batch = 4096, n_predict = 2048 같은 실행 정보가 포함됨

FlashMoE로 DeepSeek V3/R1 실행

  • FlashMoEllama.cpp 위에 구축된 명령줄 도구이며, DeepSeek V3/R1 같은 MoE 모델 실행에 맞춰져 있음

  • 현재 Linux 플랫폼에서 사용할 수 있음

  • 테스트된 MoE GGUF 모델:

  • 다른 MoE GGUF 모델도 지원됨

  • 요구사항과 주의사항

    • DeepSeek V3/R1 실행 요구사항:
      • CPU 메모리 380GB
      • Arc A770 1~8개
      • 디스크 500GB
        • 더 큰 모델이나 다른 정밀도는 더 많은 리소스가 필요할 수 있음
        • Arc A770 1개 플랫폼에서는 OOM을 피하기 위해 컨텍스트 길이를 줄여야 하며, 예시로 명령 끝에 -c 1024를 추가함
        • 듀얼 소켓 플랫폼에서는 BIOS에서 SNC (Sub-NUMA Clustering)를 활성화하고 실행 명령 앞에 numactl --interleave=all을 붙이면 더 나은 디코딩 성능을 얻을 수 있음
        • FlashMoE를 사용할 때도 oneAPI를 source하지 않아야 함
  • CLI 실행

    ./flash-moe -m /PATH/TO/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf --prompt "What's AI?" -no-cnv
    
    • 예시 출력에는 8개 SYCL 장치의 KV buffer, pipeline parallelism enabled, graph nodes/splits, n_threads = 48, n_ctx = 4096, n_batch = 4096 같은 실행 정보가 나타남
  • Serving 실행

    ./flash-moe -m /PATH/TO/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf --serve -n 512 -np 2 -c 4096
    
    • -n은 예측할 토큰 수, -np는 병렬 디코딩 시퀀스 수, -c는 전체 컨텍스트 크기임
    • 값은 요구사항에 맞게 조정할 수 있음
    • Serving 기능은 v2.3.0 nightly build부터 사용할 수 있음
    • 예시 출력에는 n_slots = 2, 각 slot의 n_ctx_slot = 2048, 모델 로딩, chat template, http://127.0.0.1:8080 서버 대기 상태가 포함됨

다중 GPU 선택과 SYCL 오류

  • 서로 다른 SYCL 장치 감지

    • 서로 다른 GPU가 섞여 있으면 Detected different sycl devices 오류가 발생할 수 있음
    • 예시는 Arc A770 2개와 Intel UHD Graphics 770 iGPU 1개가 함께 감지되는 상황임
    • GPU가 같지 않으면 작업이 장치 메모리에 따라 할당되며, 예시에서는 iGPU가 계산 작업의 2/3를 받아 성능이 크게 떨어짐
    • 선택지는 두 가지임
      • iGPU를 비활성화해 최상의 성능을 얻음
      • 검사를 끄고 모든 장치를 사용함
    set SYCL_DEVICE_CHECK=0
    export SYCL_DEVICE_CHECK=0
    
  • 사용할 GPU 지정

    • 여러 Intel GPU가 있으면 llama.cpp는 기본적으로 모든 GPU에서 실행됨
    • 특정 GPU만 쓰려면 llama.cpp 명령을 시작하기 전에 ONEAPI_DEVICE_SELECTOR 환경 변수를 설정함
    • Windows:
    set ONEAPI_DEVICE_SELECTOR=level_zero:0
    set ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"
    
    • Linux:
    export ONEAPI_DEVICE_SELECTOR=level_zero:0
    export ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"
    

성능 옵션과 서명 검증

  • Immediate command lists

    • SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS는 GPU 작업 제출에 immediate command lists를 사용할지 결정함
    • 일반적으로 성능을 높일 수 있지만 예외가 있을 수 있어, 환경 변수를 켠 경우와 끈 경우를 모두 시험해 최적 성능을 찾는 것을 권장함
    • Windows:
    set SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
    
    • Linux:
    export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
    
  • portable zip/tgz 2.2.0 서명 검증

    • portable zip/tgz 버전 2.2.0openssl로 서명을 검증할 수 있음
    • 검증 전 시스템에 openssl이 설치되어 있어야 함
    openssl cms -verify -in <portable-zip-or-tgz-file-name>.pkcs1.sig -inform DER -content <portable-zip-or-tgz-file-name> -out nul -noverify
    

댓글과 토론

Hacker News 의견들
  • 이 구성은 VRAM이 부족해서 CPU와 GPU 메모리 사이로 데이터를 많이 옮겨야 하니 성능이 아주 좋지는 않을 가능성이 큼
    그래도 DeepSeek-R1의 256GB 미만 양자화 모델이 있고, 증류 버전은 아님: https://unsloth.ai/blog/deepseekr1-dynamic
    전체 FP8 DSR1과 차이를 정량화하긴 어렵지만, ~Q2 양자화 모델도 생각보다 꽤 쓸 만했음
    또 언급할 만한 모델은 DeepSeek v2.5인데, V3/R1보다 매개변수가 적지만 소비자용 장비에서 돌리려면 여전히 공격적인 양자화가 필요함. 최근 누군가 만들어 둠: https://www.reddit.com/r/LocalLLaMA/comments/1irwx6q/deepsee...
    DeepSeek v2.5는 Llama 3 70B보다 낫다고 볼 여지도 있어서, 로컬 추론을 돌리려는 사람이라면 더 많이 알아야 할 모델이라고 봄

    • Unsloth R1 양자화를 듀얼 Xeon Gold 5218과 384GB DDR4-2666에서 시험해 봤고, 메모리 채널은 절반 정도만 써서 최적 구성은 아니었음
      IQ2_XXS / 183GB, 16k 문맥 기준으로 CPU만 쓰면 프롬프트 처리 3토큰/초, 응답 1.44토큰/초였고, CPU + NVIDIA RTX 70GB VRAM에서는 프롬프트 처리 4.74토큰/초, 응답 1.87토큰/초였음
      Unsloth가 DeepSeek V3에도 비슷한 양자화를 내주면 더 유용할 것 같음. 추론 토큰이 필요 없으니 같은 토큰/초라도 전체적으로 더 빠를 수 있음
    • v2.5는 한번 돌려볼 예정이고, 그렇게 작게 양자화해도 v3.5만큼 일관성이 있으면 좋겠음
      Q2_K_XL을 쓰고 있는데 개인적으로는 충분히 좋음. FP8보다 부족한 부분은 창작 글쓰기 쪽이라, 같은 이야기 프롬프트를 몇 번 넣고 FP8과 비교해 보면 차이가 보임
      코딩에서는 1.58비트가 Q2XXS나 Q2_K_XL보다 확실히 오류를 더 많이 냄
    • 현재 8토큰/초 초과가 나오며, 이 글에 데모가 있음: https://www.linkedin.com/posts/jasondai_run-671b-deepseek-r1...
  • https://github.com/intel/ipex-llm/blob/main/docs/mddocs/Quic...
    8토큰/초 초과 요구사항은 CPU 메모리 380GB, ARC A770 1~8장, 디스크 500GB임

    • Jason Dai 글의 데모도 볼 수 있음: https://www.linkedin.com/posts/jasondai_with-the-latest-ipex...
    • 8토큰/초 이상을 내려면 Intel Arc A770 한 장으로 충분한 건지 궁금함
    • 이 구성 비용이 대략 어느 정도인지 궁금함
      1만 달러 미만일 것 같고, 토큰/초 수치도 못 본 듯함
  • 이 상황에서 Xeon이 정확히 무슨 역할을 하는지 궁금함. 다른 x86 프로세서를 쓰면 안 되는 이유가 있나?

    • Xeon이 아닌 대부분의 메인보드는 상업적으로 구할 만한 DIMM으로 이 정도 메모리를 꽂을 만큼 메모리 채널이 많지 않아서 그런 것 같음
    • DDR4 UDIMM은 모듈당 최대 32GB, DDR5 UDIMM은 모듈당 최대 64GB이고, Xeon이 아닌 메인보드는 보통 UDIMM 슬롯이 최대 4개라 노드당 128GB/256GB가 한계임
      서버 메인보드는 소켓당 DIMM 슬롯이 16개까지 있고 RDIMM/LRDIMM을 지원해서 더 많은 모듈과 더 큰 용량 모듈을 꽂을 수 있음
      코로나 정점 시기에 128GB UDIMM 출시가 있긴 했음
    • 충분한 총 RAM을 합리적인 가격에 제공하는 메인보드는 Epyc 말고는 많지 않음. 테스트/개발용으로는 512GB RAM이 달린 중고 Dell 듀얼 소켓 구형 Xeon 서버를 꽤 싸게 살 수 있음
      방금 몇 분 검색해 보니 비디오카드나 SSD를 더하기 전 기준으로 1500달러 미만도 쉽게 보이고, 1024GB RAM 구성도 2000달러 미만이 보임
      최소한 전체 속도의 PCI-Express x16 3.0 카드를 여러 장 꽂으려면 PCIe 레인도 충분해야 하는데, 단일 소켓 Intel 워크스테이션 메인보드에서는 찾기 어려움
      예시로 512GB RAM이 달린 비교적 저렴한 구성 몇 개를 들 수 있음. 전력은 많이 먹고 시끄럽겠지만, hp나 supermicro 같은 다른 x86-64 하드웨어도 같은 접근임. 보통 16 x 32GB DDR4 DIMM 구성임
      https://www.ebay.com/itm/186991103256?_skw=dell+poweredge+t6...
      https://www.ebay.com/itm/235978320621?_skw=dell+poweredge+r7...
      https://www.ebay.com/itm/115819389940?_skw=dell+poweredge+r7...
  • 더 크지만 느린 RAM을 많이 단 GPU를 왜 내놓지 않는지 궁금함. 그러면 더 큰 모델을 담을 수 있으면서도 가격은 여전히 감당 가능할 텐데

    • 그게 어디에 필요하겠나. 게임용은 아닐 테고, AI라면 돈을 내라는 게 현재 Nvidia의 방식
      AI용 GPU 수요가 공급보다 많고, 그 수요 대부분 뒤에는 보조금·대출·투자금을 받을 수 있는 과열된 돈이 붙어 있음. GPU 업체가 그 돈을 가져갈 수 있음
      안타깝게도 VRAM은 가벼운 사용과 돈 있는 사용을 가르는 완벽한 기준임. SSO가 기업용과 비기업용을 가르는 완벽한 기준이 되어 SSO 세금이 붙는 것과 비슷함
    • 그렇게 만들면 더 비싼 GPU를 살 동기가 줄어듦
    • VRAM이 더 큰 GPU를 만드는 건 당연히 가능하지만, 그렇게 해야 할 만큼 경쟁이 없음. 지금 방식이 훨씬 더 수익성이 좋음
    • AMD Halo Strix 소식을 못 봤나? AI에서는 Nvidia 4090보다 두 배 넘게 빠르고, 지난주에 출시됐음
  • DeepSeek은 모델 이름 짓는 법을 OpenAI한테 배운 건가

    • 관례가 이상하긴 하지만 업계 전반, 특히 GGUF 모델에서는 꽤 표준적임. 671B 매개변수를 4비트로 양자화했다는 뜻임
      K_M 용어는 GGUF에 더 특화된 것으로 보이고, 구체적인 양자화 전략을 설명함
  • 글에 정보가 좀 더 있어야 함. 왜 TPS 수치가 전부 x로 가려져 있는지, 이 구성에서 어떤 성능을 기대할 수 있는지, 최근 유행한 듀얼 Epyc 워크스테이션 구성과 비교하면 어떤지 궁금함

    • 현재 2소켓 5세대 Xeon(EMR)에서 8TPS 초과가 나옴
    • 최근 유행했다는 듀얼 Epyc 워크스테이션 레시피 링크가 있으면 보고 싶음
  • 샘플 출력에서 토큰/초 값을 가려 둔 걸 보면 분명 아주 잘 돌아가나 봄

  • Nvidia 밖에서도 LLM과 Stable Diffusion 추론을 돌릴 선택지가 몇 가지 보임. Intel Arc, Apple M 시리즈, 이제 AMD Ryzen AI Max도 있음
    Nvidia에서 돌리는 게 가장 최적이라는 건 분명하지만, 합리적인 가격의 고VRAM Nvidia 카드 구하기가 어려워서 비Nvidia 장비도 계속 생각하게 됨
    학습이나 미세조정에 관심이 없고 추론만 한다면 이런 해법들이 실제로 쓸 만한가? Linux 머신에서 가능한지도 궁금함

    • 진지하게 하려면 Nvidia로 가는 게 맞음
      이 글은 사실상 Intel이 “우리도 GPU 만들었어요”라고 상기시키는 내용에 가깝고, 예산형 카드 자체는 좋지만 생태계가 너무 뒤처져 있음
      솔직히 이건 예산을 아껴서 제대로 하기 어려운 영역임
  • AI용 APU가 나오면 GPU에 대한 관심은 빠르게 식을 것 같음
    AMD Halo Strix나 Apple M3 Studio APU로 512GB 또는 128GB RAM을 쓸 수 있는데, 왜 비싼 Nvidia 4090을 사겠나
    Nvidia는 가능한 한 오래 가격을 높게, 성능을 낮게 유지해 왔고 이제야 경쟁이 온 것임. Intel도 RAM을 잔뜩 단 APU를 만들 수 있음
    Nvidia가 좀 초조해하고 있기를 바람