Postingan
avatar

#Claude #Codex # Mencoba Menjalankan LLM Lokal di GPU Ryzen Zen3 (Perbandingan dan Analisis Kinerja Qwen3-8B Heretic CPU dan GPU) Semangat, AMD, semangat Vulkan Saya mengira GPU untuk game tidak terlalu hebat, dan ternyata memang benar begitu Menurut analisis, bandwidth memori menjadi kendala (VRAM kecil, sehingga menggunakan memori utama; menantikan Mac M5 Studio) AMD terbaru adalah Zen6, jadi CPU ini adalah generasi ketiga sebelumnya (dengan GPU terintegrasi) ---- # Perbandingan dan Analisis Kinerja Qwen3-8B Heretic CPU dan GPU Tanggal pengukuran: 2026-11-02 / Target: Mesin Ubuntu ## Kesimpulan - **GPU (GPU terintegrasi Radeon) lebih cepat dalam memuat prompt, sekitar 2,5 kali lebih cepat daripada CPU.** - **Generasi teks hanya 1,1–1,2 kali lebih cepat daripada CPU.** Kecepatan generasi terbatas oleh kecepatan transfer memori, karena GPU terintegrasi berbagi memori yang sama dengan CPU. - Dalam penggunaan seperti OpenClaw yang mengirim instruksi panjang setiap kali, **cache prompt** memiliki dampak lebih besar daripada GPU; prompt kedua dan seterusnya berkurang dari sekitar 7 menit menjadi sekitar 1 menit. ## Lingkungan Pengukuran | Item | Konten | |---|---| | CPU | AMD Ryzen 7 7730U (8 inti, 16 thread, Zen 3) | | GPU | GPU terintegrasi AMD Radeon Graphics (Barcelo, setara Vega 8) | | Memori | 30 GB (spesifikasi: DDR4-3200 dual-channel; belum dikonfirmasi di perangkat aktual) | | Memori GPU | VRAM khusus 512 MB + memori bersama (GTT) sekitar 15,4 GB. LM Studio hanya dapat menggunakan 10,59 GiB | | OS / Driver | Ubuntu 24.04.5 LTS, Mesa 25.2.8 (RADV) | | LM Studio | Versi headless (llmster), llama.cpp 2.66.0 | | Runtime CPU | `llama.cpp-linux-x86_64-avx2` | | Runtime GPU | `llama.cpp-linux-x86_64-vulkan-avx2` (semua lapisan ditempatkan di GPU, `--gpu max`) | | Model | DreamFast/qwen3-8b-heretic Q4_K_M (5,03 GB) | | Pengaturan pemuatan | Panjang konteks 32768, jumlah pemrosesan simultan 1 | ## Metode Pengukuran - Mengirim prompt yang sama ke API LM Studio (`/api/v0/chat/completions`) dan membandingkan antara CPU dan GPU. - Setiap kondisi dijalankan dua kali. Untuk pengukuran kedua, prompt yang sudah diproses digunakan kembali dari cache, sehingga **kecepatan pemuatan menggunakan nilai pengukuran pertama**. - Kecepatan generasi diambil dari `tokens_per_second` yang dikembalikan oleh LM Studio. - Proses pemikiran sebelum jawaban dimatikan dengan `/no_think`, dan `temperature` diatur ke 0. - Setelah pengukuran GPU, dilakukan pendinginan selama 2 menit sebelum mengukur CPU. - Skrip dan rekaman tersedia di `~/bench/bench.py`, `~/bench/run.sh`, dan `~/bench/result.log` pada mesin Ubuntu. ## Hasil ### Ringkasan Perbandingan | Konten | Item | CPU | GPU | Perbedaan | |---|---|---|---|---| | Pertanyaan singkat (24 token) menghasilkan 256 token | Kecepatan generasi | 7,3 token/detik | 8,2 token/detik | 1,13 kali | | | Waktu total | 35,7 detik | 31,4 detik | | | Prompt 921 token | Kecepatan pemuatan | 30,5 token/detik | 76,3 token/detik | **2,5 kali** | | | Hingga karakter pertama | 30,2 detik | 12,1 detik | | | | Kecepatan generasi | 7,0 token/detik | 8,0 token/detik | 1,13 kali | | Prompt 3.621 token | Kecepatan pemuatan | 35,4 token/detik | 87,5 token/detik | **2,5 kali** | | | Hingga karakter pertama | 102,3 detik | 41,4 detik | | | | Kecepatan generasi | 5,9 token/detik | 7,2 token/detik | 1,2 kali | ### Detail Nilai Pengukuran | Metode | Konten | Uji coba | Prompt | Generasi | Waktu Total | Hingga Karakter Pertama | Kecepatan Generasi | |---|---|---|---|---|---|---|---| | GPU | Pertanyaan singkat | 1 | 24 | 256 | 31,4 detik | 0,50 detik | 8,26 | | GPU | Pertanyaan singkat | 2 | 24 | 256 | 31,2 detik | 0,12 detik | 8,23 | | GPU | Prompt sekitar 1.000 | 1 | 921 | 32 | 16,0 detik | 12,07 detik | 7,97 | | GPU | Prompt sekitar 1.000 (cache) | 2 | 921 | 32 | 4,0 detik | 0,14 detik | 7,98 | | GPU | Prompt sekitar 4.000 | 1 | 3.621 | 32 | 45,7 detik | 41,38 detik | 7,18 || GPU | Prompt sekitar 4.000 | 2 (cache) | 3.621 | 32 | 4,5 detik | 0,14 detik | 7,22 | | CPU | Pertanyaan singkat | 1 | 24 | 256 | 35,7 detik | 0,73 detik | 7,29 | | CPU | Pertanyaan singkat | 2 | 24 | 241 | 32,8 detik | 0,14 detik | 7,36 | | CPU | Prompt sekitar 1.000 | 1 | 921 | 32 | 34,7 detik | 30,21 detik | 7,03 | | CPU | Prompt sekitar 1.000 | 2 (cache) | 921 | 32 | 4,6 detik | 0,15 detik | 6,96 | | CPU | Prompt sekitar 4.000 | 1 | 3.621 | 32 | 107,5 detik | 102,30 detik | 5,94 | | CPU | Prompt sekitar 4.000 | 2 (cache) | 3.621 | 32 | 5,4 detik | 0,17 detik | 5,96 | Satuan prompt dan generasi adalah token, satuan kecepatan generasi adalah token/detik. ### Koreksi Pada pengukuran awal sederhana, kami menyatakan bahwa kecepatan generasi pada GPU meningkat sekitar 2,2 kali lipat, namun itu salah. Nilai 3,86 token/detik pada CPU yang dibandingkan adalah hasil dari pemrosesan prompt sekitar 14.000 token pada bot2. Karena generasi menjadi lebih lambat dengan prompt yang lebih panjang, membandingkannya dengan nilai pertanyaan singkat adalah kesalahan. Jika dibandingkan dalam kondisi yang sama, perbedaan generasi hanya sekitar 1,1–1,2 kali lipat. ## Alasan Mengapa GPU Tidak Membuat Perbedaan Sebesar yang Diharapkan ### 1. Generasi Terbatas oleh Kecepatan Transfer Memori Setiap kali LLM menghasilkan satu token, ia harus membaca seluruh bobot model dari memori. Batas atas kecepatan generasi ditentukan kira-kira oleh: "Kecepatan transfer memori ÷ ukuran model". | Item | Nilai | |---|---| | Kecepatan transfer memori (teoretis) | Sekitar 51 GB/detik dengan DDR4-3200 dual-channel | | Jumlah yang dibaca per token | Sekitar 5 GB (seluruh model) | | Batas atas teoretis kecepatan generasi | 51 ÷ 5,03 ≒ **sekitar 10 token/detik** | | Hasil pengukuran (GPU) | 8,2 token/detik (sekitar 80% dari batas atas) | | Hasil pengukuran (CPU) | 7,3 token/detik (sekitar 70% dari batas atas) | GPU internal berbagi memori utama yang sama dengan CPU, sehingga batas atasnya hampir identik dengan CPU. Bahkan dengan GPU, hanya tersisa ruang peningkatan sekitar 10–20% untuk mendekati batas atas. GPU eksternal memiliki memori khusus yang cepat, sehingga batas atasnya jauh lebih tinggi. | GPU | Kecepatan transfer memori | Perbandingan dengan mesin Ubuntu ini | |---|---|---| | GPU internal mesin Ubuntu ini | Sekitar 51 GB/detik (berbagi dengan CPU) | 1x | | RTX 4060 | Sekitar 272 GB/detik | Sekitar 5x | | RTX 4090 | Sekitar 1.008 GB/detik | Sekitar 20x | ### 2. Pembacaan Ditentukan oleh Beban Komputasi, tetapi Daya Komputasi GPU Internal Kecil Pada pembacaan prompt, banyak token diproses secara bersamaan, sehingga kecepatannya ditentukan oleh daya komputasi lebih daripada memori. Efek GPU terlihat di sini, dan secara empiris terjadi peningkatan hingga 2,5 kali lipat. Namun, GPU ini memiliki batasan berikut yang membuat peningkatan terhenti di angka 2,5 kali lipat: | Batasan | Detail | |---|---| | Jumlah unit komputasi sedikit | Hanya 8 unit. Diperkirakan sekitar 2 TFLOPS single-precision, kurang dari sepuluh persen dari GPU gaming | | Tidak ada sirkuit khusus untuk operasi matriks | Tidak ada sirkuit khusus seperti Tensor Core NVIDIA untuk AI | | ROCm tidak didukung | Platform komputasi AMD untuk GPU tidak secara resmi mendukung GPU internal ini. Berjalan menggunakan Vulkan generik | Untuk model 8B, diperlukan sekitar 16 GFLOP per token. Dengan daya sekitar 2 TFLOPS, batas atas teoretisnya adalah sekitar 120 token/detik. Hasil pengukuran aktual sebesar 76–88 token/detik berada di kisaran 6–7% dari batas tersebut. ### 3. Prompt yang Lebih Panjang Menyebabkan Penurunan Kecepatan Semakin panjang konteksnya, semakin banyak token masa lalu yang dirujuk setiap token, sehingga baik pembacaan maupun generasi menjadi lebih lambat. | Kondisi | Kecepatan pembacaan | Kecepatan generasi | |---|---|---| | GPU, prompt sekitar 1.000 token | 76 token/detik | 8,0 token/detik | | GPU, prompt sekitar 3.600 token | 88 token/detik | 7,2 token/detik | | GPU, OpenClaw (15.686 token), awalnya 2.048 token | 78,7 token/detik | — | | GPU, OpenClaw (15.686 token), rata-rata keseluruhan | 44,1 token/detik | 5,1 token/detik | | CPU, OpenClaw (14.021 token) | Sekitar 19,5 token/detik | 3,86 token/detik |Hingga 3.600 token, kecepatan pemuatan justru meningkat karena kemampuan pemrosesan batch yang lebih besar. Di atas 15.000 token, kecepatan turun hingga 46 token/detik di akhir proses. ## Verifikasi Cache di OpenClaw (bot2 mei) Dua pesan berturut-turut dikirim melalui sesi verifikasi menggunakan Qwen3 yang berjalan di GPU. | Item | Pesan Pertama | Pesan Kedua | |---|---|---| | Prompt yang dikirim OpenClaw | 15.686 token | 15.744 token | | Token yang benar-benar dimuat | 15.686 (semua) | **135 (hanya yang baru ditambahkan)** | | Waktu pemuatan | 356,1 detik | **6,1 detik** | | Generasi | 247 token, 48,1 detik (5,11 token/detik) | 249 token, 48,5 detik (5,11 token/detik) | | Total | **410 detik** | **58 detik** | - OpenClaw selalu mengirimkan awal instruksi dengan konten yang sama, sehingga pada pesan kedua, bagian yang sudah diproses (98%) digunakan kembali secara langsung. - Sebagian besar waktu tunggu pada pesan kedua adalah karena pemikiran sekitar 240 token. Bahkan dengan `--thinking off`, pemikiran tidak berhenti. Jika pemikiran dapat dinonaktifkan, perkiraan waktu tunggu menjadi sekitar 10 detik. - Cache tidak hilang berdasarkan waktu. Cache akan hilang ketika model dilepas, ada proses lain yang menyela (karena hanya satu proses simultan yang diizinkan), atau percakapan dikompresi. ## Opsi untuk Mempercepat Karena kecepatan transfer memori tidak dapat diubah, cara paling efektif adalah mengurangi jumlah data yang dimuat per token. | Metode | Efek yang Diperkirakan | Catatan | |---|---|---| | Memanfaatkan cache prompt | Pemuatan untuk pesan kedua dan seterusnya menjadi beberapa detik (sudah diverifikasi) | Dapat hilang akibat penyelaan atau kompresi | | Menonaktifkan pemikiran Qwen3 | Mengurangi waktu sekitar 48 detik per pesan | Kualitas jawaban mungkin sedikit menurun | | Mengganti ke Qwen3-30B-A3B berbasis MoE | Bobot yang digunakan per token sekitar 3B. Generasi diperkirakan 2–3 kali lebih cepat, sekaligus meningkatkan kecerdasan | Ukuran sekitar 18GB, tidak muat di GPU 10,6GiB sehingga sebagian diproses di CPU. Versi tanpa sensor belum dikonfirmasi | | Menggunakan model lebih kecil (Qwen3-4B) | Generasi sekitar 2 kali lebih cepat | Kecerdasan menurun | | Menggunakan speculative decoding | Menggunakan Qwen3-0.6B sebagai draft. Generasi diperkirakan 1,3–2 kali lebih cepat | Efek bervariasi tergantung konten | | Mengurangi kuantisasi lebih lanjut (Q3 dst.) | Peningkatan 10–20% | Akurasi menurun | | Memperpendek instruksi | Pemuatan pada pesan pertama dan setelah cache hilang menjadi lebih cepat | Fungsi akan dikurangi | Efek dalam tabel ini selain cache prompt adalah perkiraan dan belum diukur secara langsung. ## Status Saat Ini (per 2026-11-03) | Item | Status | |---|---| | LM Studio | Dihentikan. Otomatis start dinonaktifkan | | Runtime yang dipilih | Vulkan (GPU) | | bot2 (mei) | gpt-5.4-mini | | Port transfer untuk bot2 | Dihentikan. Otomatis start dinonaktifkan | | Konfigurasi bot2 untuk Qwen3 | `~/.openclaw-bot2/openclaw.json.bak-qwen3-active-*` |

Konten ini hanya untuk tujuan informasi dan edukasi. Konten dapat mencakup wawasan pihak ketiga, konten bersponsor, atau materi promosi yang mana kreatornya mungkin menerima kompensasi. Tidak ada dari umpan ini yang merupakan saran investasi atau jaminan imbal hasil. Anda sepenuhnya bertanggung jawab terhadap keputusan investasi Anda sendiri. Selalu lakukan riset mandiri dan berhati-hati sebelum trading. Kami tidak menjamin keakuratan informasi pihak ketiga dan tidak bertanggung jawab terhadap segala kerugian yang ditimbulkan. Kinerja di masa lalu bukan menunjukkan hasil di masa depan. Silakan lihat Ketentuan Komunitas dan Pernyataan Pengungkapan Risiko untuk detail selengkapnya.

avatarPosting balasan Anda

Komentar