AI mở & chạy cục bộ

Bộ tăng tốc FPGA mã nguồn mở chạy các mô hình LLM hiện đại với toàn bộ công cụ hỗ trợ

Dự án openTPU phát hành một thiết kế bộ tăng tốc AI hoàn chỉnh trong một repository duy nhất, cho phép chạy các mô hình như Qwen3 và LFM2.5 trên card FPGA Kintex-7 với khả năng mô phỏng chính xác từng bit.

Một khối thủy tinh chứa các lớp mạch điện và chip bên trong, đặt trên bàn cùng với các ghi chú
Minh họa được tạo riêng cho bài viết này

Được dịch tự động từ bản gốc tiếng Anh.

Người dùng GitHub FeSens đã phát hành openTPU, một bộ tăng tốc AI mã nguồn mở bao gồm mô tả phần cứng riêng, kiến trúc tập lệnh, trình mô phỏng, trình biên dịch và profiler trong một repository duy nhất. Được công bố vào ngày 6 tháng 10 năm 2026, dự án chứng minh rằng các mô hình ngôn ngữ lớn (LLM) hiện đại có thể chạy hiệu quả trên mảng cổng lập trình được tại chỗ (FPGA) bằng cách sử dụng một stack phần mềm và phần cứng hoàn toàn minh bạch.

Điều gì đã xảy ra

Dự án openTPU giải đáp hai câu hỏi cơ bản về tình trạng hiện tại của thiết kế phần cứng AI: mức độ tự chủ mà các agent có thể đạt được trong việc thiết kế phần cứng, và liệu chúng có thể xây dựng những con chip để chạy chính quá trình suy luận (inference) của mình hay không. Toàn bộ bộ tăng tốc nằm gọn trong một monorepo nhỏ, cho phép các nhà phát triển đọc mã từ đầu đến cuối. Bao gồm thiết kế phần cứng SystemVerilog, định nghĩa tập lệnh, một trình mô phỏng chính xác từng bit, một ngôn ngữ kernel cùng trình biên dịch của nó, và phần mềm host cần thiết để điều khiển card PCIe vật lý.

Thiết kế này đã được kiểm thử trên card Inspur YPCB-00338, trang bị FPGA Xilinx Kintex-7 xc7k480t và hai kênh bộ nhớ DDR3. Nó chạy thành công mười mô hình hiện đại với trọng số thực tế, tạo ra các token khớp chính xác từng bit với kết quả từ trình mô phỏng. Dự án cung cấp các benchmark chi tiết cho các mô hình như LFM2.5-230M, Qwen3-0.6B, Qwen3.5-0.8B, Gemma 4 E2B, LFM2-2.6B, SmolLM3-3B, Phi-4-mini, và Qwen3.5-2B cũng như 4B. Các bài kiểm tra này bao phủ cả hai phương pháp lượng tử hóa int8 và 4-bit, cho thấy tốc độ giải mã dao động từ 3,75 token/giây đối với các mô hình lớn hơn lên tới 85,8 token/giây đối với các mô hình nhỏ hơn.

Một bản cập nhật quan trọng, được gọi là Build B, đã cải thiện hiệu suất giải mã thêm 8-9% cho một số mô hình so với các image sản xuất trước đó. Bản build này cũng tăng mức sử dụng băng thông DRAM lên giữa 91% và 94% so với tốc độ đỉnh của DDR3-1066. Hệ thống hỗ trợ các mô hình mixture-of-experts (hỗn hợp chuyên gia) lớn hơn dung lượng bộ nhớ 4 GiB của card bằng cách stream các chuyên gia từ bộ lưu trữ host, vẫn duy trì độ chính xác từng bit với trình mô phỏng ngay cả trong các thao tác phức tạp này.

Cách thức hoạt động

Kiến trúc được thiết kế cố ý đơn giản để đảm bảo tính minh bạch và dễ dàng gỡ lỗi. Một bộ tuần tự (sequencer) phát ra một lệnh mỗi chu kỳ tới một vài đơn vị chuyên dụng: một engine DMA cho việc di chuyển dữ liệu, một đơn vị ma trận cho phép nhân trọng số int8 được stream từ DRAM, một đơn vị vector cho tính toán fp32, và một bộ lượng tử hóa để chuyển đổi kết quả trở lại int8. Không có cache hay cơ chế lập lịch ẩn. Mọi sự di chuyển dữ liệu đều được xác định rõ ràng dưới dạng một lệnh, nghĩa là một trace thực thi sẽ cho thấy chính xác nơi nào các chu kỳ được tiêu tốn.

Các nhà phát triển viết kernel bằng một ngôn ngữ giống Python tên là ol, sử dụng các decorator như @ol.jit để biên dịch các thao tác cấp cao thành tập lệnh tùy chỉnh. Trình biên dịch xử lý các layout, địa chỉ vòng lặp affine và fusion. Các lệnh kết quả được thực thi trên FPGA hoặc được xác minh bởi trình mô phỏng ISA dựa trên Python. Vì trình mô phỏng và thiết kế phần cứng RTL (Register Transfer Level) xử lý cùng các bit, chúng được kiểm tra bởi các bài test để đảm bảo tính nhất quán. Điều này cho phép các nhà phát triển prototype và gỡ lỗi trên laptop trước khi triển khai lên phần cứng vật lý.

