1 คะแนน โดย GN⁺ 2025-05-06 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • MVDRAM เป็นระบบที่เร่งการทำงาน GeMV สำหรับการอนุมาน Low-Bit LLM โดยใช้ DRAM แบบไม่ดัดแปลง
  • ใช้ DRAM เป็นเอนจิน GeMV เพื่อให้ได้ throughput สูง
  • ขจัดต้นทุนของการจัดเรียงอินพุตล่วงหน้าและการสลับบิตเอาต์พุตของแนวทาง PUD แบบเดิม
  • ผลการทดลองแสดงให้เห็นว่ามีประสิทธิภาพเหนือกว่าการใช้งานบนโปรเซสเซอร์ใน Low-Bit LLM
  • นำเสนอความเป็นไปได้ใหม่สำหรับฮาร์ดแวร์ AI

MVDRAM: การเร่ง Low-Bit LLM ด้วย DRAM แบบไม่ดัดแปลง

  • การทำงาน GeMV ยังคงเป็นคอขวดด้านเวลาแฝงที่สำคัญในการอนุมานของโมเดลภาษาขนาดใหญ่ (LLM)
  • Processing-Using-DRAM (PUD) มีศักยภาพในการนำ DRAM มาใช้ใหม่เป็นเอนจิน GeMV
  • อย่างไรก็ตาม เมื่อนำ PUD ไปใช้กับไปป์ไลน์การอนุมาน LLM จะเกิดโอเวอร์เฮดอย่างมาก

แนวทางที่ล้ำสมัยของ MVDRAM

  • MVDRAM ประสานการทำงานระหว่างโปรเซสเซอร์และ DRAM โดยอาศัย รูปแบบการแชร์ข้อมูล และ ความเป็นเชิงเส้นทางคณิตศาสตร์
  • เร่งการทำงาน GeMV โดยขจัดต้นทุนของแนวทาง PUD แบบเดิม

ผลการทดลอง

  • ในการทดลองที่ใช้โมดูล DDR4 DRAM จำนวน 4 โมดูล MVDRAM แสดงประสิทธิภาพเหนือกว่าการใช้งานบนโปรเซสเซอร์ใน LLM แบบ low-bit (4 บิตหรือต่ำกว่า)
  • ทำความเร็วได้สูงสุด 7.29 เท่า และมีประสิทธิภาพด้านพลังงานสูงขึ้น 30.5 เท่า

การปรับปรุงโดยรวมของการอนุมาน LLM

  • ในโมเดล low-bit ที่ควอนไทซ์เป็น 2 บิตและ 4 บิต มีการปรับปรุง throughput 2.18 เท่า และ 1.31 เท่า ตามลำดับ
  • ประสิทธิภาพด้านพลังงานก็ดีขึ้น 3.04 เท่า และ 2.35 เท่า ตามลำดับ

ความเป็นไปได้ใหม่ของฮาร์ดแวร์ AI

  • MVDRAM พิสูจน์ให้เห็นถึงความเป็นไปได้ในการใช้ DRAM มาตรฐานเป็นตัวเร่ง LLM
  • มีศักยภาพในการเปิดขอบเขตใหม่ให้กับฮาร์ดแวร์ AI

