Perkalian Matriks-Vektor yang Diimplementasikan pada DRAM Komersial untuk LLM Bit Rendah
(arxiv.org)- MVDRAM adalah sistem yang mempercepat operasi GeMV untuk inferensi LLM bit rendah dengan menggunakan DRAM yang tidak dimodifikasi
- Sistem ini memanfaatkan DRAM sebagai mesin GeMV untuk memberikan throughput tinggi
- Sistem ini menghilangkan biaya pra-penyusunan input dan pergantian bit output pada pendekatan PUD yang ada
- Hasil eksperimen menunjukkan kinerja yang lebih unggul dibanding implementasi berbasis prosesor pada LLM bit rendah
- Sistem ini menunjukkan kemungkinan baru bagi perangkat keras AI
MVDRAM: Akselerasi LLM Bit Rendah dengan Memanfaatkan DRAM yang Tidak Dimodifikasi
- Operasi GeMV tetap menjadi bottleneck latensi yang penting dalam inferensi large language model (LLM)
- Processing-Using-DRAM (PUD) memiliki potensi untuk memanfaatkan kembali DRAM sebagai mesin GeMV
- Namun, penerapan PUD pada pipeline inferensi LLM menimbulkan overhead yang signifikan
Pendekatan Inovatif MVDRAM
- MVDRAM mengoordinasikan prosesor dan DRAM dengan memanfaatkan pola berbagi data dan linearitas matematis
- Sistem ini mempercepat operasi GeMV dengan menghilangkan biaya dari pendekatan PUD yang ada
Hasil Eksperimen
- Dalam eksperimen menggunakan empat modul DRAM DDR4, MVDRAM menunjukkan kinerja yang lebih unggul dibanding implementasi berbasis prosesor pada LLM bit rendah (4-bit atau kurang)
- Sistem ini mencapai percepatan hingga 7,29x dan efisiensi energi hingga 30,5x
Peningkatan Menyeluruh pada Inferensi LLM
- Pada model bit rendah terkuantisasi 2-bit dan 4-bit, throughput meningkat masing-masing sebesar 2,18x dan 1,31x
- Efisiensi energi juga meningkat masing-masing sebesar 3,04x dan 2,35x
Kemungkinan Baru untuk Perangkat Keras AI
- MVDRAM membuktikan kemungkinan memanfaatkan DRAM standar sebagai akselerator LLM
- Sistem ini memiliki potensi untuk membuka cakrawala baru bagi perangkat keras AI
1 komentar
Pendapat di Hacker News
Sebagai bahan latar, ada salah satu proposal awal in-DRAM compute https://users.ece.cmu.edu/~omutlu/pub/in-DRAM-bulk-AND-OR-ie..., demonstrasi pertama dengan komponen siap pakai https://parallel.princeton.edu/papers/micro19-gao.pdf, alat implementasinya DRAM Bender https://github.com/CMU-SAFARI/DRAM-Bender, serta makalah survei terbaru tentang processing-in-DRAM https://arxiv.org/abs/2412.19275
Bentuknya memang tidak sepintar atau semaju ide saat ini, tetapi pada akhirnya makalah-makalah ini lebih mirip versi modern dari gagasan lama
Yang mencolok, daftar penulis pada referensi nomor 1 dan 3 panjangnya tidak masuk akal
Saya kira tulisan tahun 2016 https://news.ycombinator.com/item?id=12469270 juga akan masuk, dan tulisan tahun 2019 https://news.ycombinator.com/item?id=22712811 memang terlihat
Tentu saja perilaku di luar spesifikasi DRAM seperti ini, terutama kemampuan menyalin, juga terkait dengan bug terkenal https://news.ycombinator.com/item?id=5314959
Sepertinya beberapa orang secara independen melihat fenomena ini dan berpikir, “mungkin ini perilaku yang berguna”
Kalau daftar penulis sebesar ini, biasanya hanya nama pertama yang ditulis dan sisanya dijadikan “et al.”
“Mengeluarkan perintah DRAM yang dengan sengaja melanggar parameter timing yang ditetapkan pabrikan untuk memperoleh hingga 65.536 operasi bit secara paralel” terdengar seperti pukulan telak untuk binary blob pelatihan DRAM
Ini benar-benar aneh sampai bikin kepala berputar, sekaligus kreatif dengan cara yang keren
Ada kalanya menggali sampai detail paling bawah mendapat imbalan. Hebat
Mostek MK4096 tahun 1973 pun mungkin bisa melakukannya, jadi butuh kira-kira setengah abad sampai seseorang mengetahuinya
Jadi maksudnya melakukan operasi matriks langsung di DRAM itu sendiri? Gila, tapi menarik
Processing using DRAM (PUD) memanfaatkan karakteristik perilaku analog bawaan DRAM untuk memungkinkan komputasi bit-serial yang sangat paralel di dalam array memori
Penelitian sebelumnya menunjukkan bahwa DRAM komersial siap pakai juga dapat mencapai fungsi PUD tanpa modifikasi hardware jika parameter timing dilanggar secara sengaja
Operasi intinya ada dua: RowCopy dan majority-of-X(MAJX). RowCopy memindahkan data ke baris lain dalam subarray yang sama dengan mengeluarkan perintah ACT segera setelah PRE sebelum precharge bitline selesai, dan karena memengaruhi semua sel dalam satu baris secara bersamaan, ini sekitar 100 kali lebih cepat daripada pemindahan data yang dimediasi prosesor
MAJX melakukan voting mayoritas dengan mengaktifkan X sel yang berbagi bitline yang sama secara bersamaan, dan pada DRAM komersial diimplementasikan dengan menerbitkan ACT, PRE, ACT secara cepat berurutan tanpa jeda. Dengan ini, 2 hingga 32 baris dapat diaktifkan secara bersamaan, dan menjadi unit komputasi dasar PUD yang memanfaatkan paralelisme subarray dengan 65.536 kolom
Apakah di dunia hardware juga ada risiko memanfaatkan bug yang suatu hari bisa diperbaiki pabrikan?
Di software, bergantung pada bug platform untuk membuat suatu fitur atau memperbaiki bug lain adalah ide buruk
Lima belas tahun kemudian bug itu bisa diperbaiki, lalu sistem meledak dan tak seorang pun tahu alasannya
Rasanya baru-baru ini ada diskusi serupa juga, mungkin terkait perilaku tak terdefinisi pada suatu fungsi C
Ada kasus ketika kartu jaringan tertentu memiliki bug, atau kombinasi fiturnya berperilaku menarik, sehingga menguntungkan perusahaan trading
Bug atau fitur seperti ini kadang menghilang karena bug-nya dihapus, atau karena dianggap tidak diperlukan di pasar yang lebih besar. Karena itu perusahaan kadang mencoba membeli habis sisa stok model tertentu
Dalam kasus terburuk, perangkat harus dibuat tetap bekerja bahkan dengan hardware dari vendor terkenal yang sudah lenyap 15 tahun lalu. Pelanggan besar sudah memakai peralatan itu selama 15 tahun tanpa masalah, dan kalau saat perangkat baru dipasang lalu tidak berjalan, mereka akan menganggap hardware Anda yang bermasalah
Ini sangat penting pada peralatan telekomunikasi, sehingga ada berbagai macam penanganan khusus untuk vendor yang tidak mengikuti spesifikasi. Dan penanganan khusus seperti itu harus terus dipertahankan di firmware agar tidak merusak sistem orang lain
Bayangkan peralatan lama, peralatan dari perusahaan yang sudah hilang, serta peralatan pesaing saat ini memenuhi seluruh dinding sementara lengan robot menancapkan kabel; dari situ Anda bisa membayangkan seperti apa sebagian lab validasi hardware
Firmware produsen motherboard juga penuh dengan penanganan khusus untuk CPU, chipset, dan sebagainya yang spesifik
Dampaknya ketika digabungkan dengan compiler pengoptimasi tampaknya mulai dikenal oleh khalayak yang lebih luas sekitar 2010, mungkin sekitar 2013, dan kini sudah lebih dari 12 tahun
Makalah ini bukan benar-benar soal mengandalkan bug, melainkan lebih ke menunjukkan apa yang mungkin dilakukan dengan DRAM dan berharap fungsi itu distandardisasi
Perkalian matriks-vektor umum (GeMV), ya; saya bukan tipe yang jago matematika
Di kelas matematika 3D, saat belajar quaternion, kami sempat membahas sejarah perhitungan matriks dalam pengembangan grafis. Saya gagal kelas itu pada percobaan pertama, jadi saya benar-benar bukan orang matematika
Sejauh yang saya pahami, quaternion tampaknya menjadi populer karena hampir seakurat matriks, tetapi kompleksitas komputasinya jauh lebih rendah
Apakah pernah ada upaya membuat LLM dengan quaternion alih-alih matriks? Atau optimasi quaternion memang lebih berguna untuk grafis real-time?
Subset tertentu di antaranya bisa dipakai untuk menjelaskan rotasi dalam ruang 3D, dan quaternion—meski masih bisa diperdebatkan—dapat melakukan ini dengan lebih baik
Namun quaternion tidak bisa menjelaskan fungsi linear sembarang, jadi tampaknya tidak cocok untuk LLM
Jaringan saraf membutuhkan jauh lebih banyak dimensi
Ia bisa direpresentasikan sebagai matriks, dan mungkin ada penggunaan yang cukup baik seperti QDNN untuk matriks yang memakai quaternion sebagai elemen, bukan bilangan real
Dari pengalaman saya, pada struktur berskala besar seperti LLM, bentuk yang lebih sederhana cenderung lebih berhasil kecuali ada manfaat nyata dari tipe skalar yang lebih canggih, seperti dalam fisika atau grafis 3D
Selain itu, representasi rotasi semacam itu tidak terlalu baik diskalakan dengan quaternion ketika dimensinya ditambah
Bilangan kompleks adalah representasi kompleks untuk ruang 2D, quaternion adalah representasi kompleks untuk ruang 3D, dan untuk masuk ke 4D diperlukan octonion dengan 8 elemen
Tidak mengutip materi Intelligent RAM (IRAM) asli dari 1997 terlihat agak kurang ilmiah
https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=iram...
Namun IRAM tampaknya lebih dekat ke komputasi dekat memori, yaitu menambahkan ALU ke chip memori, sedangkan komputasi di dalam memori menggunakan array memori itu sendiri
Agar adil, sebelum deep learning dengan panjang vektor yang sangat besar muncul, daya tarik komputasi di dalam memori jauh lebih kecil. Jadi tampaknya orang-orang mencoba membuat cara yang memungkinkan kontrol operasi lebih halus
Bisakah kita berharap perkalian matriks, dan mungkin operasi lain juga, berpindah dari CPU tradisional ke DRAM, bahkan dengan dukungan hardware yang sengaja ditambahkan?
Apakah pergeseran lokasi pemrosesan seperti ini akan memberi keuntungan bagi perusahaan seperti Samsung? Di mana posisi perusahaan seperti NVIDIA?
https://www.patentlyapple.com/2024/12/apple-plans-to-transit...
Ini hack yang menarik. Saya belum membaca makalahnya, tetapi operasi seperti ini tampaknya akan tidak stabil secara termal
Maka hasil inferensi LLM mungkin bisa berubah tergantung suhu sekitar :-)
Untuk detailnya, baca makalahnya atau cari “temperature”