- 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ệu và tí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
Ý 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 compute là https://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
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”
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
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
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
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 đó
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ể
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.
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?
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
Mạng nơ-ron cần số chiều lớn hơn rất nhiều
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
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...
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?
https://www.patentlyapple.com/2024/12/apple-plans-to-transit...
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 :-)
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