Neural Processing Unit (NPU)
Bộ xử lý nơ-ron (NPU) là bộ xử lý được thiết kế cho các phép toán mạng nơ-ron, giúp chạy hiệu quả các model đã lượng tử hóa trên điện thoại, PC và camera.
Bộ xử lý thần kinh (NPU) là bộ xử lý được thiết kế để chạy mạng thần kinh, xây dựng quanh các mảng lớn gồm đơn vị nhân-tích-lũy được cấp dữ liệu từ bộ nhớ trên chip. Hầu hết NPU là các khối nằm trong system-on-chip cạnh CPU và GPU, nơi chúng chạy suy luận cho các tính năng camera, giọng nói và thị giác với mức tiêu thụ điện chỉ bằng một phần so với hai bộ xử lý kia. Kirin 970 của Huawei và A11 Bionic của Apple—có Neural Engine được đánh giá đạt 600 tỷ phép toán mỗi giây—đưa NPU vào điện thoại từ năm 2017; sau đó là NPU Hexagon của Qualcomm, NPU của Intel trong các bộ xử lý laptop Core Ultra từ tháng 12 năm 2023 và chip Ryzen AI của AMD. Máy tính Copilot+ của Microsoft yêu cầu NPU có hiệu năng trên 40 nghìn tỷ phép toán mỗi giây (TOPS). Thuật ngữ này cũng chỉ các chip trung tâm dữ liệu: Huawei gọi bộ tăng tốc trung tâm dữ liệu Ascend của mình là NPU và dùng chúng để huấn luyện model lớn.
NPU khác CPU và GPU như thế nào#
Suy luận deep learning chủ yếu gồm phép nhân ma trận và phép tích chập trên dữ liệu có thể dự đoán, vì vậy NPU loại bỏ phần lớn logic điều khiển và bộ nhớ đệm mà CPU cần để chạy mã tổng quát, cũng như tính linh hoạt mà GPU duy trì cho đồ họa. NPU dùng phần silicon đó cho các mảng tính toán chức năng cố định, đồng thời giữ trọng số và activation trong bộ nhớ cục bộ vì di chuyển dữ liệu tiêu tốn năng lượng nhiều hơn tính toán trên dữ liệu. NPU cũng tính toán ở độ chính xác thấp, chủ yếu là INT8 và FP16; vì thế, model thường cần được lượng tử hóa trước khi chạy trên NPU và thông lượng NPU thường được công bố bằng INT8 TOPS. Chẳng hạn, Edge TPU Coral của Google đạt 4 TOPS ở mức 2 TOPS mỗi watt.
- CPU: Chạy được mọi loại mã, xử lý các thao tác NPU không hỗ trợ và là bộ xử lý chậm nhất trong ba loại khi thực hiện phép tính ma trận lớn.
- GPU: Bộ xử lý song song có thể lập trình, huấn luyện và chạy model ở độ chính xác dấu phẩy động với thông lượng cao, nhưng tiêu thụ điện nhiều hơn NPU.
- TPU: Họ bộ tăng tốc ma trận của Google. Cloud TPU huấn luyện và phục vụ model trong trung tâm dữ liệu, còn Edge TPU về cơ bản là một NPU.
- Chip neuromorphic: Xử lý các xung từ mạng thần kinh xung và phù hợp với cảm biến vận hành theo sự kiện; đây là mô hình tính toán khác với phép tính ma trận dày đặc của NPU.
Chạy model trên NPU#
NPU chạy chương trình đã biên dịch thay vì đồ thị PyTorch hoặc ONNX. Trình biên dịch của nhà cung cấp chuyển đổi mạng, thực hiện trước hoặc khi runtime tải mạng, thường lượng tử hóa mạng thành INT8 bằng ảnh hiệu chuẩn, thường cố định shape đầu vào và ánh xạ từng layer lên phần cứng. Các layer mà NPU không hỗ trợ được chuyển lại cho CPU hoặc GPU; mỗi lần chuyển như vậy sẽ sao chép tensor giữa các bộ xử lý:
Mỗi lần chuyển dự phòng đều phát sinh truyền dữ liệu và khiến một bộ xử lý phải chờ bộ xử lý kia, vì vậy kiến trúc cho thiết bị biên ưu tiên các toán tử tiêu chuẩn như phép tích chập, activation thuộc họ ReLU và pooling. Các runtime như ONNX Runtime, Core ML của Apple, LiteRT của Google và OpenVINO của Intel xử lý việc phân chia này, đồng thời chọn NPU khi có sẵn.
Ứng dụng của NPU#
Điện thoại thông minh dùng NPU cho nhiếp ảnh điện toán, nhận dạng giọng nói trên thiết bị, nhận diện khuôn mặt và dịch trực tiếp; nhờ đó, hình ảnh và âm thanh được lưu trên thiết bị để bảo vệ quyền riêng tư dữ liệu. Trên PC AI, Windows Studio Effects chạy hiệu ứng làm mờ nền, chỉnh sửa giao tiếp bằng mắt và tự động căn khung hình cho cuộc gọi video trên NPU, giải phóng CPU và GPU. Trong edge AI, NPU của Rockchip, Hailo và DEEPX chạy phát hiện vật thể bên trong camera an ninh, drone và robot mà không cần kết nối mạng.
Ultralytics YOLO26 xuất sang các định dạng đã biên dịch mà những NPU này yêu cầu thông qua chế độ export, bao gồm OpenVINO cho NPU Intel, Core ML cho Apple Neural Engine, QNN cho NPU Hexagon của Qualcomm, RKNN cho Rockchip và định dạng .om cho Huawei Ascend. Model cũng được huấn luyện trên NPU Ascend, được chọn bằng device="npu:0" hoặc device="npu:0,1" khi huấn luyện đa NPU.










