Kiến trúc phần cứng máy học mới
- Kho lưu trữ này chứa mã nguồn của một kiến trúc phần cứng ML chỉ cần gần một nửa số phép nhân nhưng vẫn đạt hiệu năng tương đương với việc thực hiện các phép toán tích vô hướng (inner product) truyền thống.
- Nâng cao giới hạn thông lượng lý thuyết và hiệu quả tính toán của bộ gia tốc ML bằng cách chạy một thuật toán tích vô hướng thay thế, dùng phép cộng độ rộng bit thấp (low-bitwidth) để thay thế gần một nửa số phép nhân.
- Có thể xem chi tiết trong bài báo đã được đăng trên tạp chí IEEE Transactions on Computers.
Thuật toán và kiến trúc phần cứng mới
- Giới thiệu một thuật toán và kiến trúc phần cứng mới có tên Free-pipeline Fast Inner Product (FFIP).
- Cải tiến thuật toán tích vô hướng nhanh (FIP) do Winograd đề xuất năm 1968.
- FIP không liên quan đến thuật toán lọc tối thiểu Winograd áp dụng cho các lớp tích chập (convolutional), và có thể áp dụng cho mọi lớp mô hình ML chủ yếu có thể phân rã thành phép nhân ma trận.
- Lần đầu tiên triển khai FIP trên bộ gia tốc ML, đồng thời trình bày thuật toán FFIP và kiến trúc tổng quát hóa giúp cải thiện tần số xung nhịp của FIP và thông lượng tạo ra từ đó.
- Đóng góp các tối ưu hóa chuyên biệt cho ML đối với thuật toán và kiến trúc FIP và FFIP.
- FFIP có thể được tích hợp liền mạch vào các bộ gia tốc ML dạng systolic array fixed-point hiện có, để đạt cùng thông lượng với một nửa số đơn vị nhân-tích lũy (MAC), hoặc hiện thực kích thước systolic array tối đa lớn hơn trong cùng một ngân sách phần cứng cố định.
- Việc triển khai FFIP cho các mô hình ML không thưa (non-sparse) dùng đầu vào fixed-point 8~16 bit đạt thông lượng và hiệu quả tính toán cao hơn các giải pháp hàng đầu trên cùng loại nền tảng tính toán.
Cấu trúc mã nguồn
compiler: chứa trình biên dịch phân tích mô tả mô hình Python thành các lệnh cho bộ gia tốc, cùng với mã giao tiếp với trình điều khiển PCIe để khởi động việc chạy mô hình trên bộ gia tốc, đọc kết quả và bộ đếm hiệu năng, cũng như kiểm tra độ chính xác của kết quả.
rtl: chứa SystemVerilog RTL có thể tổng hợp.
sim: chứa các script thiết lập môi trường mô phỏng để kiểm thử.
tests: chứa mã nguồn testbench dựa trên UVM để xác minh bộ gia tốc trong mô phỏng bằng Cocotb.
utils: chứa các gói Python và script bổ sung được dùng trong dự án, do tác giả tạo ra để phục vụ tiện ích phát triển chung và hỗ trợ.
Ý kiến của GN⁺
- Bài viết này giới thiệu một bước tiến đổi mới trong kiến trúc phần cứng ML, đặc biệt mô tả một thuật toán và kiến trúc mới có thể giảm số phép nhân mà vẫn giữ nguyên hiệu năng. Đây là một tiến bộ quan trọng có thể cải thiện đáng kể hiệu quả của các phép toán ML.
- Thuật toán FFIP bổ sung một chiều hướng mới cho thiết kế bộ gia tốc ML hiện có, đồng thời cung cấp cách sử dụng tài nguyên phần cứng hiệu quả hơn. Điều này đặc biệt quan trọng trong môi trường điện toán hiện đại, nơi hiệu quả năng lượng và hiệu quả chi phí được coi trọng.
- Tuy nhiên, để công nghệ này được chấp nhận rộng rãi, cần cân nhắc các vấn đề như khả năng tương thích với các bộ gia tốc ML hiện có, mức độ hiểu biết của các nhà phát triển về kiến trúc mới, cũng như hiệu năng và chi phí khi triển khai trên phần cứng thực tế.
- Các dự án hoặc sản phẩm khác cung cấp chức năng tương tự có thể kể đến TPU (Tensor Processing Unit) của Google hoặc các lõi CUDA của NVIDIA; đây đều là các giải pháp bộ gia tốc ML đã được kiểm chứng trên thị trường.
- Khi áp dụng công nghệ mới hoặc mã nguồn mở, cần cân nhắc khả năng tương thích với hệ thống hiện tại, mức tăng chi phí so với mức cải thiện hiệu năng, cũng như độ phức tạp của việc phát triển và bảo trì. Lợi ích có thể đạt được khi chọn FFIP là tăng thông lượng và hiệu quả tính toán, còn nhược điểm tiềm ẩn là đường cong học tập đối với hệ thống mới và chi phí triển khai ban đầu.
1 bình luận
Ý kiến Hacker News
x + log1p(exp(y - x)).