1 điểm bởi GN⁺ 2025-05-06 | 1 bình luận | Chia sẻ qua WhatsApp
  • MVDRAM là một hệ thống tăng tốc phép toán GeMV cho suy luận LLM low-bit bằng cách sử dụng DRAM không cần sửa đổi
  • Tận dụng DRAM như một động cơ GeMV để cung cấp thông lượng cao
  • Loại bỏ chi phí sắp xếp trước đầu vào và chi phí chuyển đổi bit đầu ra của các phương pháp PUD hiện có
  • Kết quả thực nghiệm cho thấy hiệu năng vượt trội hơn so với các triển khai dựa trên bộ xử lý trong LLM low-bit
  • Mở ra những khả năng mới cho phần cứng AI

MVDRAM: Tăng tốc LLM low-bit bằng DRAM không cần sửa đổi

  • Phép toán GeMV vẫn là nút thắt độ trễ quan trọng trong suy luận mô hình ngôn ngữ lớn (LLM)
  • Processing-Using-DRAM (PUD) có tiềm năng tái sử dụng DRAM như một động cơ GeMV
  • Tuy nhiên, khi áp dụng PUD vào pipeline suy luận LLM, nó phát sinh chi phí overhead đáng kể

Cách tiếp cận đổi mới của MVDRAM

  • MVDRAM phối hợp bộ xử lý và DRAM bằng cách tận dụng mẫu chia sẻ dữ liệutính tuyến tính toán học
  • Tăng tốc phép toán GeMV bằng cách loại bỏ các chi phí của phương pháp PUD hiện có

Kết quả thực nghiệm

  • Trong thí nghiệm sử dụng bốn mô-đun DRAM DDR4, MVDRAM cho thấy hiệu năng vượt trội hơn triển khai dựa trên bộ xử lý trong các LLM low-bit (4-bit trở xuống)
  • Đạt mức tăng tốc tối đa 7,29 lần và hiệu quả năng lượng cao hơn 30,5 lần

Cải thiện tổng thể cho suy luận LLM

  • Với các mô hình low-bit lượng tử hóa 2-bit và 4-bit, thông lượng được cải thiện lần lượt 2,18 lần và 1,31 lần
  • Hiệu quả năng lượng cũng tăng lần lượt 3,04 lần và 2,35 lần

Những khả năng mới cho phần cứng AI

  • MVDRAM chứng minh khả năng tận dụng DRAM tiêu chuẩn như bộ tăng tốc LLM
  • Có tiềm năng mở ra những chân trời mới cho phần cứng AI

