1 poin oleh GN⁺ 2025-05-06 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2025-05-06
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

    • Pemrosesan di dalam DRAM adalah ide lama, dan bahkan pada 1990-an ada beberapa makalah yang mencoba mengubah bank DRAM menjadi mesin SIMD
      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”

    • Suatu saat saya akan mencoba mencantumkan seluruh departemen kami, staf deli, bahkan orang-orang yang berada di taman pukul 2 siang sebagai kontributor
    • Ini terlihat seperti kesalahan format
      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

    • Perilaku seperti ini sudah ada sejak DRAM awal yang memultipleks alamat baris/kolom
      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

    • Benar, dan yang mengejutkan, mereka melakukannya pada RAM standar dengan sengaja melanggar parameter timing
      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
    • Menjalankan inferensi LLM di apa pun sepertinya akan menjadi “Doom bisa berjalan di situ” berikutnya
  • 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

    • Dalam high-frequency trading berlatensi rendah, hal seperti ini terutama terjadi pada kartu jaringan
      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
    • Hal seperti ini biasanya masuk kategori pengujian interoperabilitas, tetapi umumnya dimitigasi lewat firmware, bukan hardware
      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
    • Perilaku tak terdefinisi pada C/C++ sudah dibahas sejak lama sekali
      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?

    • Matriks adalah cara untuk merepresentasikan fungsi linear. Misalnya, fungsi yang cocok dengan penjumlahan dan perkalian skalar
      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
    • Quaternion hanya memiliki 4 dimensi yang tetap
      Jaringan saraf membutuhkan jauh lebih banyak dimensi
    • Sepertinya ada beberapa konsep yang tercampur. Quaternion berada dalam kategori yang sama seperti bilangan kompleks
      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
    • Pemahaman saya, manfaat utama quaternion dalam grafika komputer adalah merepresentasikan rotasi dengan cara yang tidak menimbulkan gimbal lock
      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...

    • Saya rasa besar kemungkinan ada materi yang lebih awal juga
      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?

  • 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 :-)

    • Benar, tetapi pengaruhnya kecil saja
      Untuk detailnya, baca makalahnya atau cari “temperature”