Hệ thống bao gồm một profiler tên là Lens, ghi lại các lần chạy từ RTL, trình mô phỏng hoặc card và hiển thị chúng trong trình duyệt. Lens cung cấp một mô hình roofline, một dòng thời gian (timeline), và các bảng biểu theo từng lệnh, tô màu mỗi chu kỳ để cho biết nếu một đơn vị đang bận, đang chờ DRAM, hay đang chờ một lệnh khác. Khả năng hiển thị này giúp các kỹ sư hiểu được các nút thắt cổ chai hiệu suất, chẳng hạn như giới hạn băng thông DRAM, hiện đang kìm hãm tốc độ giải mã ở mức 82-85% so với đỉnh lý thuyết.

Chi tiết chính

  • Dự án chạy trên FPGA Xilinx Kintex-7 xc7k480t với hai kênh DDR3, đạt băng thông đỉnh lên tới 17,1 GB/s.
  • Benchmark cho thấy tốc độ giải mã từ 3,75 tok/s cho Qwen3.5-4B đến 85,8 tok/s cho LFM2.5-230M với lượng tử hóa 4-bit.
  • Hệ thống hỗ trợ trọng số 4-bit sử dụng giá trị FP4 với scale block hai cấp, giảm khoảng một phần ba số byte trên mỗi token.
  • Các mô hình mixture-of-experts như LFM2.5-8B-A1B chạy bằng cách stream các chuyên gia từ bộ lưu trữ host, đạt 10,6 tok/s với tỷ lệ hit slot 98,5%.
  • Tất cả các cấu hình khớp với trình mô phỏng từng token, đảm bảo khả năng tái tạo chính xác từng bit giữa mô phỏng phần mềm và thực thi phần cứng.
  • Chi phí phần mềm host rất thấp, chỉ thêm từ 0,17 đến 0,30 ms trên mỗi token trên các hệ thống đã tối ưu, giữ cho bộ tăng tốc phần lớn độc lập.

Tại sao điều này quan trọng

Đối với các kỹ sư phần mềm và người thực hành ML, openTPU làm sáng tỏ hộp đen của các bộ tăng tốc AI. Bằng cách cung cấp một stack hoàn chỉnh từ kernel Python xuống đến SystemVerilog RTL, nó mang đến một cơ hội hiếm có để hiểu cách các phép nhân ma trận và cơ chế attention chuyển đổi thành các chuyển động dây vật lý và chu kỳ đồng hồ. Mức độ minh bạch này vô cùng quý giá cho mục đích giáo dục và cho các nhà phát triển cần tối ưu hóa mô hình cho các ràng buộc phần cứng cụ thể mà không phụ thuộc vào các công cụ độc quyền.

Dự án cũng nêu bật các giới hạn thực tế của suy luận dựa trên FPGA hiện nay. Các benchmark chi tiết cho thấy hiệu suất giải mã bị ràng buộc nặng nề bởi băng thông DRAM thay vì sức mạnh tính toán. Insight này hướng dẫn các kỹ sư tối ưu hóa các mẫu truy cập bộ nhớ và chiến lược lượng tử hóa thay vì chỉ tăng throughput tính toán. Khả năng chạy các mô hình hiện đại như Qwen3 và Gemma 4 trên phần cứng tương đối cũ như Kintex-7 gợi ý rằng thiết kế phần mềm và kiến trúc hiệu quả có thể kéo dài tuổi thọ của hạ tầng hiện có.

Hơn nữa, việc tích hợp các agent AI vào quy trình thiết kế, như được gợi ý bởi phương pháp "auto-arch-tournament", chỉ ra một tương lai nơi bản thân thiết kế phần cứng có thể được tự động hóa. Việc hệ thống có thể xây dựng và chạy con chip thực thi các vòng lặp suy luận của chính nó tạo ra một môi trường phát triển khép kín, có thể thúc đẩy nhanh đổi mới trong phần cứng AI chuyên dụng.

Những gì bạn có thể làm

  • Cài đặt gói openTPU qua pip và chạy trình mô phỏng ISA trên laptop của bạn để kiểm thử các mô hình như LFM2.5-230M mà không cần phần cứng.
  • Nghiên cứu tài liệu tập lệnh trong docs/isa.md để hiểu các thao tác cấp thấp điều khiển bộ tăng tốc.
  • Sử dụng profiler Lens để trực quan hóa các trace thực thi và xác định các nút thắt DRAM trong các implementation kernel của riêng bạn.
  • Thử nghiệm với các phương pháp lượng tử hóa 4-bit để cải thiện tốc độ giải mã, lưu ý các đánh đổi về perplexity được báo cáo trong tài liệu lượng tử hóa.
  • Nếu bạn có một card PCIe Kintex-7 tương thích, hãy build bitstream và tải nó qua JTAG để chạy suy luận thời gian thực với otpu-chat.
  • Đóng góp cho dự án bằng cách khám phá thư mục rtl/ và giúp cải thiện biên timing và hiệu quả diện tích trong các bản build tương lai.

Công cụ từ cửa hàng Bytechap

$89

DocBento

Hệ thống quản lý tài liệu tự host, có khả năng đọc mọi bản quét và trả lời kèm trích dẫn trang cụ thể.

Demo trực tiếp

Đọc tiếp

Tất cả bài viết