1 bình luận

 
GN⁺ 2025-05-06
Ý kiến trên Hacker News
  • Tài liệu nền gồm có một trong những đề xuất ban đầu về in-DRAM computehttps://users.ece.cmu.edu/~omutlu/pub/in-DRAM-bulk-AND-OR-ie..., bản trình diễn đầu tiên bằng linh kiện thương mại có sẵn https://parallel.princeton.edu/papers/micro19-gao.pdf, công cụ triển khai DRAM Bender https://github.com/CMU-SAFARI/DRAM-Bender, và bài tổng quan gần đây về xử lý-trong-DRAM https://arxiv.org/abs/2412.19275

    • Xử lý bên trong DRAM là một ý tưởng lâu đời, và từ thập niên 90 cũng đã có nhiều bài báo tìm cách biến bank DRAM thành máy SIMD
      Dù chưa tinh vi hay phát triển đến mức như các ý tưởng hiện nay, rốt cuộc các bài báo này khá giống những phiên bản hiện đại của một ý tưởng cũ
  • Dễ thấy là danh sách tác giả ở tài liệu tham khảo số 1 và số 3 dài một cách vô lý
    Tôi còn tưởng bài viết năm 2016 https://news.ycombinator.com/item?id=12469270 cũng sẽ được đưa vào, và bài năm 2019 https://news.ycombinator.com/item?id=22712811 thì thực sự có xuất hiện
    Tất nhiên, các hành vi ngoài đặc tả kiểu này của DRAM, đặc biệt là khả năng sao chép, cũng có liên quan tới lỗi tai tiếng https://news.ycombinator.com/item?id=5314959
    Có vẻ nhiều người đã quan sát hiện tượng này một cách độc lập và nghĩ rằng “biết đâu đây là một hành vi hữu ích”

    • Có ngày tôi sẽ liệt kê cả phòng ban của mình, nhân viên quầy deli, và tất cả những ai có mặt trong công viên lúc 2 giờ chiều làm đồng tác giả
    • Cái này trông giống lỗi định dạng hơn
      Khi danh sách tác giả dài đến mức này, người ta thường chỉ ghi tên đầu tiên rồi phần còn lại để là “et al.”
  • Câu “ra lệnh DRAM theo cách cố ý vi phạm các tham số thời gian do nhà sản xuất chỉ định để thu được tối đa 65.536 phép toán bit song song” nghe như một cú tát vào đống binary blob dùng để training DRAM

  • Cái này thực sự kỳ quặc đến mức bẻ cong não, đồng thời cũng sáng tạo một cách tuyệt vời
    Có những lúc việc đào sâu đến tận lớp đáy chi tiết sẽ được đền đáp. Quá xuất sắc

    • Kiểu hành vi này đã tồn tại từ thời DRAM đời đầu dùng ghép kênh địa chỉ hàng/cột
      Mostek MK4096 năm 1973 có lẽ cũng làm được, chỉ là phải mất cỡ nửa thế kỷ mới có người phát hiện ra
  • Ý là thực hiện phép toán ma trận ngay bên trong DRAM à? Điên rồ nhưng hấp dẫn đấy

    • Đúng vậy, và điều đáng kinh ngạc là họ làm được việc này ngay trên RAM tiêu chuẩn bằng cách cố ý vi phạm tham số thời gian
      Xử lý bằng DRAM (PUD) khai thác các đặc tính hoạt động analog vốn có của DRAM để cho phép tính toán bit-serial có mức song song rất cao bên trong mảng bộ nhớ
      Các nghiên cứu trước đây đã cho thấy ngay cả DRAM thương mại sẵn có cũng có thể đạt được chức năng PUD mà không cần sửa đổi phần cứng, nếu cố ý vi phạm các tham số thời gian
      Hai phép toán cốt lõi là RowCopy và majority-of-X (MAJX). RowCopy chuyển dữ liệu sang một hàng khác trong cùng subarray bằng cách phát lệnh ACT ngay sau PRE trước khi việc precharge bitline hoàn tất, và vì nó tác động đồng thời lên mọi cell trong một hàng nên nhanh hơn khoảng 100 lần so với việc di chuyển dữ liệu do bộ xử lý điều phối
      MAJX thực hiện bỏ phiếu đa số bằng cách kích hoạt đồng thời X cell dùng chung một bitline, và trên DRAM thương mại nó được triển khai bằng cách phát nhanh liên tiếp ACT, PRE, ACT mà không có độ trễ. Nhờ đó có thể kích hoạt đồng thời từ 2 đến 32 hàng, và đây trở thành đơn vị tính toán cơ bản của PUD, tận dụng mức song song của subarray có 65.536 cột
    • Có vẻ chạy suy luận LLM trên bất cứ thứ gì sẽ là phiên bản tiếp theo của “Doom chạy được trên đó”
  • Trong thế giới phần cứng cũng có rủi ro khi dựa vào lỗi mà nhà sản xuất có thể sửa vào một ngày nào đó không?
    Trong phần mềm, dựa vào lỗi của nền tảng để tạo tính năng hay sửa lỗi khác là một ý tưởng tồi
    15 năm sau lỗi đó có thể được sửa, và rồi hệ thống phát nổ mà chẳng ai biết tại sao
    Hình như gần đây cũng có một cuộc thảo luận tương tự, chắc là liên quan đến hành vi không xác định của một hàm C nào đó

    • Trong giao dịch tần suất cao độ trễ thấp, chuyện này đặc biệt hay xảy ra với card mạng
      Có những trường hợp một card mạng cụ thể có lỗi hoặc một tổ hợp tính năng hoạt động theo cách thú vị, tạo lợi thế cho công ty giao dịch
      Những lỗi hay tính năng đó đôi khi biến mất vì được sửa lỗi, hoặc vì ở thị trường lớn hơn người ta cho rằng nó không cần thiết. Vì vậy có công ty tìm cách vét sạch toàn bộ lượng tồn còn lại của một model cụ thể
    • Chuyện này thường được xếp vào nhóm kiểm thử khả năng tương tác, nhưng đa phần được giảm thiểu bằng firmware chứ không phải phần cứng
      Trong trường hợp tệ nhất, bạn vẫn phải đảm bảo nó hoạt động với cả phần cứng của một nhà cung cấp nổi tiếng đã biến mất từ 15 năm trước. Lý do là các khách hàng lớn đã dùng thiết bị đó suôn sẻ suốt 15 năm, và nếu họ cắm thiết bị mới vào mà không chạy thì họ sẽ cho rằng phần cứng của bạn có vấn đề
      Trong thiết bị viễn thông điều này đặc biệt quan trọng, nên firmware có đủ loại xử lý đặc biệt dành cho những nhà cung cấp không tuân thủ đặc tả. Và để tránh làm hỏng hệ thống của người khác, các xử lý đặc biệt đó phải tiếp tục được giữ lại trong firmware
      Chỉ cần hình dung thiết bị cũ, thiết bị từ các công ty đã biến mất, thiết bị của đối thủ hiện tại phủ kín cả bức tường, còn cánh tay robot thì liên tục cắm dây cáp, là bạn sẽ phần nào hiểu được một số phòng lab kiểm định phần cứng trông như thế nào
      Firmware của nhà sản xuất bo mạch chủ cũng đầy những xử lý đặc biệt cho từng CPU, chipset v.v.
    • Hành vi không xác định trong C/C++ đã được bàn luận từ rất lâu rồi
      Tác động của nó khi kết hợp với trình biên dịch tối ưu hóa bắt đầu được công chúng rộng rãi biết đến vào khoảng năm 2010, hoặc có lẽ là 2013, nên đến nay đã hơn 12 năm
      Bài báo này không hẳn nói rằng chúng ta nên dựa vào lỗi, mà gần hơn với việc cho thấy DRAM có thể làm được gì và hy vọng chức năng đó sẽ được chuẩn hóa
  • GeMV thông thường à, mình không giỏi toán lắm
    Khi học quaternion trong môn toán 3D, bọn mình có lướt qua lịch sử tính toán ma trận trong phát triển đồ họa. Mình còn trượt môn đó lần đầu, nên rõ ràng không phải kiểu người sinh ra để học toán
    Theo cách mình hiểu thì quaternion trở nên phổ biến vì gần như chính xác bằng ma trận nhưng độ phức tạp tính toán thấp hơn nhiều
    Đã có ai thử xây dựng LLM bằng quaternion thay cho ma trận chưa? Hay tối ưu hóa bằng quaternion chỉ hữu ích hơn trong đồ họa thời gian thực?

    • Ma trận là một cách biểu diễn hàm tuyến tính. Ví dụ, đó là loại hàm tương thích tốt với phép cộng và nhân vô hướng
      Một tập con cụ thể trong đó có thể dùng để mô tả phép quay trong không gian 3 chiều, và quaternion, dù vẫn còn có thể tranh luận, làm việc này tốt hơn
      Nhưng quaternion không thể mô tả một hàm tuyến tính bất kỳ, nên có vẻ không phù hợp cho LLM
    • Quaternion chỉ có 4 chiều cố định
      Mạng nơ-ron cần số chiều lớn hơn rất nhiều
    • Có vẻ bạn đang trộn lẫn nhiều khái niệm. Quaternion thuộc cùng nhóm với số phức
      Chúng có thể được biểu diễn bằng ma trận, và với các ma trận dùng quaternion làm phần tử thay vì số thực thì có lẽ cũng có vài ứng dụng khá ổn như QDNN
      Theo kinh nghiệm của mình, với các cấu trúc quy mô lớn như LLM, các dạng đơn giản hơn dễ thành công hơn, trừ khi có lợi ích thực sự rõ ràng khi biểu diễn bằng kiểu vô hướng tinh vi hơn như trong vật lý hay đồ họa 3D
    • Theo mình hiểu, lợi ích chính của quaternion trong đồ họa máy tính là biểu diễn phép quay theo cách không gặp gimbal lock
      Ngoài ra, kiểu biểu diễn phép quay như vậy không mở rộng tốt lắm khi tăng thêm số chiều
      Số phức là biểu diễn phức của không gian 2 chiều, quaternion là biểu diễn phức của không gian 3 chiều, và để lên 4 chiều thì cần octonion với 8 phần tử
  • Việc không trích dẫn tài liệu Intelligent RAM (IRAM) gốc từ năm 1997 có vẻ hơi thiếu tính khoa học
    https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=iram...

    • Mình nghĩ rất có thể còn có tài liệu sớm hơn nữa
      Tuy vậy, IRAM có vẻ gần với tính toán gần bộ nhớ hơn, tức là thêm ALU vào chip nhớ, còn tính toán trong bộ nhớ thì thiên về dùng chính mảng bộ nhớ
      Nói công bằng thì trước khi deep learning xuất hiện với các vector cực dài, sức hấp dẫn của tính toán trong bộ nhớ thấp hơn nhiều. Có lẽ vì vậy mà người ta cố tạo ra các cách cho phép kiểm soát phép tính chi tiết hơn
  • Liệu có thể kỳ vọng phép nhân ma trận và có lẽ cả các phép toán khác nữa sẽ dần chuyển từ CPU truyền thống sang DRAM, thậm chí được bổ sung hỗ trợ phần cứng có chủ đích không?
    Kiểu dịch chuyển vị trí xử lý này có mang lại lợi thế cho các công ty như Samsung không? Các công ty như NVIDIA sẽ đứng ở đâu?

  • Một màn hack khá thú vị. Mình chưa đọc bài báo nhưng kiểu tính toán này có vẻ sẽ không ổn định về nhiệt
    Khi đó kết quả suy luận của LLM có thể thay đổi theo nhiệt độ môi trường :-)

    • Đúng, nhưng ảnh hưởng chỉ nhỏ thôi
      Muốn biết chi tiết thì cứ đọc bài báo hoặc tìm kiếm với từ khóa “temperature” là được