Tìm hiểu về Neural-network Processing Unit (NPU)

Neural-network Processing Unit (NPU) áp dụng kiến ​​trúc “điện toán song song dựa trên dữ liệu” và đặc biệt hữu hiệu trong việc xử lý các dữ liệu đa phương tiện khối lượng lớn như video và hình ảnh.

Xem video giải thích về Neural-network Processing Unit – NPU, Trí tuệ nhân tạo – AI và Học máy – ML:

Giải pháp hạ tầng Deep Learning, Trí tuệ Nhân tạo - AI

NPU là gì?

Hiện tại đang chỉ mới là giai đoạn đầu của sự bùng nổ các nhu cầu về mạng thần kinh (neural network) và xử lý học máy. CPU/GPU truyền thống có thể thực hiện các tác vụ tương tự, nhưng NPU được tối ưu hóa đặc biệt cho mạng thần kinh có thể hoạt động tốt hơn nhiều so với CPU/GPU. Dần dần, các tác vụ mạng thần kinh tương tự sẽ được thực hiện bởi các đơn vị NPU chuyên dụng.

NPU là bộ xử lý chuyên dụng cho các packet ứng dụng mạng, sử dụng kiến ​​trúc “điện toán song song dựa trên dữ liệu”, đặc biệt xử lý tốt dữ liệu đa phương tiện khối lượng lớn như video và hình ảnh.

NPU cũng là một loại mạch tích hợp, nhưng khác với chức năng đơn lẻ của mạch tích hợp chuyên dụng (ASIC), việc xử lý mạng phức tạp hơn, linh hoạt hơn. Nói chung, chúng ta có thể sử dụng phần mềm hoặc phần cứng phù hợp với đặc điểm của lập trình đặc thù cho xử lý mạng để đạt được mục đích cụ thể.

Điểm nổi bật của NPU là khả năng chạy nhiều luồng song song – NPU được đưa lên một cấp độ khác với việc tối ưu cấp phần cứng đặc biệt, chẳng hạn như cung cấp một số hệ thống bộ nhớ đệm dễ truy cập cho một số nhân xử lý thực sự khác nhau. Các nhân xử lý công suất cao này đơn giản hơn các bộ xử lý “thông thường” vì chúng không cần thực hiện nhiều loại tác vụ. Mộ tập các “tối ưu” này giúp NPU hoạt động hiệu quả hơn, đó là lý do tại sao rất nhiều hoạt động R&D được đưa vào ASIC.

Một trong những lợi thế của NPU là chúng dành phần lớn thời gian để tập trung vào các thuật toán có cấp độ chính xác thấp, kiến ​​trúc luồng dữ liệu mới hoặc khả năng xử lý in-memory. Không giống như GPU, chúng quan tâm đến thông lượng hơn là độ trễ.

Module xử lý của NPU

NPU được thiết kế đặc biệt cho IoT AI để tăng tốc hoạt động của mạng thần kinh và giải quyết vấn đề kém hiệu quả của chip truyền thống trong hoạt động của mạng thần kinh. Bộ xử lý NPU bao gồm các module để thực hiện phép toán nhân và cộng, chức năng kích hoạt, thao tác dữ liệu 2D, giải nén, v.v…

Module phép nhân và phép cộng được sử dụng để tính toán phép nhân và phép cộng ma trận, tích chập (convolution), tích chấm và các hàm khác. Có 64 MAC bên trong NPU và 32 MAC trong SNPU.

Module chức năng kích hoạt được sử dụng để triển khai chức năng kích hoạt trong mạng thần kinh bằng cách sử dụng khớp tham số bậc 12 cao nhất, với 6 MAC bên trong NPU và 3 trong SNPU.

Module vận hành dữ liệu 2D được sử dụng để thực hiện các hoạt động trên mặt phẳng, chẳng hạn như lấy mẫu xuống và sao chép dữ liệu mặt phẳng, v.v. Có 1 MAC và 1 SNPU bên trong NPU.

Module giải nén được sử dụng để giải nén dữ liệu có trọng số. Để giải quyết đặc điểm băng thông bộ nhớ nhỏ trong các thiết bị IoT, các trọng số trong mạng thần kinh được nén trong trình biên dịch NPU, có thể đạt được hiệu ứng nén gấp 6-10 lần mà hầu như không ảnh hưởng đến độ chính xác.

NPU: Nhân tố cốt lõi của AI trên điện thoại di động (smart phone)

Như chúng ta đã biết, hoạt động bình thường của điện thoại di động không thể tách rời con chip SoC, con chip chỉ có kích thước bằng một chiếc vỏ móng tay nhưng lại có đầy đủ thành phần “ruột” bên trong. Các module tích hợp của nó hoạt động cùng nhau để hỗ trợ thực hiện các chức năng cho chiếc điện thoại di động. CPU chịu trách nhiệm chuyển đổi mượt mà các ứng dụng di động, GPU hỗ trợ tải nhanh màn hình game và NPU chịu trách nhiệm đặc biệt trong việc triển khai điện toán AI và ứng dụng AI.

