- Untuk melengkapi lingkungan LLM lokal yang tidak cukup hanya dengan RTX 4080 16GB, ditambahkan Tesla V100 SXM2 16GB bekas beserta adaptor seharga sekitar £200 sehingga total menjadi 32GB VRAM
- V100 SXM2 adalah GPU server tanpa slot PCIe, output display, atau konektor daya standar, tetapi bisa dipasang ke PC gaming dengan adaptor SXM2-to-PCIe
- Kipas server bawaan memiliki kebisingan 82dB sehingga sulit dipakai di dalam ruangan, namun dengan kabel jumper PH2.0-2.54mm yang dihubungkan ke header kipas motherboard, kontrol PWM dan operasi senyap bisa dicapai
- Dengan tensor splitting di llama.cpp, Qwen3.6-27B-MTP Q5_K_M dibagi antara RTX 4080 dan V100, menghasilkan konteks 128k dan kecepatan inferensi sekitar 32 tok/s
- Memang tidak serapi GPU tunggal 32GB dan masih ada masalah driver, CUDA, serta warm reboot, tetapi GPU server bekas bisa menjadi alternatif murah untuk memperluas VRAM LLM lokal
Lingkungan LLM lokal 32GB seharga £200
- RTX 4080 16GB VRAM saja tidak cukup untuk menjalankan model lokal yang diinginkan, jadi GPU pusat data bekas ditambahkan ke PC gaming dengan adaptor
- Tesla V100 SXM2 16GB dan adaptor SXM2-to-PCIe dibeli dengan total sekitar £200, membentuk lingkungan 32GB VRAM gabungan dari dua GPU
- Model 27B parameter dibagi ke dua GPU dan dijalankan pada sekitar 32 tokens/s, dengan seluruh model dan konteks muat di VRAM
- Meski pengalamannya tidak sama seperti GPU konsumen tunggal 32GB, kapasitas VRAM ini didapat dengan biaya jauh lebih rendah daripada RTX 5090 32GB
Tesla V100 SXM2 dan adaptor
- Tesla V100 SXM2 16GB adalah GPU untuk server NVIDIA DGX dan rak hyperscaler
- Tidak memiliki slot PCIe biasa, output display, atau konektor daya standar
- Dipasang pada board khusus di dalam server dan berkomunikasi lewat NVLink
- Untuk dipasang langsung ke motherboard, diperlukan adaptor terpisah
- V100 adalah GPU Volta dengan memori 16GB HBM2 dan 5120 CUDA core
- Harga beli di eBay sekitar £150
- Meski GPU dari 2017, performa komputasi dan VRAM-nya masih relevan untuk LLM lokal
- Bandwidth memori HBM2 adalah keunggulan utamanya
- V100 menyediakan bandwidth 900GB/s dengan bus memori 4096-bit
- Ini 22% lebih tinggi daripada bandwidth GDDR6X RTX 4080 yang 736GB/s
- Juga lebih tinggi daripada Apple M3 Max 400GB/s, M4 Max 546GB/s, dan M5 Max 614GB/s
- AMD RX 7900 XTX memiliki 24GB GDDR6 dan bandwidth 960GB/s, sedikit lebih tinggi dari V100, tetapi harganya lebih dari £700
- Dukungan inferensi LLM ROCm dinilai masih belum sematang CUDA
- V100 menawarkan 94% bandwidth RX 7900 XTX dengan harga kurang dari seperempatnya dan bekerja dengan llama.cpp
- RTX 5090 dengan bandwidth 1,792GB/s jelas melampaui V100, tetapi harganya di atas £2,000
- Dalam inferensi LLM, bandwidth memori penting karena menjadi bottleneck yang menentukan tokens/s
- Adaptor SXM2-to-PCIe bukan produk resmi NVIDIA dan tidak didukung secara resmi
- Bentuknya bare PCB dengan soket SXM2 di satu sisi dan konektor tepi PCIe di sisi lain
- Harganya sekitar £50, sehingga total biaya rakitan menjadi sekitar £200
- Berkat adaptor ini, V100 16GB bisa dipasang ke motherboard bersama RTX 4080
Masalah kipas pendingin server dan solusinya
- V100 SXM2 dirancang untuk berjalan di lingkungan pendinginan industri server 2U
- Kipas pada adaptor terlalu bising untuk dipakai di ruangan biasa
- Kebisingan yang diukur dengan Apple Watch adalah 82dB, digambarkan berada di antara penghancur sampah dan mesin pemotong rumput
- Dalam kondisi bawaan, kipas tidak bisa dikendalikan
- Percobaan dengan
nvidia-smi, penelusuran perangkat Linux, dan Windows Afterburner semuanya gagal
- Kipas adaptor tampaknya diasumsikan akan terus berputar 100% di dalam rak server
- Uji baterai 9V dipakai untuk memeriksa susunan pin kipas
- Saat kabel jumper dipasang ke VCC dan ground lalu disentuhkan ke baterai 9V, kipas berputar
- Dibanding operasi standar 12V, kipas jadi jauh lebih senyap, menandakan kontrol kipas memungkinkan
- Kipas ternyata bekerja mirip kipas casing PC standar
- Kabel jumper dipasang ke konektor kipas, lalu ujung lainnya ke header kipas cadangan di motherboard
- Motherboard bisa membaca RPM dan juga mengontrol PWM
- Bahkan pada kecepatan 10%, suhu tidak melewati 50°C saat beban penuh dan suara hampir tak terdengar
- Kabel final terdiri dari 2.54mm male to PH2.0 female jumper cable
- Konektor kipas pada adaptor adalah plug 4-pin JST PH2.0
- Header kipas motherboard adalah pitch standar 0.1 inch atau 2.54mm
- Sisi PH2.0 female dihubungkan ke pin tachometer dan PWM kipas, sedangkan sisi 2.54mm male ke header kipas motherboard
- Dengan kabel jumper seharga sekitar £2 dan pengecekan konektor, masalah 82dB berhasil diatasi
Memperluas VRAM dengan dua GPU
- Konfigurasi GPU akhirnya sebagai berikut
- RTX 4080: 16GB VRAM, arsitektur Ada
- Tesla V100: 16GB VRAM, arsitektur Volta
- Total: 32GB VRAM di dua GPU
- llama.cpp dapat menjalankan model terbagi ke dua GPU dengan tensor splitting
- Layer diproses secara pipeline lewat bus PCIe
- RTX 4080 menangani sebagian layer dan V100 menangani sisanya
- Tidak secepat GPU tunggal 32GB, tetapi berfungsi, dan dibangun dengan biaya sekitar 10% dari GPU 32GB
- Konsumsi daya V100 diamati mencapai sekitar 150W maksimum
- Untuk GPU inferensi LLM lokal, ini bukan kecil, tetapi juga tidak luar biasa besar
- Model V100 32GB juga tetap menjadi opsi
- Harganya lebih dari dua kali lipat unit yang dibeli, tetapi masih bisa memberi 32GB HBM2 pada satu kartu dengan biaya beberapa ratus pound
- Dua V100 32GB dapat menghasilkan 64GB VRAM, yang digambarkan sekitar 20% dari harga RTX 5090 saat ini
- Format SXM2 mendukung NVLink secara bawaan
- Jika dibuat konfigurasi multi-GPU yang tepat, GPU dapat saling berkomunikasi dengan bandwidth tinggi
- Bahkan lewat adaptor PCIe, performa tensor split sudah cukup solid
Menyesuaikan driver dan CUDA di NixOS
- Konfigurasi perangkat lunak berjalan relatif mulus berkat NixOS
- V100 memakai chip Volta, dan NVIDIA menghentikan dukungan Volta mulai branch driver 560
- Driver terakhir yang mendukung RTX 4080 Ada dan V100 Volta sekaligus adalah branch 550.x
- Di NixOS, ini sesuai dengan
nvidiaPackages.legacy_535
- Driver tersebut hanya mendukung sampai CUDA 12.2
- nixpkgs saat ini menyediakan CUDA 12.6 ke atas
- CUDA 12.2 harus diambil dari nixpkgs 24.05
- Driver ini memerlukan Linux kernel 6.6
- Driver legacy tidak mendukung kernel yang lebih baru
- Meski ini server inferensi headless,
services.xserver.enable = true tetap diperlukan
- Tanpa pengaturan ini, modul kernel NVIDIA tidak dimuat
- Konfigurasi inti NixOS terdiri dari kernel, driver NVIDIA legacy, dan penetapan driver NVIDIA untuk X server
boot.kernelPackages = pkgs.linuxPackages_6_6;
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_535;
services.xserver.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
- CUDA 12.2 diambil dari nixpkgs lama melalui overlay
nixpkgs.overlays = [
(final: prev: {
cudaPackages_12_2 = nixpkgs-cuda.legacyPackages.${prev.system}.cudaPackages_12_2;
})
];
- Kedua GPU tampil dengan benar dan CUDA juga berfungsi normal
- Definisi lengkap mesin ini ada di commit ini pada repo dotfiles
- Termasuk definisi layanan llama.cpp dan build kustom yang dikunci ke versi yang tepat
Model yang dijalankan dan performanya
- Model yang dijalankan adalah versi kuantisasi Qwen3.6-27B-MTP Q5_K_M
- Ukuran model sekitar 19GB
- Dengan dua GPU, seluruh model masuk ke VRAM dan masih ada ruang untuk konteks
- Pengaturan utama saat menjalankan sebagai berikut
- Model: Qwen3.6-27B-MTP Q5_K_M, 19GB
- Context size: 128k tokens
- GPU layers: 99, semuanya dioffload
- Tensor split:
-ts 1.0,1.0, dibagi merata ke dua GPU
- Performanya sebagai berikut
- Inference speed: sekitar 32 tok/s
- Prompt processing: sekitar 133~160 tok/s
- 32 tokens/s dinilai cukup untuk penggunaan interaktif
- Ini dicapai bahkan dalam konfigurasi tensor split lewat PCIe antara dua GPU dengan arsitektur berbeda
- Jika memperhitungkan latensi jaringan, ini disebut lebih cepat daripada kebanyakan endpoint API cloud
MTP dan input gambar
- MTP berarti Multi-Token Prediction
- Inferensi LLM biasa memprediksi satu token pada satu waktu, lalu setelah token itu diterima, baru memprediksi token berikutnya
- MTP memprediksi beberapa token masa depan sekaligus lalu memverifikasi token yang benar
- Token yang diterima pada dasarnya hampir gratis, sedangkan prediksi yang salah kembali ke jalur biasa
- Hasil MTP adalah kecepatan generasi sekitar 1.5~2 kali lebih cepat tanpa kehilangan akurasi
- Pada konfigurasi ini, dari sekitar 32 tok/s bisa naik ke 50~60 tok/s ketika MTP cocok dengan baik
- Efeknya besar terutama pada output yang dapat diprediksi seperti kode
- Dukungan MTP di llama.cpp masih merupakan fitur baru
- Versi llama.cpp di nixpkgs belum mendukung arsitektur Qwen3.6 MTP
- llama.cpp harus dibangun dari source pada commit tertentu yang sudah menambahkan dukungan tersebut
- Di NixOS, ini dibuat reproducible dengan custom derivation yang dipatok ke commit itu
- Mengganti model atau versi llama.cpp dilakukan dengan mengubah satu baris konfigurasi lalu menjalankan
nixos-rebuild switch
- Qwen3.6-27B mendukung input gambar melalui file projector multimodal terpisah, yaitu mmproj
- Ukuran file tambahannya sekitar 928MB
- Vision encoder mengubah piksel gambar menjadi ruang embedding token milik LLM
- Model tidak “melihat” gambar seperti manusia
- LLM memproses vektor hasil konversi itu seperti urutan token lainnya
- Flag eksekusi llama.cpp adalah sebagai berikut
--mmproj /mnt/nas/llamacpp/mmproj-F16.gguf --mmproj-offload
--mmproj-offload menaruh vision encoder ke GPU bersama model
- Dengan begitu, inferensi tetap cepat bahkan saat memakai input gambar
Cara penggunaan lokal
- Konfigurasi ini digunakan bersama OpenCode
- OpenCode adalah AI coding assistant yang bisa dijalankan terhadap model lokal
- Server LLM berjalan di desktop, tetapi digunakan dari perangkat lain
- Akses dilakukan lewat jaringan dari mesin lain di rumah
- Dari luar rumah, akses dilakukan melalui Tailscale
- Penggunaan server llama.cpp dari OpenCode dilakukan dengan mengatur URL API
- Model berjalan secara lokal
- Respons cepat dan data tidak keluar dari jaringan
Masalah dan batasan yang tersisa
- Masalah V100 menghilang setelah warm reboot kadang terjadi
- Setelah reboot yang hanya me-restart OS sementara motherboard tetap mendapat daya, V100 kadang tidak terlihat di
lspci dan nvidia-smi
- Ini tampaknya masalah enumerasi ACPI pada slot PCIe
- Jika daya dimatikan sepenuhnya lalu dinyalakan lagi setelah beberapa detik dengan cold reboot, GPU selalu pulih
- Tanpa V100, llama.cpp tidak bisa mulai
- Karena model tidak muat di satu GPU 16GB
- Layanan terus crash loop sampai GPU muncul kembali
- Karena biasanya sedang berada dekat mesin saat reboot, ini tidak dianggap masalah besar dalam penggunaan nyata
- Konfigurasi tensor split dengan dua GPU arsitektur berbeda memang tidak serapi GPU tunggal
- V100 juga bukan GPU inferensi tercepat
- Namun, nilainya terhadap harga dinilai sangat tinggi
Opsi dan kesimpulan
- Hasil yang didapat dengan sekitar £200 adalah sebagai berikut
- GPU pusat data 16GB yang berjalan bersama GPU gaming
- Total 32GB VRAM untuk inferensi LLM lokal
- 32 tokens/s pada model 27B parameter
- Jendela konteks 128k token
- Dukungan vision untuk input gambar
- Model yang berjalan sepenuhnya lokal tanpa cloud dan tanpa biaya per token
- Biaya praktis terbesarnya adalah kebisingan kipas, dan itu diselesaikan dengan kabel jumper serta pengecekan konektor
- Jika ingin menjalankan model lokal yang benar-benar mumpuni, pasar GPU server bekas bisa menjadi alternatif
- Bahkan tanpa GPU yang sudah ada, satu V100 saja bisa dipasang ke boks server murah untuk membuat lingkungan LLM lokal 16GB yang layak
- V100 SXM2 bukan satu-satunya pilihan
- P40 menawarkan 24GB dengan biaya serupa, tetapi lebih lambat dan tidak memiliki Tensor Cores
- Model V100 32GB lebih mahal, tetapi masih lebih murah daripada GPU konsumen dengan kapasitas VRAM setara
- Namun, masalah kipas perlu diantisipasi
1 komentar
Pendapat di Lobste.rs
Pendekatannya benar-benar keren, dan fenomena GPU menghilang dari PCIe itu punya terlalu banyak kemungkinan penyebab, jadi makin bikin penasaran
Suara kipas GPU yang meraung kencang mengingatkan pada masa ketika saya ada di tim NVIDIA CUDA. Seorang rekan sedang menambahkan fitur kontrol kipas ke NVML dan nvidia-smi, lalu dari balik sekat terdengar suara kipas yang makin cepat lalu melambat, dan dia menjulurkan kepala sambil tersenyum lebar
Katanya itu jadi salah satu fitur favorit yang pernah dia kerjakan, karena hasilnya bisa langsung didengar dengan telinga saat kodenya mulai berfungsi
Kalau tertarik dengan LLM self-hosted, Dell OEM RTX 3090 biasanya lebih murah daripada produk merek besar, dan dulu bisa didapat sekitar 800 dolar Kanada
Sekarang saya harus baca lebih lanjut tentang cara kerja vLLM. Modelnya kadang mulai memuntahkan daftar panjang nama dan kata sifat yang terkait, jadi sepertinya ada sesuatu yang salah dalam konfigurasinya
Setahu saya, sebagian besar model yang benar-benar layak pakai butuh setidaknya 48~64GB VRAM untuk berjalan dengan baik, jadi saya kira itu sebabnya chip Apple seri M dengan arsitektur memori terpadu populer di bidang ini
Produk seperti itu memang sudah ada dalam bentuk yang sudah dikemas, tapi biasanya cuma mentok di garansi pabrikan 3 bulan
https://ebay.com/itm/297819576914/…
Di AS, model 32GB bekas diperdagangkan di kisaran 600 dolar
Adaptornya mungkin akan saya beli langsung dari negara asalnya, Tiongkok
Penasaran apakah ada produk padanan dari AMD. Saat ini saya memakai dua W7900 48GB, dan ingin menambah skala supaya bisa menjalankan model yang lebih besar
Pendinginannya tetap perlu ditambahkan, tapi setidaknya tidak perlu repot mengutak-atik adaptor
Saya selalu membaca setiap kali menemukan konfigurasi model lokal, dan saat ini untuk kebutuhan VRAM menengah di kisaran 48~128GB, sepertinya memang belum ada titik optimal yang benar-benar bagus dari sisi harga-performa. Pilihannya kira-kira ada tiga: beberapa GPU data center generasi lama dari sekitar tiga generasi lalu (Tesla V100, Instinct MI60), beberapa produk kelas paling bawah generasi sekarang yang punya VRAM besar (Arc Pro B70), atau box all-in-one generasi sekarang (DGX Spark, Mac Mini, Strix Halo)
Untuk orang yang naik kelas dari satu GPU konsumen 32GB atau dua GPU 16GB, masing-masing opsi itu punya kompromi sekaligus kelebihan. Kalau kondisinya sudah memakai dua kartu 48GB, saya kurang yakin masih ada upgrade hardware bekas yang akan terasa seperti peningkatan nyata