Đảo ngược Apple Neural Engine M1: Kết thúc NPU độc lập

Ba năm năm trước, tác giả dừng việc viết driver cho Neural Engine (ANE) của Apple vì cho rằng bộ xử lý này không mang lại giá trị thực tế. Gần đây, anh quyết định quay lại và reverse‑engineer ANE trên chip M1, nhằm vẽ lại toàn bộ kiến trúc tính toán, luồng dữ liệu, jschduler, bộ nhớ và mô hình thực thi.

Anh đưa ra số liệu kỹ thuật: ANE có 16 core tính toán, mỗi core chứa 128 kênh MAC FP16 (hoặc 256 kênh INT8). Với 16 core, tổng cộng 2048 kênh MAC đồng thời, cho phép thực hiện 2048 phép giảm giá trị (reduction) trong một chu kỳ đồng thời.

Mặc dù 16 core là yếu tố quan trọng, nhưng ANE được thiết kế dựa trên dataflow xung quanh các MAC thay vì cấu trúc MAC đơn thuần. Một lớp convolution thực hiện dot product giữa cửa sổ kích hoạt và trọng số, trong khi attention thực hiện dot product giữa query và key. Vì vậy, việc sắp xếp và di chuyển dữ liệu vào/ra MAC quyết định hiệu suất, không phải số lượng MAC. ANE ban đầu tối ưu cho các mô hình CNN có mẫu lặp cố định, nhưng Apple đã điều chỉnh dataflow để nó vẫn hoạt động cho các mô hình transformer, đặc biệt là decode tự động.

Kết luận cho thấy Apple đang di chuyển từ NPU độc lập sang tích hợp các lõi ANE vào GPU, đánh dấu thời kỳ kết thúc cho ANE standalone. Sự nghiên cứu này cung cấp cơ sở cho cộng đồng open‑source Việt Nam có thể nghiên cứu và đóng góp vào việc mở rộng khả năng xử lý AI trên các thiết bị edge.

Nguồn: Hacker News — Biên dịch & tổng hợp: danhbaai.com

Danh Bạ AI
Logo
Register New Account