Cũng cần phải nhắc đến Huawei, công ty đầu tiên sử dụng NPU trên điện thoại di động và là công ty đầu tiên tích hợp NPU vào CPU điện thoại di động.

Năm 2017, Huawei ra mắt NPU kiến ​​trúc của riêng mình. So với chế độ điện toán vô hướng và vectơ truyền thống, kiến ​​trúc NPU tự phát triển của Huawei sử dụng 3D Cube để tăng tốc cho điện toán ma trận. Do đó, lượng dữ liệu được tính toán trên mỗi đơn vị thời gian lớn hơn và sức mạnh số học AI trên mỗi đơn vị điện năng tiêu thụ mạnh hơn, đạt được mức độ cải thiện lớn hơn so với CPU và GPU truyền thống, đồng thời đạt được hiệu quả sử dụng năng lượng tốt hơn.

Huawei lần đầu tiên sử dụng NPU của Cambrian cho Mate10 bằng cách tiếp cận bên ngoài. Một năm sau, Huawei tích hợp IP NPU của Cambrian vào mẫu điện thoại 980, và một năm sau, Huawei từ bỏ Cambrian để sử dụng NPU Da Vinci của riêng mình trên mẫu 990.

NPU trong điện thoại Samsung Galaxy cũng được tích hợp vào bộ xử lý di động để khai thác mạng lưới thần kinh tiên tiến và cung cấp mức độ thông minh thị giác cao hơn cho Galaxy S20/S20 +/S20 Ultra và Z Flip. NPU hỗ trợ trình tối ưu hóa cảnh, nâng cao khả năng nhận dạng nội dung trong ảnh và nhắc máy ảnh điều chỉnh theo cài đặt lý tưởng cho đối tượng. Giờ đây nó cũng chính xác hơn so với mẫu Galaxy trước đây. Nó cũng cho phép camera phía trước làm mờ hậu cảnh của ảnh selfie và tạo hiệu ứng xóa phông. Không chỉ vậy, NPU còn hỗ trợ AI Bixby Vision trên thiết bị.

NPU so với GPU

Mặc dù GPU có lợi thế về khả năng tính toán song song nhưng nó không hoạt động một mình và cần có sự đồng xử lý của CPU. Việc xây dựng mô hình mạng thần kinh và luồng dữ liệu vẫn được thực hiện trên CPU. Ngoài ra còn có vấn đề tiêu thụ điện năng cao và kích thước lớn. Hiệu suất càng cao, GPU càng lớn, mức tiêu thụ điện năng càng cao và giá thành càng đắt, điều này sẽ không có ở một số thiết bị nhỏ và thiết bị di động. Do đó, chip NPU chuyên dụng có kích thước nhỏ, tiêu thụ điện năng thấp, hiệu năng và hiệu suất tính toán cao đã ra đời.

NPU hoạt động bằng cách mô phỏng các nơ-ron và khớp thần kinh của con người ở lớp board mạch, đồng thời xử lý trực tiếp các nơ-ron và khớp thần kinh quy mô lớn bằng một bộ lệnh học sâu, trong đó một lệnh sẽ hoàn thành việc xử lý một tập hợp các nơ-ron. So với CPU và GPU, NPU tích hợp khả năng lưu trữ và tính toán thông qua trọng số tiếp hợp, do đó cải thiện hiệu quả xử lý.

Bộ xử lý CPU và GPU cần sử dụng hàng nghìn lệnh để hoàn thành quá trình xử lý nơ-ron. NPU có thể được hoàn thành chỉ bằng một hoặc một vài hướng dẫn nên nó có lợi thế rõ ràng về hiệu quả xử lý của deep learning. Kết quả thử nghiệm cho thấy hiệu năng của NPU gấp 118 lần GPU có cùng mức tiêu thụ điện năng.

Đặc điểm của các đơn vị xử lý khác nhau

  1. CPU – 70% transistor được sử dụng để xây dựng Cache và một phần của bộ điều khiển. Ít đơn vị tính toán, thích hợp cho các hoạt động điều khiển logic.
  2. GPU – Transitor chủ yếu được sử dụng để xây dựng các đơn vị tính toán, có độ phức tạp tính toán thấp, phù hợp cho tính toán song song quy mô lớn. Chủ yếu được sử dụng trong dữ liệu lớn, máy chủ phụ trợ, xử lý hình ảnh.
  3. NPU – mô phỏng tế bào thần kinh ở lớp mạch bán dẫn, thực hiện tích hợp lưu trữ và tính toán theo trọng số khớp thần kinh. Một lệnh hoàn thành việc xử lý một nhóm nơ-ron, nâng cao hiệu quả hoạt động. Chủ yếu được sử dụng trong lĩnh vực truyền thông, dữ liệu lớn, xử lý hình ảnh.
  4. FPGA – logic lập trình, hiệu quả tính toán cao, gần với IO cơ bản hơn. Logic có thể chỉnh sửa thông qua các transistor và liên kết dự phòng. Về cơ bản không cần các tập lệnh, không cần bộ nhớ dùng chung và hiệu quả tính toán cao hơn CPU và GPU. Chủ yếu được sử dụng trong điện thoại thông minh, thiết bị di động cầm tay và ô tô.

