跳轉到

IPRO7AI

IPRO7AI 與 IPRO7 是同一顆晶粒:IPRO7AI 啟用 NPU,並在封裝內放入 8 MB PSRAM 與 Flash,其餘規格(CPU、無線、周邊)與 IPRO7 相同。它是 IPRO7AI Reef EVK 的主晶片;本版 SDK 用它執行相機影像辨識、IPRO AI Teach 的三種教學工具與 IPRO AI Studio 的板端推論。

0.1 TOPSNPU
8 MB封裝內 PSRAM
IPRO7AI燒錄時的 --chip-variant
libai.a預編譯推論執行庫

與 IPRO7 的差異

項目 IPRO7AI
NPU 啟用,0.1 TOPS;NPU 的 activation 緩衝區放在 PSRAM,所以 AI 應用一定要開 PSRAM
PSRAM 封裝內 8 MB,位址 0x1e000000
Flash 封裝內。SDK 預設連結 1 MB 版面;設定 CONFIG_IPRO7_FLASH_2M=y 改用 2 MB 版面。ipro7ai_reef_demo 的 .config 註明:開機訊息回報 JEDEC ID 0xEF4015(2 MB)時可加入這一行
燒錄 --chip-variant IPRO7AI,選用這顆晶片的 Flash 腳位(工具設定檔中 flash_pin 為 0x9)
其他 CPU、記憶體配置、無線與周邊與 IPRO7 相同,見 IPRO7 主要規格

Reef 的應用設定中,ipro_reef_teach、ipro_agora_sentino 的 .config 與 ipro_ble_remote、ipro_le_audio_headset、ipro_ai_link 的 defconfig_reef 已設定 2 MB 版面,其他 Reef 設定使用 1 MB 版面。

NPU 與推論執行庫

推論執行庫以預編譯函式庫 components/ai/lib/libai.a 提供,公開標頭為 components/ai/iproai_def.h 與 components/ai/ 下各模組的標頭;套件不含推論執行庫原始碼。V2.2.1 的 components/ai 是 IPRO Edge AI 平台 V2.0:執行庫、每個工具一個槽位的模型儲存區、輸入來源、前處理與應用框架。等待 NPU 有時間上限,逾時會重置 NPU 區塊並進入安全的故障狀態。CPU 端推論另有 TensorFlow Lite Micro、NMSIS-NN 與 TinyMaix(components/3rdparty/)。

啟用 AI

在應用的 .config 明確寫出下列設定。本 SDK 的建置不會套用 Kconfig 的 select,所以 PSRAM 不會自動打開:

.config(節錄)
CONFIG_AI_SUPPORT=y          # 連結 components/ai(libai.a)
CONFIG_USE_PSRAM=y           # NPU activation 緩衝區與模型放在 PSRAM
CONFIG_MM_SUPPORT=y          # 使用相機與 ISP 時
CONFIG_AI_MODEL_FROM_FILE=y  # 從 SD 卡載入模型時

ipro_reef_teach 的 .config 與 ipro_ai_link 的 defconfig_reef 是完整的 Reef 範例設定。

模型存放

NPU 使用 .inm 格式的模型,可放在三個位置:

位置 做法 Reef 上的範例
mfg Flash 分割區 燒錄工具以 --mfg 寫入。ipro_reef_teach 使用自己的分割表 partition_reef_teach.toml 與 mfg 配置(模式、聲紋、影像與感測模型各一個槽位),燒錄內容由 mfg_payload.py 產生 ipro_reef_teach
連結進韌體 模型編進映像,不必另外燒錄 ipro7_uvc_cam 的 defconfig_reef_rps
SD 卡 執行時把 .inm 由 FatFS 的 sd:/ 讀入 PSRAM ipro_ai_link 的 defconfig_reef

套件隨附的模型位於 apps/ai/ipro_reef_teach/model/(聲紋模型 model_b.spkb)、tools/teach_web/assets/、apps/platform/ipro7_demo/demo/ai/ai_model/、apps/test/ipro_npu_yolo/src/ 與 apps/ai/ipro7ai_evk_rps/model/。IPRO AI Studio 與 Edge AI 工具隨另外的 IPRO Edge AI 套件提供,不在 SDK 內;模型轉換工具請洽 INTELPRO。

記憶體

同時啟用 AI 與影像(CONFIG_AI_SUPPORT、CONFIG_MM_SUPPORT)時,NPU 的 SRAM 映射在 0x11020000 以上,連結器把 OCRAM 縮為前 64 KB(0x11010000–0x11020000)。應用同時設定 BLE 控制器的 Exchange Memory(CONFIG_EM_SIZE 不為 0)時,OCRAM 再縮為 48 KB,另有一段 64 KB − CONFIG_EM_SIZE 的非保留區。建置時 CMake 會印出實際採用的大小,例如 AI+MM (EM=0): OCRAM=64KB。

Zephyr RTOS 版本未提供 NPU 驅動;NPU 範例都是 FreeRTOS 應用。

在 Reef 上使用 NPU 的範例

範例 Reef 設定 內容
ipro_reef_teach .config IPRO AI Teach 2.0 的板端韌體:image(USB 相機與影像分類)、voice(聲紋)、sensor(感測訊號)三種工具,一次執行一種,由 IPRO AI Studio 操作
ipro7_uvc_cam defconfig_reef_rps USB 網路攝影機,把 NPU 剪刀石頭布的辨識結果畫進影像
ipro_ai_link defconfig_reef IPRO AI Studio「Run on board」的板端韌體:從 sd:/ 載入模型與輸入,經 USB 傳回輸出

其他 NPU 範例以 IPRO7AI EVK 或 IPRO7 EVB 為目標(ipro7ai_evk_person_detect、ipro7ai_evk_rps、ipro7ai_evk_launcher、ipro_speaker_recog、ipro_npu_yolo、ipro_ai_bench),見範例。

搭載 IPRO7AI 的開發板

開發板 封裝 板級設定
IPRO7AI Reef EVK V4.0 QFN56,焊在板上 CONFIG_IPRO7AI_REEF=y

IPRO7AI EVK(CONFIG_IPRO7AI_EVK=y)也使用這顆晶片;供應請洽 INTELPRO。

相關文件