2 puan yazan GN⁺ 2025-03-08 | 1 yorum | WhatsApp'ta paylaş
  • Intel GPU üzerinde llama.cpp’yi doğrudan çalıştırmak isteyen kullanıcılar için hazırlanan IPEX-LLM portable zip/tgz hızlı başlangıç dokümanı; en güncel pakette Xeon üzerindeki 1 veya 2 adet Arc A770 ile DeepSeek-R1-671B-Q4_K_M çalıştırmaya kadar uzanıyor
  • Hedef ortam hem Windows hem Linux; Intel Core Ultra/11.~14. nesil ve Intel Arc A-Series/B-Series GPU’larda GGUF model çalıştırma adımlarını anlatıyor
  • Temel akış, GGUF modeli yerelde hazırladıktan sonra llama-cliyi -ngl 99, -c 2500, -n 2048, --temp 0 gibi seçeneklerle çalıştırmak
  • Yalnızca Linux’a özel FlashMoE, DeepSeek V3/R1 ailesi MoE GGUF çalıştırmaya uyarlanmış bir CLI; DeepSeek V3/R1 için 380 GB CPU belleği, 1~8 adet Arc A770 ve 500 GB disk gerekiyor
  • Birden fazla Intel GPU’nun karışık bulunduğu ortamlarda varsayılan olarak tüm GPU’lar kullanılıyor; bu yüzden iGPU/dGPU kombinasyonlarında GPU’yu ONEAPI_DEVICE_SELECTOR ile belirtmek veya denetimi SYCL_DEVICE_CHECK=0 ile kapatmak mümkün

portable zip/tgz ile llama.cpp çalıştırma

  • llama.cpp portable zip, ipex-llm tabanlı olarak Intel GPU üzerinde llama.cpp’yi doğrudan çalıştıran bir paket
  • Elle kurulum ihtiyacını azaltan portable zip/tgz akışı temel alınıyor; en yeni portable zip, Xeon üzerindeki 1 veya 2 Arc A770’de DeepSeek-R1-671B-Q4_K_M çalıştırmayı kapsıyor
  • Doğrulanmış donanım kapsamı:
    • Intel Core Ultra processors
    • Intel Core 11th~14th gen processors
    • Intel Arc A-Series GPU
    • Intel Arc B-Series GPU

Windows hızlı başlangıç

  • Intel GPU sürücüsünün en güncel sürüme güncellenmesi öneriliyor

  • v2.3.0-nightly sürümünden Windows için IPEX-LLM llama.cpp portable zip indirilip açılıyor

  • cmd içinde arşivin açıldığı klasöre gidiliyor

    • cd /d PATH\TO\EXTRACTED\FOLDER
  • Birden fazla GPU kullananlar, çalıştırmadan önce GPU seçimi ayarını uygulayabilir

  • GGUF model çalıştırma

    • Çalıştırmadan önce topluluk tarafından hazırlanmış GGUF modeli yerel bir dizine indirmek veya kopyalamak gerekiyor
    • Örnek model, bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF içindeki DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf
    • Model yolunu gerçek konumla değiştirip llama-cli.exe çalıştırılıyor
    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
    
    • Örnek çıktıda 1 adet Intel Arc A770 Graphics SYCL aygıtı, KV cache, SYCL compute buffer, sampler ayarları ve token üretim performansı bilgileri görülüyor

Linux hızlı başlangıç

  • GPU sürücü sürümünü kontrol etmek ve gerekirse Intel client GPU driver installation guide üzerinden kurulum yapmak öneriliyor

  • v2.3.0-nightly sürümünden Linux için IPEX-LLM llama.cpp portable tgz indirilip açılıyor

  • Terminalde arşivin açıldığı klasöre gidiliyor

    • cd /PATH/TO/EXTRACTED/FOLDER
  • Linux’ta llama.cpp portable zip kullanırken oneAPI source edilmemeli

  • GGUF model çalıştırma

    • Windows’taki gibi DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf benzeri bir topluluk GGUF modeli yerelde hazırlanıyor
    • Model yolunu gerçek konumla değiştirip ./llama-cli çalıştırılıyor
    ./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
    
    • Örnek çıktıda SYCL aygıt listesi, llama_kv_cache_init, llama_init_from_model, sampler chain, n_ctx = 2528, n_batch = 4096, n_predict = 2048 gibi çalışma bilgileri yer alıyor