Ứng dụng thực tế của NPU

  • Nhận dạng cảnh AI của NPU khi chụp ảnh và chỉnh sửa ảnh bằng điện toán NPU.
  • NPU đánh giá chi tiết nguồn sáng và tối để tổng hợp những cảnh siêu đêm.
  • Hiện thực hóa hoạt động trợ lý giọng nói của NPU.
  • NPU với GPU Turbo xác định trước khung hình tiếp theo để đạt được kết xuất sớm nhằm cải thiện độ mượt của trò chơi.
  • NPU xác định trước thao tác chạm để cải thiện độ nhạy và tay sau.
  • NPU đánh giá sự khác biệt về nhu cầu tốc độ mạng mặt trước và mặt sau với Link Turbo.
  • NPU đánh giá tải kết xuất trò chơi để điều chỉnh độ phân giải một cách thông minh.
  • Giúp NPU tiết kiệm năng lượng bằng cách giảm tải tính toán của AI trong trò chơi.
  • NPU thực hiện lập kế hoạch động cho CPU và GPU.
  • NPU hỗ trợ thúc đẩy quảng cáo dữ liệu lớn.
  • Triển khai chức năng liên kết từ thông minh AI của phương thức nhập liệu thông qua NPU.

Giải thích từng loại đơn vị xử lý

APU: Bộ xử lý tăng tốc, sản phẩm của AMD dành cho chip xử lý hình ảnh tăng tốc.

BPU: Bộ xử lý não, kiến ​​trúc bộ xử lý nhúng hàng đầu của Horizon.

CPU: Bộ xử lý trung tâm, sản phẩm chủ đạo của lõi PC.

DPU: Bộ xử lý luồng dữ liệu, một kiến ​​trúc AI do Wave Computing đề xuất.

FPU: Bộ xử lý nổi, mô-đun dấu phẩy động trong các bộ xử lý đa năng.

GPU: Bộ xử lý đồ họa, với kiến ​​trúc SIMD đa luồng, được tạo ra để xử lý đồ họa.

HPU: Bộ xử lý ảnh ba chiều, chip điện toán ảnh ba chiều và thiết bị của Microsoft.

IPU: Bộ xử lý thông minh, khoản đầu tư của Deep Mind vào các sản phẩm bộ xử lý AI của Graphcore.

MPU/MCU: Bộ vi xử lý/vi điều khiển, thường được sử dụng cho các ứng dụng điện toán thấp của các sản phẩm kiến ​​trúc máy tính RISC , chẳng hạn như bộ xử lý dòng ARM-M .

NPU: Bộ xử lý mạng thần kinh, thuật ngữ chung cho một loại bộ xử lý mới dựa trên thuật toán và khả năng tăng tốc mạng thần kinh, chẳng hạn như dòng diannao của Viện Máy tính, Viện Hàn lâm Khoa học Trung Quốc/Cambrian.

RPU: Bộ xử lý vô tuyến Bộ xử lý vô tuyến, một bộ sưu tập Wifi/Bluetooth/FM/bộ xử lý dưới dạng một bộ xử lý duy nhất của Imagination Technologies.

TPU: Tensor Treatment Unit, bộ xử lý chuyên dụng để tăng tốc các thuật toán trí tuệ nhân tạo của Google. TPU dành cho suy luận thế hệ hiện tại, thế hệ thứ hai dành cho đào tạo.

VPU: Bộ xử lý Vector, một con chip chuyên dụng để tăng tốc xử lý hình ảnh và trí tuệ nhân tạo do Movidius, một công ty được Intel mua lại, ra mắt.

WPU: Xử lý có thể đeo, Ineda Systems đã ra mắt các sản phẩm hệ thống trên chip có thể đeo, bao gồm CPU GPU/MIPS và IP khác.

XPU: Khả năng tăng tốc đám mây thông minh FPGA của Baidu và Xilinx được công bố tại Hotchips 2017, chứa 256 nhân.

ZPU: Bộ xử lý Zylin, bộ xử lý nguồn mở 32 bit của Zylin của Na Uy.

____
Bài viết liên quan
Góp ý / Liên hệ tác giả