功耗是邊緣人工智能 (AI) 應(yīng)用的關(guān)鍵因素,其中整個(gè)系統(tǒng)由小型電池供電,預(yù)計(jì)無(wú)需充電或更換電池即可運(yùn)行數(shù)月。MAX78002超低功耗AI微控制器專為物聯(lián)網(wǎng)邊緣的此類應(yīng)用而設(shè)計(jì)。本文介紹了各種選項(xiàng),使用戶能夠在MAX78002上開(kāi)發(fā)功耗優(yōu)化應(yīng)用,并給出了基準(zhǔn)測(cè)試示例。
介紹
MAX78002是一款先進(jìn)的片上系統(tǒng),具有帶FPU CPU的Arm Cortex-M4和超低功耗深度神經(jīng)網(wǎng)絡(luò)加速器。這種架構(gòu)能夠在能源受限的環(huán)境中開(kāi)發(fā)非常節(jié)能的 AI 應(yīng)用程序。MAX78002提供多種選項(xiàng)和工作模式,用于創(chuàng)建低功耗應(yīng)用。以下部分概述了這些選項(xiàng),包括MAX78002評(píng)估板的實(shí)際示例和實(shí)際測(cè)量結(jié)果。有關(guān)詳細(xì)信息,請(qǐng)參閱??[5].
MAX78002
MAX78002是MAX78000的后續(xù)產(chǎn)品,在新一代人工智能(AI)微控制器中具有額外的計(jì)算能力和存儲(chǔ)器,能夠以超低功耗和物聯(lián)網(wǎng)(IoT)邊緣執(zhí)行神經(jīng)網(wǎng)絡(luò)。該產(chǎn)品將最節(jié)能的AI處理與ADI公司久經(jīng)考驗(yàn)的超低功耗微控制器相結(jié)合?;谟布木矸e神經(jīng)網(wǎng)絡(luò) (CNN) 加速器使電池供電的應(yīng)用程序能夠執(zhí)行 AI 推理,同時(shí)僅消耗微焦耳的能量。MAX78002具有帶浮點(diǎn)單元(FPU)微控制器的Arm Cortex-M4,可實(shí)現(xiàn)高效的系統(tǒng)控制和超低功耗深度神經(jīng)網(wǎng)絡(luò)加速器。還集成了一個(gè)RISC-V內(nèi)核,可以執(zhí)行應(yīng)用和控制代碼以及驅(qū)動(dòng)CNN加速器。圖1所示為MAX78002的頂層架構(gòu)。
圖1.MAX78002的架構(gòu)
MAX78002評(píng)估板(EV kit)為利用器件功能構(gòu)建新一代AI產(chǎn)品提供了一個(gè)平臺(tái)。它具有板載硬件,如數(shù)字麥克風(fēng)、串行端口、數(shù)字視頻端口 (DVP) 和攝像頭串行接口 (CSI) 攝像頭模塊支持,以及 3.5 英寸觸摸彩色薄膜晶體管 (TFT) 顯示屏[2].它還包括用于監(jiān)控和顯示輔助TFT顯示器上的功率電平的電路。The MAX34417[3]監(jiān)測(cè)MAX78002的電壓和電流,并向MAX32625報(bào)告累積功率,MAX2用作功率數(shù)據(jù)處理器,同時(shí)控制功率顯示,如圖<>所示。
圖2.電源監(jiān)視器。
電源監(jiān)視器以兩種模式運(yùn)行;瞬時(shí),顯示平均功率、電源電流和電壓,以及窗口能量累積,根據(jù)觸發(fā)事件測(cè)量 CNN 功率或系統(tǒng)總功率。瞬時(shí)測(cè)量通常用于快速、粗略地估計(jì)功率水平。窗口測(cè)量非常適合測(cè)量用戶定義的開(kāi)始實(shí)例和完整實(shí)例之間的累積能量。這些事件由MAX78002(P1.6和P1.7)的兩個(gè)通用輸入/輸出(GPIO)切換觸發(fā),這些輸入/輸出連接到MAX32625電源數(shù)據(jù)處理器。有關(guān)使用電源監(jiān)視器的詳細(xì)信息,請(qǐng)參閱[4].
選擇了一個(gè)大型和小型模型示例來(lái)執(zhí)行本文檔中的大多數(shù)測(cè)量:
cifar-100-mobilenet-v2-0.75:MobileNetV73類型架構(gòu)的2層實(shí)現(xiàn),具有1.34M權(quán)重(權(quán)重內(nèi)存容量的56%)用于圖像分類。
kws20_v3_1:用于關(guān)鍵字發(fā)現(xiàn)的 9 層 148K 權(quán)重(權(quán)重內(nèi)存容量的 6%)網(wǎng)絡(luò)。
此外,本文檔末尾還提供了所有已發(fā)布的 SDK 示例的 CNN 功率測(cè)量的表格快照,以供參考。
注:本應(yīng)用筆記中的測(cè)量結(jié)果基于MAX78002評(píng)估板上的示例代碼。用戶平臺(tái)和特定應(yīng)用程序的實(shí)際結(jié)果可能會(huì)有所不同。基準(zhǔn)示例的能量/功率測(cè)量值在3個(gè)不同評(píng)估板的樣本集上觀察到±8.<>%的變化。
MAX78002評(píng)估板跳線設(shè)置,用于功率測(cè)量
為了使用功率監(jiān)測(cè)器測(cè)量不同工作模式下的功耗,MAX78002評(píng)估板跳線設(shè)置如表1和圖3所示。
跳線 | 設(shè)置 | 描述 |
---|---|---|
JP1 | IN | 3V3 MON |
JP2 | OUT | 3V3 SW PM BYPASS |
JP3 | IN | CNN MON |
JP4 | OUT | VCOREA PM BYPASS |
JP5 | OUT | VCOREB- PM BYPASS |
JP6 | OUT | VREGO_A PM BYPASS |
JP7 | IN | VBAT |
JP8 | IN | VREGI |
JP9 | BOTTOM | VREGI - 3V3PM |
JP10 | LEFT | VDDIOH - 3V3PM |
JP11 | IN | VDDA |
JP12 | IN | VDDIO |
JP13 | IN | VCOREB |
JP14 | IN | VCOREA |
JP29 | BOTTOM | VDDB PWR SEL |
JP34 | RIGHT | I2S VDD |
圖3.MAX78002評(píng)估板跳線設(shè)置,用于功率測(cè)量
MAX78002時(shí)鐘和工作模式
MAX78002支持不同的時(shí)鐘源和低功耗工作模式,可聯(lián)合配置以實(shí)現(xiàn)優(yōu)化的功耗和性能。本應(yīng)用筆記簡(jiǎn)要介紹了每種模式,以指導(dǎo)讀者根據(jù)所需應(yīng)用設(shè)置模式。有關(guān)更詳細(xì)的說(shuō)明,請(qǐng)參閱[5].
時(shí)鐘
MAX78000包括多個(gè)可配置時(shí)鐘,供不同外設(shè)使用。根據(jù)需要配置時(shí)鐘源,以選擇性能和電源效率的組合。所選系統(tǒng)振蕩器(SYS_OSC)是大多數(shù)內(nèi)部模塊的時(shí)鐘源。以下振蕩器源可用,可以選擇SYS_OSC:
內(nèi)部初級(jí)振蕩器 (IPO) – 120MHz:
IPO是速度最快的頻率振蕩器,消耗的功率最大。當(dāng)進(jìn)入低功耗模式(LPM)時(shí),該振蕩器可以關(guān)斷。
內(nèi)部次級(jí)振蕩器 (ISO) – 60MHz:
這是一個(gè)低功耗內(nèi)部次級(jí)振蕩器,是SYS_OSC的上電復(fù)位 (PoR) 默認(rèn)值。
內(nèi)部納米環(huán)形振蕩器 (INRO) – 8kHz 至 30kHz:
INRO是一款超低功耗內(nèi)部振蕩器,可以選擇作為SYS_OSC并始終使能。頻率可配置為 8kHz、16kHz 或 30kHz(默認(rèn))。
內(nèi)部波特率振蕩器 (IBRO) – 7.3728MHz:
這是一個(gè)功耗非常低的內(nèi)部振蕩器,可以選擇作為SYS_OSC。該時(shí)鐘可以選擇用作UART的專用波特率時(shí)鐘。
內(nèi)部鎖相環(huán) (IPLL) - 100MHz/200MHz:
IPLL 采用外部 25MHz 晶體工作,提供可用作系統(tǒng)時(shí)鐘的 100MHz 振蕩器以及用于 CNN 時(shí)鐘的 200MHz 時(shí)鐘。請(qǐng)注意,當(dāng) CNN 時(shí)鐘高于 50MHz 時(shí),請(qǐng)使用流水線(在合成工具中默認(rèn)啟用)。
外部基振 (EBO) – 25MHz:
它是一個(gè)可用的外部振蕩器,可以選擇作為SYS_OSC。它還用于IPLL,并可用于ADC時(shí)鐘。
外部實(shí)時(shí)時(shí)鐘振蕩器 (ERTCO) – 32KHz:
這是一個(gè)功耗極低的內(nèi)部振蕩器,是實(shí)時(shí)時(shí)鐘(RTC)的默認(rèn)時(shí)鐘,也可以選擇為SYS_OSC。
外部時(shí)鐘 (EXT_CLK) – 高達(dá) 80MHz:
一個(gè)高達(dá)80MHz的外部時(shí)鐘可用作SYS_OSC。
應(yīng)用程序接口 | 描述 |
---|---|
int MXC_SYS_ClockSourceEnable (mxc_sys_system_clock_t clock) |
Enables a clock source without selecting it; the following sources are available: MXC_SYS_CLOCK_IPO MXC_SYS_CLOCK_IBRO MXC_SYS_CLOCK_ISO MXC_SYS_CLOCK_IPLL MXC_SYS_CLOCK_EBO MXC_SYS_CLOCK_INRO MXC_SYS_CLOCK_ERTCO MXC_SYS_CLOCK_EXTCLK |
int MXC_SYS_Clock_Select (mxc_sys_system_clock_t clock) | Selects the clock source to be used for SYS_CLK. See [6] for the complete list. |
void SystemCoreClockUpdate(void) | Updates the system core clock according to the selected clock source. |
void MXC_SYS_ClockEnable (mxc_sys_periph_clock_t clock) | Enables peripheral clocks. See [6] for the complete list. |
void MXC_SYS_ClockDisable (mxc_sys_periph_clock_t clock) | Disables peripheral clocks. See [6] for more information. |
操作模式
如表3所示,MAX78002包括多種工作模式以優(yōu)化性能和功耗,如MAX78000。有關(guān)操作模式的更多信息,請(qǐng)查看 中的 操作模式 部分[6].
操作模式 | 振蕩器 | 系統(tǒng) 公羊 | CNN Quadrants | CNN RAM | 外設(shè) | 應(yīng)用程序接口 |
---|---|---|---|---|---|---|
Active | 全部可用 | 可用 | 活動(dòng),可配置 | 活動(dòng),可配置 | 可用 | |
Sleep | 全部可用 | 可用 | 活動(dòng),可配置 | 活動(dòng),可配置 | 可用 | MXC_LP_EnterSleepMode() |
LPM |
ISO, IPO, ERTCO, INRO IBRO (默認(rèn)) |
0,1:保留期 2,3:可用 |
活動(dòng),可配置 | 活動(dòng),可配置 | 可用 | MXC_LP_EnterLowPowerMode() |
UPM |
IBRO, ERTCO, INRO |
保留 | 可選關(guān)閉 | 可選擇保留 |
保留, LPUART0, LPTMR0-1 LPWDT0, LPCOMP0-3, GPIO, WUT, RTC 可用 |
MXC_LP_EnterMicroPowerMode() |
待機(jī) | ERTCO | 保留 | 關(guān)閉 | 可選擇保留 |
保留、WUT、RTC、 COMP0、GPIO 可用 |
MXC_LP_EnterStandbyMode() |
備份 | ERCO | 的保留 | 關(guān)閉 | 可選擇保留 |
關(guān)閉、WUT、RTC、 COMP0、GPIO 可用 |
MXC_LP_EnterBackupMode() |
關(guān) | 關(guān)閉 | 關(guān)閉 | 關(guān)閉 | 關(guān)閉 |
關(guān)閉, 可配置 P3.0/1 |
MXC_LP_EnterPowerDownMode() |
VCOREA 電源電壓
VCOREA 的標(biāo)稱電源電壓為 1.1V,這為使用該架構(gòu)支持的上限范圍的大型計(jì)算密集型模型操作 CNN 提供了足夠的裕量。MAX78002評(píng)估板出廠時(shí)提供VCOREA穩(wěn)壓至1.1V。最小CNN輸入電源(VCNNXRAM和VCNNX)為0.99V [1],應(yīng)與VCOREA相同。通常,可以將VCOREA降低到1V,以實(shí)現(xiàn)約15%的節(jié)能。但是,1V 工作電壓取決于 CNN 型號(hào)和工作條件。仔細(xì)測(cè)試功能,以確保特定用例的正確操作。在本文檔中,在VCOREA = 1.1V和1V的情況下進(jìn)行了幾次測(cè)量,以突出差異。
在MAX78002評(píng)估板上,V科里亞設(shè)置為 1.1V (R15 = 21KΩ in[2]) 默認(rèn)情況下。要將其更改為1V,請(qǐng)將R15修改為14.7KΩ。
不同操作模式下的功耗
在開(kāi)發(fā)應(yīng)用時(shí),將MAX78002切換到不同的工作模式,并相應(yīng)地安排任務(wù)以節(jié)省功耗。圖4顯示了不同模式下的功耗。活動(dòng)功率和睡眠功率使用ISO振蕩器在60MHz下測(cè)量。其他低功耗模式在休眠期間采用 ERTCO (32kHz)(API 默認(rèn)值)。GPIO 設(shè)置為輸入。UPM、待機(jī)、備份和斷電模式下的功耗低于要測(cè)量的電源監(jiān)視器的精度范圍。
圖4.不同運(yùn)行模式下的功耗。
還測(cè)試了啟動(dòng)時(shí)間(定義為從上電到開(kāi)始執(zhí)行主代碼的時(shí)間)和喚醒時(shí)間(圖5)。喚醒時(shí)間和啟動(dòng)時(shí)間使用默認(rèn)上電時(shí)鐘(ISO 在 60MHz)測(cè)量。
圖5.不同頻率的啟動(dòng)和喚醒時(shí)間。
喚醒配置
在活動(dòng)模式以外的操作模式下,將喚醒源配置為重新進(jìn)入活動(dòng)模式。LPM 模式在推理過(guò)程中經(jīng)常使用。推理完成后,CNN 會(huì)根據(jù)需要喚醒 Arm 或 RISC-V。以下代碼片段顯示了該序列:
Example of Arm wakeup from LPM by CNN: load_input(); // Load data input cnn_start(); // Run inference // ARM goes to LPM and waits for CNN interrupt to wakeup SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=0 while (cnn_time == 0) __WFI(); // Wait for CNN Example of RISC-V wakeup from by CNN: load_input(); // Load data input cnn_start(); // Run inference // RISC-V sleeps and waits for CNN interrupt to wakeup while (cnn_time == 0) asm volatile("wfi"); // Wait for CNN
美國(guó)有線電視新聞網(wǎng)電源
人工智能應(yīng)用程序的核心是由CNN加速器執(zhí)行的推理。根據(jù)應(yīng)用程序的不同,推理可以連續(xù)地對(duì)傳入的數(shù)據(jù)進(jìn)行,也可以按特定的時(shí)間間隔定期進(jìn)行。加載內(nèi)核(權(quán)重)通常完成一次,并保留在CNN內(nèi)存中。但是,根據(jù)應(yīng)用和占空比,選擇在每次運(yùn)行推理之前重新加載權(quán)重。
CNN 功耗分三個(gè)階段測(cè)量:
加載權(quán)重:在活動(dòng)模式下將權(quán)重加載到 CNN 內(nèi)存中發(fā)生一次。
加載輸入數(shù)據(jù):每次有新的推理時(shí)。
推理:對(duì)輸入數(shù)據(jù)進(jìn)行操作并生成結(jié)果。
CNN 時(shí)鐘源和頻率
默認(rèn)情況下,IPLL 時(shí)鐘由合成工具啟用并用作 200MHz 的 CNN 時(shí)鐘源。為了在加載權(quán)重和數(shù)據(jù)輸入期間節(jié)省能量,時(shí)鐘在加載之前降低到 50MHz(除以 4),并在推理開(kāi)始之前設(shè)置回 200MHz(除以 1)。
綜合工具中提供了以下命令行選項(xiàng)來(lái)控制時(shí)鐘源、時(shí)鐘頻率和管道:
[--no-pll]:它使用 IPO 作為時(shí)鐘源。IPO 時(shí)鐘為 120MHz,內(nèi)部固定分頻 2,為 CNN 生成 60MHz 時(shí)鐘。在此模式下,CNN 時(shí)鐘分頻器設(shè)置為 1 以進(jìn)行加載和推理。
請(qǐng)注意,默認(rèn)情況下使用此選項(xiàng)啟用管道,即使時(shí)鐘 div 也設(shè)置為 4 或更高。這會(huì)導(dǎo)致不必要的過(guò)度功耗,因?yàn)榱魉€僅適用于高于50MHz的CNN時(shí)鐘。
如果管道也被禁用 [--no-pipeline],則在沒(méi)有管道的情況下使用 IPO 時(shí),它將 CNN 時(shí)鐘分頻器設(shè)置為 2 (30MHz) 作為允許的最高 CNN 時(shí)鐘頻率。在這種情況下,選擇相同的時(shí)鐘分頻器來(lái)加載輸入和權(quán)重以及推理。
[--no-pipeline]:禁用 CNN 管道的使用。IPLL 仍被選為時(shí)鐘源。但是,它將時(shí)鐘頻率調(diào)整為 50MHz(除以 4)以進(jìn)行加載和推理。
[--max-speed]:它使用最大速度 (200MHz) 進(jìn)行加載和 IPLL 推理。
[--clock-div k]:此選項(xiàng)設(shè)置 CNN 時(shí)鐘分頻器 k(k 可以是 1,2,4,8,16)進(jìn)行推理。用于加載權(quán)重和輸入的時(shí)鐘分頻器保持在 4。請(qǐng)注意,如果推理分頻器設(shè)置為 4 或更高,則不再需要管道,應(yīng)顯式禁用該管道以節(jié)省功耗。
改變時(shí)鐘源和頻率對(duì)加載重量和輸入數(shù)據(jù)的能量和時(shí)間的影響如圖6至圖9所示,對(duì)于V??评飦? 1.1V 和 V科里亞= 1V。在兩個(gè)測(cè)試基準(zhǔn)(cifar-100-mobilenet-v2-0.75和KWS20-v3-1)上觀察到相似的能量分布。
圖6.加載為具有不同時(shí)鐘源和頻率的移動(dòng)網(wǎng)絡(luò)加權(quán)能量和時(shí)間。
圖7.輸入具有不同時(shí)鐘源和頻率的移動(dòng)網(wǎng)絡(luò)的加載能量和時(shí)間。
圖8.加載為具有不同時(shí)鐘源和頻率的移動(dòng)網(wǎng)絡(luò)加權(quán)能量和時(shí)間。
圖9.輸入具有不同時(shí)鐘源和頻率的KWS20的加載能量和時(shí)間。
如圖所示,使用帶有等于2(30MHz)的CNN時(shí)鐘分頻器的IPO可提供最低的加載能量,同時(shí)增加加載時(shí)間。根據(jù)應(yīng)用程序,為加載權(quán)重選擇不同的配置,加載權(quán)重發(fā)生一次(如果保留權(quán)重),以及加載輸入,在每次推理之前執(zhí)行。
美國(guó)有線電視新聞網(wǎng)管道
當(dāng)使用 IPLL 時(shí)鐘在最短的時(shí)間內(nèi)生成推理結(jié)果時(shí),CNN 可以以高達(dá) 200MHz 的頻率運(yùn)行。權(quán)衡是較高時(shí)鐘頻率下的功耗。MAX78002中,當(dāng)CNN時(shí)鐘設(shè)置為高于50MHz時(shí),使能CNN流水線。啟用 CNN 流水線會(huì)增加推理功耗,建議僅對(duì) 50MHz 以上的 CNN 頻率使用。合成工具默認(rèn)啟用 CNN 流水線,并使用 200MHz 的 IPLL 時(shí)鐘作為 CNN 時(shí)鐘源。如前所述選擇選項(xiàng) [--no-pipeline] 以禁用高達(dá) 50MHz 的 CNN 操作的管道。
圖10和圖11顯示了時(shí)鐘源和頻率對(duì)V的推理能量和時(shí)間的影響科里亞= 1.1V 和 V科里亞= 1V。僅當(dāng)選擇 100MHz 或更高的 IPLL 時(shí)鐘時(shí),才會(huì)啟用流水線。通常,在最高時(shí)鐘(200MHz)下使用IPLL會(huì)產(chǎn)生最低的能量和最快的執(zhí)行速度。
圖 10.具有不同時(shí)鐘源和頻率的移動(dòng)網(wǎng)絡(luò)的推理能量和時(shí)間。
圖 11.具有不同時(shí)鐘源和頻率的KWS20的推理能量和時(shí)間。
在 CNN 內(nèi)存中保留權(quán)重
四個(gè) CNN RAM(CNN 權(quán)重存儲(chǔ))中的每一個(gè)都可以配置為在 UPM、備份或備用(默認(rèn)情況下不保留)的情況下保留權(quán)重。無(wú)論 CNN 保留設(shè)置如何,CNN 配置寄存器在任何這些節(jié)能模式(SLEEP 和 LPM 除外)中都會(huì)丟失,并且必須重新加載。
以下代碼片段顯示了如何為 UPM、備份或待機(jī)啟用 CNN RAM 保留。配置 CNN 內(nèi)存保留后,將保持權(quán)重。對(duì)于每個(gè)活動(dòng)周期,僅重新加載偏差和 CNN 配置,并對(duì)新的輸入數(shù)據(jù)執(zhí)行新的推理。圖12顯示了有或沒(méi)有CNN內(nèi)存保留的不同模式下的功耗。還報(bào)告了禁用 CNN 時(shí)鐘的效果。
圖 12.CNN內(nèi)存保持能力。
對(duì)于某些低占空比應(yīng)用,選擇在每個(gè)活動(dòng)周期中重新加載重量,以進(jìn)一步降低睡眠期間的功耗。在這種情況下,請(qǐng)考慮用于重復(fù)重新加載權(quán)重的額外功率的影響(如大型和小型網(wǎng)絡(luò)示例的圖 6)。
Example: Loading weights and configuring CNN with CNN Mask RAMs retention
// Load kernels once
cnn_init(); // Bring state machine into initial state
cnn_load_weights(); // Load kernels
cnn_load_bias(); //
cnn_configure(); // Configure state machine
// Enable source of waking up, e.g. push button
PB_RegisterCallback(0, buttonHandler);
…
while(1){
// Disable CNN
cnn_disable();
// CNN Retention on:
MXC_GCFR->reg2 = 0xf0 << MXC_F_GCFR_REG2_CNNX16_0_DATA_RET_EN_POS;
// Go to sleep, e.g. Micro Power.
MXC_LP_EnterMicroPowerMode();
// Waking up after interrupt, e.g. push button – CNN memory is retained for kernels.
// bias & configuration are not retained.
// Enable CNN, set the clock source and CNN clock divider,
// To save power for loading, divider can be set to 4
cnn_enable(MXC_S_GCR_PCLKDIV_CNNCLKSEL_IPLL,
MXC_S_GCR_PCLKDIV_CNNCLKDIV_DIV4);
cnn_init(); // Bring state machine into consistent state
cnn_load_bias();
cnn_configure(); // Configure state machine
// Load input data
load_input();
// Change CNN clock divider before inference if needed
// CNN clock: PLL (200 MHz) div 1
MXC_GCR->pclkdiv = (MXC_GCR->pclkdiv & ~(MXC_F_GCR_PCLKDIV_CNNCLKDIV |
MXC_F_GCR_PCLKDIV_CNNCLKSEL)) |
MXC_S_GCR_PCLKDIV_CNNCLKDIV_DIV1 |
MXC_S_GCR_PCLKDIV_CNNCLKSEL_IPLL;
cnn_start(); // Run inference
SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=0
__WFI(); // Wait for CNN Interrupt to wake for sleep
}
開(kāi)發(fā)工具包示例的測(cè)量結(jié)果
MAX78002 SDK示例通過(guò)頻率合成工具中的選項(xiàng)--energy進(jìn)行再生。此選項(xiàng)添加代碼以切換路由到電源監(jiān)視器電路的 GPIO,以啟用 CNN 功率模式下的功率測(cè)量。表 4 顯示了加載權(quán)重、加載輸入和推理的結(jié)果。五世科里亞在此實(shí)驗(yàn)中設(shè)置為 1V。其他配置是默認(rèn)配置。
表 4.多個(gè) SDK 示例的測(cè)量結(jié)果
總結(jié)
本應(yīng)用筆記介紹了MAX78002支持的一些功耗優(yōu)化技術(shù),用于創(chuàng)建低功耗應(yīng)用和測(cè)量結(jié)果。以下摘要重點(diǎn)介紹了改善功耗的一般建議:
對(duì)于推理能量來(lái)說(shuō),速度越快通常越好。使用更高的時(shí)鐘速率(例如,200MHz的IPLL)可以加快執(zhí)行速度,并減少恒定靜態(tài)功耗的影響,從而改善整體功耗。
CNN 時(shí)鐘源和分頻器在加載和推理期間可能不同。在30MHz的IPO下,加載數(shù)據(jù)和權(quán)重的能耗最低。代價(jià)是加載時(shí)間增加。
在沒(méi)有活動(dòng)時(shí)利用 UPM、備份和備用。當(dāng) ARM Cortex M4 可以休眠,而關(guān)鍵外設(shè)繼續(xù)運(yùn)行時(shí),請(qǐng)考慮 LPM。
如果活動(dòng)的占空比不是很低,請(qǐng)加載內(nèi)核(權(quán)重)一次并將其保留在內(nèi)存中,以避免在 UPM、備份和待機(jī)模式下重新加載能量。否則,請(qǐng)考慮在每個(gè)活動(dòng)周期中重新加載重量的能量。有關(guān) CNN 內(nèi)存保留能量,請(qǐng)參見(jiàn)圖 12。
確保在 CNN 處理完成后關(guān)閉 CNN 時(shí)鐘,并在下一個(gè)活動(dòng)期間再次訪問(wèn) CNN 之前將其打開(kāi)。
盡可能將VCOREA從1.1V降至1V,以降低功耗。請(qǐng)謹(jǐn)慎使用,以確保 CNN 在目標(biāo)應(yīng)用條件下正常運(yùn)行。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7936瀏覽量
154264 -
人工智能
+關(guān)注
關(guān)注
1805文章
48932瀏覽量
248252 -
電池
+關(guān)注
關(guān)注
84文章
11052瀏覽量
134622
發(fā)布評(píng)論請(qǐng)先 登錄
芯品#MAX78002 新型AI MCU,能夠使神經(jīng)網(wǎng)絡(luò)以超低功耗運(yùn)行

使用 ADI 的 MAX78002 MCU 開(kāi)發(fā)邊緣 AI 應(yīng)用

MAX7800X AI 微控制器開(kāi)發(fā)人員資源

嵌入式DSP設(shè)計(jì)中的功耗優(yōu)化怎么處理
在MAX78000上開(kāi)發(fā)功耗優(yōu)化應(yīng)用

在MAX78000上開(kāi)發(fā)功耗優(yōu)化應(yīng)用

ADI超低功耗人工智能(AI)MCU MAX78002介紹
MAX78002人工智能微控制器特性亮點(diǎn)概述

ARM開(kāi)發(fā)板的功耗分析與優(yōu)化
SEGGER為ADI超低功耗微控制器提供SystemView軟件分析工具
用 ADI 的 MAX78002 MCU 開(kāi)發(fā)邊緣人工智能應(yīng)用

MAX78002帶有低功耗卷積神經(jīng)網(wǎng)絡(luò)加速器的人工智能微控制器技術(shù)手冊(cè)

評(píng)論