Dự án OpenTPU của ArchLab thuộc UC Santa Barbara, một triển khai mã nguồn mở của Tensor Processing Unit của Google, đã âm thầm tiếp tục phát triển trong gần tám năm kể từ khi phát hành ban đầu. Các cuộc thảo luận gần đây trong cộng đồng đã làm nổi bật cả sự bền bỉ của dự án và sự tiến hóa nhanh chóng của công nghệ TPU của Google kể từ bài báo năm 2017 ban đầu đã truyền cảm hứng cho nỗ lực học thuật này.
Dự án cho thấy sự bền bỉ đáng ngạc nhiên dù đã lâu năm
Mặc dù kho lưu trữ OpenTPU ban đầu có vẻ như đã ngừng hoạt động, các thành viên cộng đồng đã phát hiện ra rằng việc phát triển tích cực vẫn tiếp tục trong các nhánh của dự án, với các commit mới nhất chỉ ba giờ trước cuộc thảo luận. Sự bền bỉ này thật đáng chú ý đối với một dự án học thuật bắt đầu như một nỗ lực kỹ thuật ngược dựa trên thông tin công khai hạn chế về chip TPU thế hệ đầu tiên của Google.
Dự án vẫn tập trung vào khả năng chỉ suy luận của TPU trung tâm dữ liệu ban đầu của Google, được thiết kế đặc biệt để chạy các tính toán mạng nơ-ron thay vì huấn luyện chúng. Trọng tâm hẹp này phản ánh các chi tiết kỹ thuật hạn chế có sẵn khi dự án bắt đầu, vì Google chưa công bố thông số kỹ thuật toàn diện cho silicon tùy chỉnh của họ.
Bộ lệnh OpenTPU:
- RHM: Read Host Memory - Đọc N vector từ bộ nhớ máy chủ vào Unified Buffer
- WHM: Write Host Memory - Ghi N vector từ UB vào bộ nhớ máy chủ
- RW: Read Weights - Tải các tile trọng số từ DRAM
- MMC: Matrix Multiply/Convolution - Thực hiện các phép toán ma trận
- ACT: Activate - Áp dụng các hàm kích hoạt (ReLU, sigmoid)
- NOP: No operation - Không thực hiện thao tác nào
- HALT: Stop simulation - Dừng mô phỏng
Cộng đồng làm nổi bật sự nhầm lẫn xung quanh các thế hệ TPU
Các cuộc thảo luận kỹ thuật đã tiết lộ sự nhầm lẫn rộng rãi về các loại TPU khác nhau mà Google đã phát triển qua các năm. Các thành viên cộng đồng lưu ý rằng nhiều người nhầm lẫn giữa các thiết bị Edge TPU của Google, được thiết kế cho các ứng dụng di động và nhúng, với các TPU trung tâm dữ liệu khổng lồ được sử dụng để huấn luyện các mô hình AI lớn.
Trang web này nhầm lẫn giữa công cụ suy luận trong Edge TPU với TPU trung tâm dữ liệu. Chúng là hai dự án không liên quan.
Sự nhầm lẫn này xuất phát từ việc Google sử dụng thương hiệu TPU trên các danh mục sản phẩm rất khác nhau, từ các chip điện toán biên nhỏ bé đến các cụm siêu máy tính có kích thước cả phòng.
Khả năng TPU hiện đại vượt xa thiết kế ban đầu
Sự tương phản giữa khả năng của OpenTPU và các TPU hiện đại của Google minh họa tốc độ tiến hóa nhanh chóng của phần cứng AI. Trong khi OpenTPU hỗ trợ phép nhân ma trận cơ bản và các hàm kích hoạt đơn giản như ReLU và sigmoid, nó thiếu các phép toán tích chập, pooling và chuẩn hóa có thể lập trình là tiêu chuẩn trong các bộ tăng tốc AI đương đại.
Các TPU hiện đại của Google đã tiến hóa xa hơn nhiều so với thiết kế chỉ suy luận đã truyền cảm hứng cho OpenTPU. Các thế hệ hiện tại xử lý cả huấn luyện và suy luận cho các mô hình ngôn ngữ khổng lồ, với các hệ thống TPU v4 cung cấp hơn 1.200 GB/s băng thông bộ nhớ so với thông số kỹ thuật khiêm tốn hơn nhiều của TPU ban đầu năm 2015.
So sánh Sự phát triển của TPU:
Thế hệ | Băng thông Bộ nhớ | Mục đích Chính | Năm |
---|---|---|---|
TPU v1 (Phiên bản gốc) | Không được chỉ định | Chỉ suy luận | 2015 |
TPU v3 | 900 GB/s | Huấn luyện & Suy luận | ~2018 |
TPU v4 | 1,200 GB/s | Huấn luyện & Suy luận | ~2020 |
Giá trị học thuật vẫn tồn tại dù có khoảng cách công nghệ
Mặc dù dựa trên công nghệ gần một thập kỷ tuổi, OpenTPU vẫn tiếp tục phục vụ mục đích giáo dục cho sinh viên và nhà nghiên cứu nghiên cứu kiến trúc máy tính. Dự án cung cấp một triển khai hoàn chỉnh, hoạt động được, minh họa các khái niệm cơ bản về mảng systolic, hệ thống phân cấp bộ nhớ chuyên biệt và mô hình thực thi xác định vẫn có liên quan trong thiết kế bộ tăng tốc AI hiện đại.
Việc dự án sử dụng PyRTL để mô tả phần cứng cũng làm cho nó dễ tiếp cận với các nhà nghiên cứu có thể không quen thuộc với các ngôn ngữ mô tả phần cứng truyền thống như Verilog hoặc VHDL.
Thông số kỹ thuật OpenTPU:
- Đơn vị nhân ma trận: Mảng có thể tham số hóa các bộ nhân số nguyên 8-bit
- Cấu hình mặc định: Kích thước ma trận 8x8 hoặc 16x16 (có thể cấu hình lên đến 256x256)
- Bộ nhớ: Bộ đệm thống nhất và Bộ đệm tích lũy (kích thước có thể cấu hình)
- Các phép toán được hỗ trợ: Nhân ma trận, kích hoạt ReLU, sigmoid
- Tính năng còn thiếu: Tích chập, pooling, chuẩn hóa có thể lập trình
Hướng phát triển tương lai và công nghệ mới nổi
Các cuộc thảo luận cộng đồng đã mở rộng ra ngoài các triển khai silicon truyền thống để khám phá các lựa chọn thay thế kỳ lạ như bộ xử lý dựa trên ống nano carbon và đơn vị xử lý lượng tử. Nghiên cứu gần đây cho thấy rằng các TPU được xây dựng với transistor ống nano carbon có thể đạt được 1 tera-operations mỗi giây mỗi watt ở các nút sản xuất cũ hơn, mặc dù các công nghệ như vậy vẫn chủ yếu là thử nghiệm.
Dự án OpenTPU đứng như một minh chứng cho giá trị của nghiên cứu phần cứng mã nguồn mở, ngay cả khi dựa trên thông tin không đầy đủ về các thiết kế độc quyền. Mặc dù nó có thể không bao giờ sánh được với khả năng của các thế hệ TPU mới nhất của Google, nó vẫn tiếp tục cung cấp cái nhìn sâu sắc về các nguyên tắc cơ bản thúc đẩy việc tăng tốc AI hiện đại.
Tham khảo: UCSB ArchLab OpenTPU Project