1 ความคิดเห็น

 
GN⁺ 2025-05-06
ความคิดเห็นบน Hacker News
  • เอกสารพื้นฐานมีข้อเสนอแรก ๆ ของ in-DRAM compute อย่าง https://users.ece.cmu.edu/~omutlu/pub/in-DRAM-bulk-AND-OR-ie..., การสาธิตครั้งแรกด้วยชิ้นส่วนสำเร็จรูป https://parallel.princeton.edu/papers/micro19-gao.pdf, เครื่องมือสำหรับใช้งานจริงอย่าง DRAM Bender https://github.com/CMU-SAFARI/DRAM-Bender และบทความสำรวจล่าสุดเรื่อง processing-in-DRAM https://arxiv.org/abs/2412.19275

    • การประมวลผลภายใน DRAM เป็นแนวคิดเก่า และแม้แต่ในยุค 90 ก็มีบทความหลายชิ้นที่พยายามเปลี่ยน DRAM bank ให้เป็น เครื่อง SIMD
      แม้จะไม่ได้ฉลาดหรือก้าวหน้าเท่าไอเดียตอนนี้ แต่สุดท้ายบทความเหล่านี้ก็ใกล้เคียงกับการนำแนวคิดเก่ามาปรับเป็นเวอร์ชันใหม่
  • สิ่งที่สะดุดตาคือรายชื่อผู้เขียนของเอกสารอ้างอิงหมายเลข 1 และ 3 ยาวจนน่าขำ
    คิดว่าจะมีโพสต์ปี 2016 https://news.ycombinator.com/item?id=12469270 รวมอยู่ด้วย และก็เห็นโพสต์ปี 2019 https://news.ycombinator.com/item?id=22712811 อยู่จริง ๆ
    แน่นอนว่า พฤติกรรมนอกสเปก ของ DRAM แบบนี้ โดยเฉพาะความสามารถในการคัดลอก ยังเกี่ยวข้องกับบั๊กฉาว https://news.ycombinator.com/item?id=5314959 ด้วย
    ดูเหมือนว่าหลายคนจะสังเกตปรากฏการณ์นี้ได้อย่างอิสระ แล้วคิดว่า “มันอาจเป็นพฤติกรรมที่มีประโยชน์ก็ได้”

    • สักวันหนึ่งผมตั้งใจจะใส่ทั้งแผนกของเรา พนักงานร้านเดลี และคนที่อยู่ในสวนตอนบ่ายสองโมงทั้งหมดเป็นผู้มีส่วนร่วม
    • นี่ดูเหมือน ข้อผิดพลาดด้านการจัดรูปแบบ
      ถ้ารายชื่อผู้เขียนใหญ่โตขนาดนี้ ปกติจะใส่แค่ชื่อแรกแล้วที่เหลือใช้ “et al.”
  • “ออกคำสั่ง DRAM ที่จงใจละเมิดพารามิเตอร์ timing ที่ผู้ผลิตกำหนด เพื่อให้ได้การดำเนินการระดับบิตสูงสุด 65,536 รายการแบบขนาน” ฟังเหมือนเป็นการตบหน้า binary blob สำหรับฝึก DRAM เลย

  • เรื่องนี้ประหลาดจนสมองแทบพับได้ และในขณะเดียวกันก็สร้างสรรค์อย่างเท่
    บางครั้งการขุดลึกลงไปถึงรายละเอียดระดับล่างสุดก็ได้รับผลตอบแทน เยี่ยมมาก

    • พฤติกรรมแบบนี้มีมาตั้งแต่ DRAM ยุคแรกที่มัลติเพล็กซ์ที่อยู่แถว/คอลัมน์ แล้ว
      Mostek MK4096 ปี 1973 ก็น่าจะทำได้ เพียงแต่กว่าจะมีใครค้นพบก็ใช้เวลาราวครึ่งศตวรรษ
  • หมายความว่าทำ การคำนวณเมทริกซ์ ในตัว DRAM เองเลยเหรอ? บ้าดีแต่น่าสนใจ

    • ใช่ และที่น่าทึ่งคือทำได้แม้กับ RAM มาตรฐาน โดย จงใจละเมิดพารามิเตอร์ timing
      Processing using DRAM (PUD) ใช้ประโยชน์จากลักษณะพฤติกรรมแอนะล็อกโดยธรรมชาติของ DRAM เพื่อให้คำนวณแบบ bit-serial ที่ขนานสูงภายในอาร์เรย์หน่วยความจำได้
      งานวิจัยก่อนหน้านี้แสดงให้เห็นว่า DRAM สำเร็จรูปเชิงพาณิชย์ก็สามารถทำฟังก์ชัน PUD ได้โดยไม่ต้องแก้ฮาร์ดแวร์ หากจงใจละเมิดพารามิเตอร์ timing
      การดำเนินการหลักมีสองอย่างคือ RowCopy และ majority-of-X(MAJX) RowCopy ย้ายข้อมูลไปยังแถวอื่นใน subarray เดียวกัน โดยส่งคำสั่ง ACT ต่อจาก PRE ทันที ก่อนที่ bitline precharge จะเสร็จ และเพราะมันส่งผลต่อทุกเซลล์ในหนึ่งแถวพร้อมกัน จึงเร็วกว่าการย้ายข้อมูลที่โปรเซสเซอร์เป็นตัวกลางประมาณ 100 เท่า
      MAJX ทำ majority vote โดยเปิดใช้งานเซลล์ X ตัวที่แชร์ bitline เดียวกันพร้อมกัน และใน DRAM เชิงพาณิชย์จะทำโดยออกคำสั่ง ACT, PRE, ACT อย่างรวดเร็วต่อเนื่องกันโดยไม่มี delay วิธีนี้ทำให้เปิดใช้งานได้พร้อมกัน 2–32 แถว และกลายเป็นหน่วยคำนวณพื้นฐานของ PUD ที่ใช้ประโยชน์จากความขนานของ subarray ที่มี 65,536 คอลัมน์
    • การรัน LLM inference บนอะไรก็ได้คงจะกลายเป็น “Doom รันได้” แบบใหม่
  • ในโลกฮาร์ดแวร์ก็มีความเสี่ยงจากการใช้บั๊กที่ผู้ผลิตอาจแก้ได้สักวันหนึ่งเหมือนกันไหม?
    ในซอฟต์แวร์ การพึ่งบั๊กของแพลตฟอร์มเพื่อสร้างฟีเจอร์บางอย่างหรือแก้บั๊กอื่นถือเป็นความคิดที่ไม่ดี
    อีก 15 ปีบั๊กนั้นอาจถูกแก้ แล้วระบบก็ระเบิดโดยไม่มีใครรู้เหตุผล
    เหมือนเคยมีการถกเรื่องคล้าย ๆ กันไม่นานมานี้ น่าจะเกี่ยวกับ undefined behavior ของฟังก์ชัน C บางตัว

    • ใน low-latency high-frequency trading เรื่องแบบนี้เกิดขึ้นบ่อย โดยเฉพาะกับ การ์ดเครือข่าย
      บางครั้งการ์ดเครือข่ายรุ่นหนึ่งมีบั๊กหรือมีการผสมฟีเจอร์ที่ทำงานได้น่าสนใจ จนเป็นประโยชน์ต่อบริษัทเทรด
      บั๊กหรือฟีเจอร์เหล่านี้อาจหายไปเพราะถูกแก้บั๊ก หรือเพราะตลาดที่ใหญ่กว่ามองว่าไม่จำเป็น บริษัทต่าง ๆ จึงอาจพยายามซื้อสต็อกที่เหลือทั้งหมดของรุ่นนั้น
    • เรื่องแบบนี้ปกติเข้าอยู่ในหมวด การทดสอบการทำงานร่วมกัน แต่ส่วนใหญ่มักบรรเทาด้วยเฟิร์มแวร์ ไม่ใช่ฮาร์ดแวร์
      ในกรณีแย่ที่สุด ต้องทำให้มันใช้งานกับฮาร์ดแวร์ของผู้ขายชื่อดังที่หายไปเมื่อ 15 ปีก่อนให้ได้ เพราะลูกค้ารายใหญ่ใช้เครื่องนั้นมา 15 ปีโดยไม่มีปัญหา และถ้าเสียบอุปกรณ์ใหม่แล้วใช้ไม่ได้ พวกเขาจะมองว่าฮาร์ดแวร์ของคุณเป็นปัญหา
      เรื่องนี้สำคัญเป็นพิเศษในอุปกรณ์โทรคมนาคม จึงมี การจัดการพิเศษ สารพัดสำหรับผู้ขายที่ไม่ทำตามสเปก และต้องปล่อยการจัดการพิเศษเหล่านั้นไว้ในเฟิร์มแวร์ต่อไปเพื่อไม่ให้ระบบของคนอื่นพัง
      ลองนึกภาพอุปกรณ์เก่า อุปกรณ์ของบริษัทที่เลิกกิจการไปแล้ว และอุปกรณ์ของคู่แข่งปัจจุบันเต็มผนังทั้งแถบ พร้อมแขนหุ่นยนต์คอยเสียบสาย ก็พอจะเห็นภาพว่าห้องแล็บตรวจสอบฮาร์ดแวร์บางแห่งเป็นอย่างไร
      เฟิร์มแวร์ของผู้ผลิตเมนบอร์ดก็เต็มไปด้วยการจัดการพิเศษสำหรับ CPU, ชิปเซ็ต ฯลฯ บางรุ่นเช่นกัน
    • undefined behavior ใน C/C++ ถูกพูดถึงกันมานานมากแล้ว
      ผลกระทบเมื่อจับคู่กับ optimizing compiler เริ่มเป็นที่รู้จักในวงกว้างราวปี 2010 หรืออาจเป็นปี 2013 และตอนนี้ก็เกิน 12 ปีแล้ว
      บทความนี้ไม่ใช่การบอกให้พึ่งบั๊กนัก แต่ใกล้เคียงกับการแสดงให้เห็นว่า DRAM ทำอะไรได้บ้าง และหวังให้ฟังก์ชันเหล่านี้ถูกทำให้เป็นมาตรฐานมากกว่า
  • การคูณเมทริกซ์-เวกเตอร์ทั่วไป (GeMV) งั้นหรือ ผมไม่ใช่คนเก่งคณิตศาสตร์เท่าไร
    ในคลาสคณิตศาสตร์ 3D ตอนเรียนเรื่อง ควอเทอร์เนียน เคยพูดถึงประวัติการคำนวณเมทริกซ์ในการพัฒนากราฟิกอยู่แวบหนึ่ง คลาสนั้นผมก็ตกตั้งแต่แรกแล้ว เลยไม่ใช่สายคณิตจริง ๆ
    เท่าที่เข้าใจ ควอเทอร์เนียนดูเหมือนจะได้รับความนิยมเพราะแม่นยำเกือบพอ ๆ กับเมทริกซ์ แต่มีความซับซ้อนในการคำนวณต่ำกว่ามาก
    เคยมีความพยายามสร้าง LLM ด้วยควอเทอร์เนียนแทนเมทริกซ์ไหม? หรือการปรับให้เหมาะด้วยควอเทอร์เนียนมีประโยชน์กว่าในกราฟิกแบบเรียลไทม์?

    • เมทริกซ์คือวิธีแสดง ฟังก์ชันเชิงเส้น เช่น ฟังก์ชันที่เข้ากันได้ดีกับการบวกและการคูณด้วยสเกลาร์
      ในจำนวนนั้น มีสับเซตเฉพาะบางส่วนที่ใช้บรรยายการหมุนในปริภูมิ 3 มิติได้ และควอเทอร์เนียน แม้จะยังถกเถียงกันได้ ก็ทำสิ่งนี้ได้ดีกว่า
      แต่ควอเทอร์เนียนไม่สามารถบรรยายฟังก์ชันเชิงเส้นใด ๆ ก็ได้ จึงดูไม่เหมาะกับ LLM
    • ควอเทอร์เนียนมีแค่ 4 มิติ แบบตายตัว
      โครงข่ายประสาทต้องการมิติมากกว่านั้นมาก
    • ดูเหมือนกำลังผสมหลายแนวคิดเข้าด้วยกันอยู่ ควอเทอร์เนียน อยู่ในหมวดเดียวกับจำนวนเชิงซ้อน
      มันสามารถแทนด้วยเมทริกซ์ได้ และเมทริกซ์ที่ใช้องค์ประกอบเป็นควอเทอร์เนียนแทนจำนวนจริงก็น่าจะมีการใช้งานที่ดีอยู่บ้าง เช่น QDNN
      จากประสบการณ์ของผม ในโครงสร้างขนาดใหญ่อย่าง LLM รูปแบบที่เรียบง่ายกว่ามักจะประสบความสำเร็จได้ง่ายกว่า เว้นแต่จะมีประโยชน์จริงจากการแทนด้วยชนิดสเกลาร์ที่ซับซ้อนขึ้นอย่างในฟิสิกส์หรือกราฟิก 3D
    • เท่าที่ผมเข้าใจ ประโยชน์หลักของควอเทอร์เนียนในคอมพิวเตอร์กราฟิกคือการแทนการหมุนในแบบที่ไม่เกิด gimbal lock
      นอกจากนี้ การแทนการหมุนแบบนั้นก็ไม่ได้ขยายต่อได้ดีนักด้วยควอเทอร์เนียนเมื่อเพิ่มมิติ
      จำนวนเชิงซ้อนคือการแทนแบบเชิงซ้อนของปริภูมิ 2 มิติ ควอเทอร์เนียนคือการแทนแบบเชิงซ้อนของปริภูมิ 3 มิติ และถ้าจะไป 4 มิติ ต้องใช้ออกโทเนียนที่มีองค์ประกอบ 8 ตัว
  • การไม่อ้างถึงเอกสาร Intelligent RAM (IRAM) ดั้งเดิมจากปี 1997 ดูไม่ค่อยเป็นวิทยาศาสตร์เท่าไร
    https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=iram...

    • ผมว่ามีความเป็นไปได้สูงที่จะมีเอกสารที่เก่ากว่านั้นอีก
      แต่ IRAM ดูจะใกล้กับ การคำนวณใกล้หน่วยความจำ ที่เพิ่ม ALU เข้าไปในชิปหน่วยความจำ ส่วนการคำนวณภายในหน่วยความจำคือแนวทางที่ใช้แถวหน่วยความจำนั้นเอง
      ถ้าพูดอย่างเป็นธรรม ก่อนที่ดีปเลิร์นนิงที่ใช้ความยาวเวกเตอร์มหาศาลจะเกิดขึ้น เสน่ห์ของการคำนวณภายในหน่วยความจำก็น้อยกว่านี้มาก ดังนั้นผู้คนจึงน่าจะพยายามสร้างวิธีที่ควบคุมการคำนวณได้ละเอียดกว่า
  • เราคาดหวังได้ไหมว่าการคูณเมทริกซ์ และอาจรวมถึงการดำเนินการอื่น ๆ จะย้ายจาก CPU แบบดั้งเดิมไปยัง DRAM และถึงขั้นมีการใส่การรองรับในฮาร์ดแวร์โดยตั้งใจ?
    การย้ายตำแหน่งที่ประมวลผล แบบนี้จะให้ข้อได้เปรียบกับบริษัทอย่าง Samsung ไหม? แล้วบริษัทอย่าง NVIDIA จะยืนอยู่ตรงไหน?

  • เป็นการแฮ็กที่น่าสนใจ ผมยังไม่ได้อ่าน论文 แต่การคำนวณแบบนี้ดูเหมือนจะ ไม่เสถียรทางความร้อน
    งั้นผลลัพธ์การอนุมานของ LLM ก็อาจเปลี่ยนไปตามอุณหภูมิแวดล้อมได้ :-)

    • ใช่ แต่ผลกระทบมีเพียงเล็กน้อย
      รายละเอียดให้อ่าน论文 หรือค้นคำว่า “temperature” ดูก็ได้