Firma Google zaprezentowała otwartą platformę Coral NPU (Neural Processing Unit), oferującą otwarty sprzętowy akcelerator modeli uczenia maszynowego oraz narzędzia programowe do jego użycia z typowymi silnikami AI. Coral można wykorzystać jako podstawę do tworzenia energooszczędnych systemów na chipie (SoC), przeznaczonych do zastosowań w Internecie Rzeczy, obliczeniach brzegowych oraz na płytach z sensorami, jak również w konsumenckich urządzeniach noszonych o bardzo niskim zużyciu energii, takich jak słuchawki, okulary rozszerzonej rzeczywistości i smartwatche. Osiągnięcia projektu są udostępniane na licencji Apache 2.0.
Coral NPU ma na celu wykonywanie aplikacji AI działających na urządzeniach przenośnych z minimalnym zużyciem energii. Podstawowa implementacja Coral NPU zapewnia wydajność 512 miliardów operacji na sekundę (GOPS) przy zużyciu zaledwie kilku miliwatów energii. NPU został zaprojektowany z myślą o elastycznej modyfikacji architektury w zależności od potrzeb producentów SoC. Pierwszym producentem, który rozpocznie produkcję chipów opartych na Coral NPU, będzie firma Synaptics, która zapowiedziała linię procesorów do urządzeń Internetu Rzeczy Astra SL2610, w tym podsystem Torq NPU, zrealizowany na bazie architektury Coral NPU.
W typowych zastosowaniach Coral NPU wspomniano o wykorzystaniu AI do przetwarzania obrazów i dźwięku, interakcji z użytkownikami oraz rozpoznawania kontekstu. Na przykład na urządzeniach mogą działać duże modele językowe oraz aplikacje do rozpoznawania twarzy i obiektów, wyszukiwania wizualnego, rozpoznawania mowy, tłumaczenia na żywo, transkrypcji mowy, wydobywania słów kluczowych z mowy, zarządzania gestami i komendami głosowymi, a także określania aktywności użytkownika (chodzenie, bieganie, sen) i rodzaju otoczenia (w domu, na zewnątrz).
W NPU zastosowano 32-bitową architekturę zestawu poleceń RISC-V RV32IMF_Zve32x, magistralę AXI4, czterostopniowy potok przetwarzania instrukcji z uporządkowanym przydzielaniem, nieuporządkowanym finalizowaniem wykonania instrukcji, czterowątkowym skalarowym oraz dwu-ścieżkowym wektorowym rozdzielaniem. Procesor obsługuje operacje SIMD do równoczesnego przetwarzania 128-bitowych wektorów i jest wyposażony w 8 KB pamięci ITCM dla instrukcji oraz 32 KB pamięci DTCM dla danych.

NPU składa się z trzech współpracujących komponentów procesorowych:
- Rdzeń do obliczeń skalarowych – lekki programowalny front-end RISC-V w języku C, zarządzający przepływami danych do głównych rdzeni i wykorzystujący model "wykonywania do zakończenia" (run-to-completion), zapewniający funkcjonalność tradycyjnych CPU oraz ultra-niskie zużycie energii.
- Wektorowy współprocesor SIMD, wspierający wektorowe rozszerzenia zestawu instrukcji RISC-V (RVV v1.0), umożliwiający jednoczesne wykonywanie wielu operacji na dużych zbiorach danych.
- Współprocesor macierzowy, skutecznie wykonujący operacje macierzowego mnożenia-sumy (MAC), zaprojektowany w celu przyspieszenia podstawowych operacji sieci neuronowych.

Dla programistów aplikacji przygotowano zestaw kompilatorów modeli AI (IREE i TFLM), kompilator programów w języku C oraz symulator. Wspierana jest kompilacja modeli używanych w aplikacjach AI opartych na frameworkach TensorFlow, JAX i PyTorch. Model kompilowany jest do uniwersalnego pośredniego przedstawienia, które następnie za pomocą LLVM przekształcane jest w niskopoziomowy zestaw instrukcji RISC-V, obsługiwany w Coral NPU.

Źródło: opennet.ru