FlashMoE ile DeepSeek V3/R1 çalıştırma

  • FlashMoE, llama.cpp üzerine inşa edilmiş bir komut satırı aracıdır ve DeepSeek V3/R1 gibi MoE modellerini çalıştırmaya odaklanır

  • Şu anda Linux platformunda kullanılabiliyor

  • Test edilmiş MoE GGUF modelleri:

  • Başka MoE GGUF modelleri de destekleniyor

  • Gereksinimler ve dikkat edilmesi gerekenler

    • DeepSeek V3/R1 çalıştırma gereksinimleri:
      • 380 GB CPU belleği
      • 1~8 adet Arc A770
      • 500 GB disk
        • Daha büyük modeller veya farklı hassasiyetler daha fazla kaynak gerektirebilir
        • Tek Arc A770 bulunan platformlarda OOM’den kaçınmak için context uzunluğu azaltılmalı; örnek olarak komutun sonuna -c 1024 ekleniyor
        • Çift soketli platformlarda BIOS içinde SNC (Sub-NUMA Clustering) etkinleştirilip çalıştırma komutunun başına numactl --interleave=all eklenirse daha iyi decoding performansı elde edilebilir
        • FlashMoE kullanırken de oneAPI source edilmemeli
  • CLI çalıştırma

    ./flash-moe -m /PATH/TO/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf --prompt "What's AI?" -no-cnv
    
    • Örnek çıktıda 8 SYCL aygıtının KV buffer’ı, pipeline parallelism enabled, graph nodes/splits, n_threads = 48, n_ctx = 4096, n_batch = 4096 gibi çalışma bilgileri görünüyor
  • Serving çalıştırma

    ./flash-moe -m /PATH/TO/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf --serve -n 512 -np 2 -c 4096
    
    • -n, üretilecek token sayısı; -np, paralel decoding sequence sayısı; -c, toplam context boyutu
    • Değerler gereksinimlere göre ayarlanabilir
    • Serving özelliği v2.3.0 nightly build ile kullanılabiliyor
    • Örnek çıktıda n_slots = 2, her slot için n_ctx_slot = 2048, model yükleme, chat template ve http://127.0.0.1:8080 üzerinde sunucunun bekleme durumu yer alıyor

Çoklu GPU seçimi ve SYCL hataları

  • Farklı SYCL aygıtlarının algılanması

    • Farklı GPU’lar bir aradaysa Detected different sycl devices hatası oluşabilir
    • Örnekte 2 Arc A770 ve 1 Intel UHD Graphics 770 iGPU’nun birlikte algılandığı bir durum var
    • GPU’lar aynı değilse iş yükü aygıt belleğine göre dağıtılır; örnekte iGPU hesaplama işinin 2/3’ünü aldığı için performans ciddi biçimde düşüyor
    • İki seçenek bulunuyor
      • En iyi performans için iGPU’yu devre dışı bırakmak
      • Denetimi kapatıp tüm aygıtları kullanmak
    set SYCL_DEVICE_CHECK=0
    export SYCL_DEVICE_CHECK=0
    
  • Kullanılacak GPU’yu belirtme

    • Birden fazla Intel GPU varsa llama.cpp varsayılan olarak hepsinde çalışır
    • Yalnızca belirli GPU’ları kullanmak için llama.cpp komutunu başlatmadan önce ONEAPI_DEVICE_SELECTOR ortam değişkeni ayarlanır
    • 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"
    

Performans seçenekleri ve imza doğrulama

  • Immediate command lists

    • SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS, GPU iş gönderiminde immediate command lists kullanılıp kullanılmayacağını belirler
    • Genellikle performansı artırabilir, ancak istisnalar olabileceğinden en iyi performansı bulmak için ortam değişkeni açık ve kapalı şekilde test edilmesi önerilir
    • 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 imza doğrulama

    • portable zip/tgz 2.2.0 sürümünde imza openssl ile doğrulanabiliyor
    • Doğrulamadan önce sistemde openssl kurulu olmalı
    openssl cms -verify -in <portable-zip-or-tgz-file-name>.pkcs1.sig -inform DER -content <portable-zip-or-tgz-file-name> -out nul -noverify
    

1 yorum

 
GN⁺ 2025-03-08
Hacker News yorumları
  • Bu yapılandırmada VRAM yetersiz olduğundan CPU ile GPU belleği arasında çok veri taşınması gerekecek; bu yüzden performansın çok iyi olmama olasılığı yüksek.
    Yine de DeepSeek-R1’in 256 GB altı kuantize modeli var ve bu bir damıtılmış sürüm değil: https://unsloth.ai/blog/deepseekr1-dynamic
    Tam FP8 DSR1 ile farkı nicelendirmek zor, ama ~Q2 kuantize model bile beklediğimden oldukça kullanışlıydı.
    Ayrıca anmaya değer bir model de DeepSeek v2.5; V3/R1’den daha az parametreye sahip, ancak tüketici donanımında çalıştırmak için hâlâ agresif kuantizasyon gerekiyor. Yakın zamanda biri hazırlamış: https://www.reddit.com/r/LocalLLaMA/comments/1irwx6q/deepsee...
    DeepSeek v2.5’in Llama 3 70B’den daha iyi sayılabileceği yönünde de bir argüman var; bu yüzden yerel çıkarım çalıştırmak isteyenlerin daha çok bilmesi gereken bir model olduğunu düşünüyorum.

    • Unsloth R1 kuantizasyonunu çift Xeon Gold 5218 ve 384 GB DDR4-2666 üzerinde denedim; bellek kanallarının yalnızca yaklaşık yarısını kullandığım için optimum bir yapılandırma değildi.
      IQ2_XXS / 183 GB, 16k bağlamda yalnızca CPU kullanınca prompt işleme 3 token/sn, yanıt 1,44 token/sn idi; CPU + NVIDIA RTX 70 GB VRAM ile prompt işleme 4,74 token/sn, yanıt 1,87 token/sn oldu.
      Unsloth, DeepSeek V3 için de benzer bir kuantizasyon yayımlarsa daha faydalı olabilir. Akıl yürütme token’larına gerek olmadığından, aynı token/sn değerinde bile toplamda daha hızlı olabilir.
    • v2.5’i bir ara çalıştırmayı planlıyorum; bu kadar küçük kuantize edilse bile v3.5 kadar tutarlı olmasını umuyorum.
      Q2_K_XL kullanıyorum ve kişisel olarak yeterince iyi buluyorum. FP8’e göre eksik kaldığı taraf yaratıcı yazarlık; aynı hikâye prompt’unu birkaç kez verip FP8 ile karşılaştırınca fark görülebiliyor.
      Kodlamada 1,58 bit, Q2XXS veya Q2_K_XL’ye göre kesinlikle daha fazla hata üretiyor.
    • Şu anda 8 token/sn’nin üzerinde sonuç alınıyor; bu gönderide bir demo var: https://www.linkedin.com/posts/jasondai_run-671b-deepseek-r1...
  • https://github.com/intel/ipex-llm/blob/main/docs/mddocs/Quic...
    8 token/sn üzeri için gereksinimler 380 GB CPU belleği, 1–8 adet ARC A770 ve 500 GB disk.

    • Jason Dai’nin gönderisindeki demoyu da görebilirsiniz: https://www.linkedin.com/posts/jasondai_with-the-latest-ipex...
    • 8 token/sn veya üzeri için tek bir Intel Arc A770’in yeterli olup olmadığını merak ediyorum.
    • Bu yapılandırmanın maliyetinin kabaca ne kadar olduğunu merak ediyorum.
      10 bin doların altında gibi görünüyor; token/sn değerlerini de görmemiş gibiyim.
  • Bu durumda Xeon’un tam olarak ne rol oynadığını merak ediyorum. Başka bir x86 işlemci kullanılamamasının bir nedeni var mı?

    • Xeon olmayan çoğu anakartta, ticari olarak bulunabilecek DIMM’lerle bu kadar bellek takmaya yetecek kadar bellek kanalı olmadığı için gibi görünüyor
    • DDR4 UDIMM’de modül başına en fazla 32GB, DDR5 UDIMM’de modül başına en fazla 64GB var; Xeon olmayan anakartlarda da genelde en fazla 4 UDIMM yuvası bulunduğundan düğüm başına sınır 128GB/256GB oluyor
      Sunucu anakartlarında soket başına 16’ya kadar DIMM yuvası bulunuyor ve RDIMM/LRDIMM destekledikleri için daha fazla modül ve daha yüksek kapasiteli modüller takılabiliyor
      Covid’in zirve döneminde 128GB UDIMM’lerin piyasaya sürüldüğü olmuştu
    • Makul fiyata yeterli toplam RAM sunan anakart sayısı Epyc dışında pek fazla değil. Test/geliştirme için 512GB RAM’li ikinci el Dell çift soketli eski Xeon sunucuları oldukça ucuza alınabiliyor
      Az önce birkaç dakika aradım; ekran kartı veya SSD eklemeden önce 1500 doların altındakiler kolayca görünüyor, 1024GB RAM’li yapılandırmalar da 2000 doların altında görünüyor
      En azından tam hızda birden fazla PCI-Express x16 3.0 kart takmak için yeterli PCIe hattı da gerekiyor; bunu tek soketli Intel iş istasyonu anakartlarında bulmak zor
      Örnek olarak 512GB RAM’li görece ucuz birkaç yapılandırma verilebilir. Çok güç tüketecek ve gürültülü olacaktır ama hp veya supermicro gibi diğer x86-64 donanımlarda da yaklaşım aynı. Genelde 16 x 32GB DDR4 DIMM yapılandırması oluyor
      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...
  • Neden daha büyük ama daha yavaş RAM’i bol olan GPU’lar çıkarmadıklarını merak ediyorum. Böylece daha büyük modeller sığdırılabilirken fiyat hâlâ karşılanabilir olurdu

    • Buna nerede ihtiyaç duyulacak ki? Oyun için olmayacağı kesin; yapay zeka söz konusuysa mevcut durumda Nvidia’nın yöntemi “para öde” demek
      Yapay zeka GPU’larına talep arzdan fazla ve bu talebin büyük kısmının arkasında sübvansiyon, kredi ve yatırım alabilen aşırı ısınmış para var. GPU üreticisi o parayı alabiliyor
      Ne yazık ki VRAM, hafif kullanım ile parası olan kullanımı ayırmak için mükemmel bir ölçüt. SSO’nun kurumsal ve kurumsal olmayan kullanımı ayıran mükemmel ölçüt olup SSO vergisi eklenmesine benziyor
    • Öyle yaparlarsa daha pahalı GPU alma motivasyonu azalır
    • Daha büyük VRAM’li GPU yapmak elbette mümkün, ama bunu gerektirecek kadar rekabet yok. Mevcut yöntem çok daha kârlı
    • AMD Halo Strix haberini görmedin mi? Yapay zekada Nvidia 4090’dan iki kattan fazla hızlı ve geçen hafta piyasaya çıktı
  • DeepSeek model adlandırmayı OpenAI’dan mı öğrendi acaba

    • Gelenek garip olsa da sektör genelinde, özellikle GGUF modellerinde epey standart. 671B parametrenin 4 bit’e kuantize edildiği anlamına geliyor
      K_M terimi GGUF’ye daha özgü görünüyor ve belirli kuantizasyon stratejisini açıklıyor
  • Yazıda biraz daha bilgi olmalı. TPS değerlerinin neden hepsinin x ile maskelendiğini, bu yapılandırmada nasıl bir performans beklenebileceğini ve son dönemde popüler olan çift Epyc iş istasyonu yapılandırmalarıyla karşılaştırınca nasıl olduğunu merak ediyorum

    • Şu anda 2 soketli 5. nesil Xeon’da (EMR) 8TPS üstü alınıyor
    • Son dönemde popüler olduğu söylenen çift Epyc iş istasyonu tarifinin bağlantısı varsa görmek isterim
  • Örnek çıktıda token/saniye değerlerinin gizlenmiş olmasına bakılırsa, belli ki gayet iyi çalışıyor olmalı.

  • Nvidia dışında da LLM ve Stable Diffusion çıkarımı çalıştırmak için birkaç seçenek görünüyor. Intel Arc, Apple M serisi, şimdi de AMD Ryzen AI Max var.
    Nvidia üzerinde çalıştırmanın en optimize seçenek olduğu açık, ama makul fiyatlı, yüksek VRAM’li Nvidia kart bulmak zor olduğu için Nvidia dışı donanımları da düşünmeye devam ediyorum.
    Eğitim veya ince ayarla ilgilenmeyip yalnızca çıkarım yapacaksanız, bu tür çözümler gerçekten kullanılabilir mi? Linux makinelerde mümkün olup olmadığını da merak ediyorum.

    • Ciddi yapılacaksa Nvidia’ya gitmek doğru tercih.
      Bu yazı aslında Intel’in “biz de GPU yaptık” diye hatırlatmasına daha yakın; bütçe sınıfı kartın kendisi iyi ama ekosistem çok geride.
      Açıkçası bu, bütçeden kısarak düzgün yapılması zor bir alan.
  • Yapay zeka için APU’lar çıkarsa GPU’lara olan ilgi hızla soğuyacak gibi.
    AMD Halo Strix veya Apple M3 Studio APU ile 512 GB ya da 128 GB RAM kullanmak mümkünken, neden pahalı bir Nvidia 4090 alınsın ki?
    Nvidia, mümkün olduğunca uzun süre fiyatları yüksek, performansı düşük tuttu; rekabet de ancak şimdi geliyor. Intel de bol RAM’li bir APU yapabilir.
    Umarım Nvidia biraz tedirgindir.