0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

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

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-17 11:20 ? 次閱讀

功耗是邊緣人工智能AI) 應用的關鍵因素,其中整個系統(tǒng)由小型電池供電,預計無需充電或更換電池即可運行數(shù)月。MAX78000超低功耗AI微控制器專為物聯(lián)網(wǎng)邊緣的此類應用而設計。本文介紹了各種配置,使用戶能夠在MAX78000上開發(fā)功耗優(yōu)化應用,并提供基準測試示例。功耗優(yōu)化方法應用于兩個案例研究應用:20個關鍵詞的關鍵詞發(fā)現(xiàn)(KWS20)和人臉識別(FaceID),報告的結(jié)果可作為用戶應用的指南。

介紹

MAX78000為超低功耗微控制器,具有專用卷積神經(jīng)網(wǎng)絡(CNN)加速器。這種架構(gòu)能夠在能源受限的環(huán)境中開發(fā)非常節(jié)能的 AI 應用程序。MAX78000提供多種選擇,便于開發(fā)低功耗應用(詳見數(shù)據(jù)資料[1]),例如可根據(jù)目標應用選擇不同的振蕩器、時鐘源和工作模式。以下部分概述了這些選項,包括MAX78000評估板的實際示例和實際測量結(jié)果。有關詳細信息,請遵循本文檔中的參考資料。

注:本應用筆記給出的測量結(jié)果基于MAX78000評估板上的示例代碼。用戶平臺和特定應用程序的實際結(jié)果可能會有所不同。

MAX78000

MAX78000是新一代AI微控制器,用于以超低功耗執(zhí)行神經(jīng)網(wǎng)絡,并位于物聯(lián)網(wǎng)邊緣。該產(chǎn)品將最節(jié)能的AI處理與Maxim Integrated成熟的超低功耗微控制器相結(jié)合。基于硬件的 CNN 加速器使電池供電的應用程序能夠執(zhí)行 AI 推理,同時僅消耗微焦耳的能量。MAX78000具有帶FPU微控制器的Atarm Cortex-M4,通過超低功耗深度神經(jīng)網(wǎng)絡加速器實現(xiàn)高效的系統(tǒng)控制。還集成了一個RISC-V內(nèi)核,可以執(zhí)行應用和控制代碼以及驅(qū)動CNN加速器。圖1所示為MAX78000的頂層架構(gòu)。

pYYBAGPu8nqARp5uAACo-uh3EhY945.jpg?imgver=1

圖1.MAX78000的結(jié)構(gòu)

MAX78000評估板(EV kit)提供了一個平臺,利用MAX78000的功能構(gòu)建新一代AI器件。評估板具有板載硬件,如數(shù)字麥克風、串行端口、攝像頭模塊支持和3.5英寸觸摸彩色薄膜晶體管TFT)顯示屏[2]。它還包括用于監(jiān)控和顯示功率電平的電路。MAX34417 [3] 監(jiān)測 VCOREA 和 VCOREB 電壓以及

pYYBAGPu8nyAFhiCAABOERtMmcA564.jpg?imgver=1

圖2.電源監(jiān)視器。

MAX78000,并將累積功率報告給MAX32625,MAX2用作電源數(shù)據(jù)處理器,同時控制功率顯示,如圖<>所示。

電源監(jiān)視器以兩種模式運行;瞬時,顯示平均功率、電源電流和電壓,以及窗口能量累積,根據(jù)觸發(fā)事件測量 CNN 功率或總系統(tǒng)功率。瞬時測量通常用于快速、粗略地估計功率電平。另一方面,窗口測量非常適合測量用戶定義的開始實例和完整實例之間的累積能量。這些事件由MAX78000的兩個GPIO(P0.2和P0.3)的切換觸發(fā),這兩個GPIO也連接到LED1和LED2以及MAX32625功率數(shù)據(jù)處理器的端口。有關使用電源監(jiān)視器的詳細信息,請參閱 [4]。

MAX78000時鐘和工作模式

MAX78000支持不同的時鐘源和低功耗工作模式,可聯(lián)合配置以實現(xiàn)優(yōu)化的功耗和性能。本應用筆記簡要介紹了每種模式,以指導讀者根據(jù)所需應用設置模式。有關更詳細的描述,請參閱 [5]。

時鐘

MAX78000包括多個可配置時鐘,供不同外設使用。用戶可以根據(jù)需要配置時鐘源,以選擇性能和電源效率的組合。選定的系統(tǒng)振蕩器(SYS_OSC)是大多數(shù)內(nèi)部模塊的時鐘源。以下振蕩器源可用,可以選擇SYS_OSC:

內(nèi)部初級振蕩器 (IPO) – 100MHz:
IPO 是頻率最快的振蕩器,消耗的功率最大。當進入低功耗模式(LPM)時,該振蕩器可以關斷。

內(nèi)部次級振蕩器 (ISO) – 60MHz:
這是一款低功耗內(nèi)部次級振蕩器,是SYS_OSC的上電復位默認設置。

內(nèi)部納米環(huán)振蕩器 (INRO) – 8kHz-30kHz:
INRO 是一種超低功耗內(nèi)部振蕩器,可以選擇作為SYS_OSC并始終啟用。頻率可配置為 8kHz、16kHz 或 30kHz(默認)。

內(nèi)部波特率振蕩器 (IBRO) – 7.3728MHz:
這是一款功耗非常低的內(nèi)部振蕩器,可以選擇作為SYS_OSC。該時鐘可以選擇用作UART的專用波特率時鐘。

外部實時時鐘振蕩器 (ERTCO) – 32.768kHz:
ERTCO 是一款功耗極低的內(nèi)部振蕩器,可以選擇作為SYS_OSC。ERTCO可以選擇使用32.768kHz輸入時鐘或8kHz獨立納米環(huán)振蕩器代替外部晶體。該振蕩器是實時時鐘 (RTC) 的默認時鐘,一旦啟用 RTC,就會自動啟用。

所選SYS_OSC是系統(tǒng)振蕩器分頻器的輸入,用于生成系統(tǒng)時鐘 (SYS_CLK)。分頻器可在 0 到 7 之間選擇,得到 1、2、4、8、16、32、64 或 128 的除數(shù)。SYS_CLK驅(qū)動帶有 FPU 內(nèi)核的 Arm Cortex-M4,以及系統(tǒng)中的所有高級高性能總線 (AHB) 主站。通過兩個分頻器的固定分頻后,它還可以生成高級外設總線(APB)時鐘,為CNN加速器、RISC-V和外設供電。有關時鐘源、配置和要設置的寄存器列表的更多詳細信息,請參閱 [3] 的第 1.5 節(jié)。

表 1 中列出了用于設置時鐘的 API。

應用程序接口 描述
int MXC_SYS_ClockSourceEnable (mxc_sys_system_clock_t clock) 啟用時鐘源而不選擇它;以下來源可用:
MXC_SYS_CLOCK_IPO、MXC_SYS_CLOCK_IBRO、MXC_SYS_CLOCK_ISO、MXC_SYS_CLOCK_INRO、MXC_SYS_CLOCK_ERTCO MXC_SYS_CLOCK_EXTCLK
int MXC_SYS_Clock_Select (mxc_sys_system_clock_t clock) 選擇要用于SYS_CLK的時鐘源;有關列表,請參閱時鐘部分
void SystemCoreClockUpdate(void) 根據(jù)所選時鐘源更新系統(tǒng)核心時鐘
無效MXC_SYS_ClockEnable(mxc_sys_periph_clock_t時鐘) 支持外設時鐘:
MXC_SYS_PERIPH_CLOCK_GPIO0 至 2
MXC_SYS_PERIPH_CLOCK_DMA
MXC_SYS_PERIPH_CLOCK_SPI0和 1
MXC_SYS_PERIPH_CLOCK_UART0 至 3
MXC_SYS_PERIPH_CLOCK_I2C0 至 2
MXC_SYS_PERIPH_CLOCK_TMR0 至 5
MXC_SYS_PERIPH_CLOCK_ADC
MXC_SYS_PERIPH_CLOCK_CNN
MXC_SYS_PERIPH_CLOCK_PT
MXC_SYS_PERIPH_CLOCK_TRNG
MXC_SYS_PERIPH_CLOCK_SMPHR
MXC_SYS_PERIPH_CLOCK_OWIRE

MXC_SYS_PERIPH_CLOCK_CRC MXC_SYS_PERIPH_CLOCK_AES
MXC_SYS_PERIPH_CLOCK_I2S
MXC_SYS_PERIPH_CLOCK_PCIF
MXC_SYS_PERIPH_CLOCK_WDT0
MXC_SYS_PERIPH_CLOCK_CPU1 // RISC-V 時鐘
MXC_SYS_PERIPH_CLOCK_WDT1
MXC_SYS_PERIPH_CLOCK_LPCOMP1 至 3
無效MXC_SYS_ClockDisable(mxc_sys_periph_clock_t時鐘) 禁用外設時鐘;有關列表,請參閱時鐘部分

操作模式

MAX78000包括多種工作模式,能夠微調(diào)電源選項以優(yōu)化性能和功耗。系統(tǒng)支持以下操作模式,如表 2 所示。

Operation Mode Arm RISC-V Oscillators System CNN Quadrants CNN RAM Peripherals
ACTIVE On On All available Available Active, Configurable Active, Configurable Available
SLEEP Retention On/ Retention All available Available Active, Configurable Active, Configurable Available
LPM Retention On/ Retention ISO, IBRO,
ERTCO, INRO
0,1: Retention
2,3: Available
Active, Configurable Active, Configurable Available
UPM Retention Retention IBRO,
ERTCO, INRO
Retention Optionally off Selectable retention Retention,
LPUART0, LPTMR0-1 LPWDT0, LPCOMP0-3,
GPIO, WUT, RTC available
STANDBY Retention Retention IBRO,
ERTCO, INRO
Retention Off Selectable retention Retention,
WUT, RTC, COMP0, GPIO available
BACKUP Off Off ERCO Configurable
retention
Off Selectable retention Off
WUT, RTC, COMP0, GPIO available
POWER
DOWN
Off Off Off Off Off Off Off,
Configurable P3.0/1

活動模式:

在這種模式下,Arm 和 RISC-V 內(nèi)核都可以執(zhí)行應用代碼,并且所有數(shù)字和模擬外設均可按需提供。動態(tài)時鐘禁用未使用的外設,提供高性能和低功耗的最佳組合。每個外設都可以在活動模式下單獨使能或斷電。CNN 和四個 CNNx16_n 處理器陣列中的每一個及其相關存儲器都可以根據(jù)需要關閉電源或設置為活動狀態(tài)。

睡眠模式:

當 Arm 或 RISC-V 執(zhí)行代碼時,可以使用此模式,在此期間,另一個進入睡眠狀態(tài)以降低功耗??梢赃x擇啟用時鐘以加快喚醒過程。CNN 可供使用,四個CNNx16_n象限中的每一個都可以單獨配置為關斷。除非明確禁用,否則所有外圍設備均處于打開狀態(tài)

To enter SLEEP Mode:
     SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;  // Needed just once

Either directly set sleep mode bit in MXC_GCR->pm register, or use WFI instruction:
?  MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
MXC_GCR->pm   |= MXC_S_GCR_PM_MODE_CM4;
?  Or use WFI:
o   Arm:  __WFI(); // Enter to sleep and wait for interrupt to wake up
o   RISC-V: asm volatile("wfi");

To enter into this mode on Arm, MXC_LP_EnterSleepMode() API call can also be used.

低功耗模式:

如果RISC-V希望在Arm處于深度睡眠狀態(tài)時從啟用的外設收集和移動數(shù)據(jù),則可以使用此模式。如果未使用 RISC-V 并且處于睡眠模式,則 Arm 還可以處理數(shù)據(jù)并在外圍設備或 CNN 處于活動狀態(tài)并在中斷時喚醒時切換到 LPM。Arm、DMA 和 SPI0 處于狀態(tài)保留狀態(tài)。CNN 象限、內(nèi)存和其他外設處于活動狀態(tài)且可配置。請注意,CNN 只能喚醒 RISC-V,而不能喚醒 LPM 中的 Arm。在這種情況下,如果 CNN 處理時間已知,則喚醒計時器 (WUT) 可用于喚醒 Arm?;蛘撸珻NN中斷可以喚醒RISC-V,RISC-V反過來可以喚醒Arm,然后RISC-V可以重新進入睡眠狀態(tài)。

Before going to LPM:
Make sure the clock source is enabled during LPM in MXC_GCR->pm, for example:
 MXC_GCR->pm &= ~MXC_F_GCR_PM_ISO_PD;  // enable ISO during sleep

Power Sequencer Registers (PWRSEQ) are used to configure clock source and wake up source. The clock source for peripherals and RISC-V needs to be specified. By default, it uses ISO during LPM. If needed, set this field to 1 to use the PCLK (APB Clock = SYS_CLK/2)
PWRSEQ_LPCN ->lpcn |= MXC_F_PWRSEQ_LPCN_LPMCLKSEL;

The wakeup source of the low power peripheral (e.g GPIO, RISC-V) needs to be enabled. For example:
MXC_PWRSEQ->lppwen |= MXC_F_PWRSEQ_LPPWEN_CPU1;  // wake up on RISC-V interrupt

To enter LPM:
     SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;  // Needed just once
     /* Write 1 to clear */
    MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
    MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
    MXC_PWRSEQ->lppwst  = 0xFFFFFFFF; 
    MXC_MCR->ctrl |= MXC_F_MCR_CTRL_ERTCO_EN; // enable ERTCO 

Either directly set sleep mode bit in MXC_GCR->pm register, or use WFI instruction:
  • MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE; MXC_GCR->pm |= MXC_S_GCR_PM_MODE_LPM;
  • Or use WFI:
    • Arm:__WFI(); // Enter to deepsleep, wait for interrupt to wake up

在LPM中,IPO斷電,應使用IBRO,ERTCO,INRO或ISO。

注意:如果 Arm 內(nèi)核進入 LPM,RISC-V 可以根據(jù)需要繼續(xù)執(zhí)行并進入睡眠狀態(tài)。如果需要在兩個內(nèi)核之間管理 LPM 的入口,則可以使用多處理器通信來確保兩個內(nèi)核都處于已知狀態(tài)。有關詳細信息,請參閱 [3] 中的第 3.3.5 節(jié)。

微功耗模式:

此模式用于極低的功耗,同時使用最少的外設集來提供喚醒功能。在此模式下,將保留 Arm 和 RISC-V、系統(tǒng)和 CNN RAM 以及非 UPM 外設的狀態(tài)。CNN 象限可以關閉。IPO 和 ISO 振蕩器斷電,IBRO、ERTCO和INRO啟用。以下外設可用作喚醒源:WUT、LPUART0、LPTMR0、LPTMR1、LPWDT0、LPCOMP0-LPCOMP3 和 GPIO

To enter UPM Mode:
      /* Write 1 to clear */
     MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
     MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
     MXC_PWRSEQ->lppwst  = 0xFFFFFFFF; 
     MXC_MCR->ctrl |= MXC_F_MCR_CTRL_ERTCO_EN; // enable ERTCO 

Set UPM mode bit in MXC_GCR->pm register:
      MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
MXC_GCR->pm |= MXC_S_GCR_PM_MODE_UPM;

To enter into this mode on Arm, MXC_LP_EnterDeepSleepMode() API call can also be used.

這種模式在低活動循環(huán)應用中最有利于節(jié)省能源。

為了確保確定性地進入 UPM 模式,Arm 和 RISC-V 可能需要使用多處理器通信進行同步。有關更多信息,請參閱 [3] 中的第 3.4.5 節(jié)。

待機模式:

在此模式下,RTC 運行時保留系統(tǒng)狀態(tài);Arm、RISC-V、System RAM、GPIO 和外設也保留其狀態(tài)。CNN 象限關閉,CNN 內(nèi)存具有可選擇的保留。IPO 和 ISO 振蕩器斷電,ERTCO、INRO 和 IBRO 啟用。如果需要對應用進行占空比,此模式可提供進一步的功耗降低。

To enter STANDBY Mode:
     /* Write 1 to clear */
    MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
    MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
    MXC_PWRSEQ->lppwst = 0xFFFFFFFF; 
    MXC_MCR->ctrl |= MXC_F_MCR_CTRL_ERTCO_EN; // enable ERTCO 

Set STANDBY mode bit in MXC_GCR->pm register:
    MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
    MXC_GCR->pm |= MXC_S_GCR_PM_MODE_STANDBY;

To enter into this mode on Arm, MXC_LP_EnterStandbyMode() API call can also be used.

為了確保確定性地進入待機模式,Arm 和 RISC-V 可能需要使用多處理器通信進行同步。有關更多信息,請參閱 [3] 中的第 3.5.5 節(jié)。

備份模式:

此模式用于保留系統(tǒng)內(nèi)存。在此模式下,Arm、RISC-V、所有外設和除 ERTCO 之外的所有振蕩器都將關閉電源。系統(tǒng) RAM 0-3 可以獨立配置為使用 PWRSEQ_LPCN 寄存器保留狀態(tài)。

進入備份模式不需要 Arm 和 RISC-V 之間的同步,任何一個內(nèi)核都可以將 GCR_PM.mode 設置為 BACKUP,這會導致設備立即進入 BACKUP。

To enter BACKUP Mode:
     /* Write 1 to clear */
    MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
    MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
    MXC_PWRSEQ->lppwst  = 0xFFFFFFFF; 

 Set BACKUP mode bit in MXC_GCR->pm register:
    MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
    MXC_GCR->pm |= MXC_S_GCR_PM_MODE_BACKUP

To enter into this mode on Arm, MXC_LP_EnterBackupMode() API call can also be used.

掉電模式:

此模式在產(chǎn)品級別的分發(fā)和存儲期間使用。ARM、RISC-V、存儲器、外設和振蕩器均斷電。在此模式下沒有數(shù)據(jù)保留,但閃存中的值會保留。在此模式下,V雷吉POR電壓監(jiān)視器正在運行。

如果已配置,可通過外部復位 (RSTN) 或 P3.0 或 P3.1 上的喚醒事件退出 PDM。

To enter PDM Mode:
 MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
 MXC_GCR->pm |= MXC_S_GCR_PM_MODE_POWERDOWN

To enter into this mode on Arm, MXC_LP_ShutDownMode() API call can also be used.

喚醒配置

需要將 Arm 和 RISC-V 配置為在發(fā)生喚醒事件時喚醒。有關不同操作模式下的喚醒源列表,請參閱 [3] 中的第 4.5 節(jié)。

手臂喚醒配置:

應啟用中斷。在 SLEEP 的情況下,Arm 內(nèi)核會喚醒 after__WFI() 以響應任何中斷。

對于低功耗模式,需要啟用喚醒源:

在電源排序器寄存器 (PWRSEQ) 中:在低功耗外設喚醒中啟用外設和特定 GPIO 源 啟用寄存器(PWRSEQ_LPWKEN0 至 3,PWRSEQ_LPPWEN)

在全局控制寄存器 (GCR) 中:在電源管理寄存器 (GCR_PM) 中啟用 GPIO 喚醒使能和 RTC 報警喚醒啟用

Example of Arm wakeup configuration: 
Wakeup from LPM on GPIO:
 MXC_GCR->pm  |= MXC_F_GCR_PM_GPIO_WE;  // enable wakeup from GPIOs
 MXC_PWRSEQ->lpwken2 |= (1 << 7);   // Pb2: GPIO2.7 is selected for wakeup

Wakeup from LPM on RISC-V interrupt:
 MXC_PWRSEQ->lppwen |= MXC_F_PWRSEQ_LPPWEN_CPU1; // wakeup on RISC-V interrupt

RISC-V 喚醒配置:

要將RISC-V配置為在中斷時喚醒,需要啟用IRQ和EVENT。

Example of RISC-V wakeup configuration: 
 __enable_irq();
 NVIC_EnableIRQ(CNN_IRQn);
 NVIC_EnableEVENT(CNN_IRQn);

表 3 顯示了 Arm 和 RISC-V 代碼的示例。Arm 進入 LPM(深度睡眠),RISC-V 初始化并啟動 CNN,然后進入睡眠狀態(tài),直到 CNN 推理完成。之后,CNN中斷喚醒RISC-V,然后喚醒ARM也。

有關此示例的完整代碼,請參閱 [6]。

Arm RISC-V
mnist-riscv
int main(void)
{
MXC_ICC_Enable(MXC_ICC0); // 啟用緩存
// 切換到 100 MHz 時鐘
MXC_SYS_Clock_Select(MXC_SYS_CLOCK_IPO);
SystemCoreClockUpdate();
設置 RISC-V 引導地址
MXC_FCR->urvbootaddr = (uint32_t) &__FlashStart_;
啟用森帕霍爾時鐘MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SMPHR);設置喚醒 ISR NVIC_SetVector(RISCV_IRQn, WakeISR
); 不要刪除此行:
MXC_Delay(SEC(2));如果需要,讓調(diào)試器中斷 啟用 RISC-V 時鐘
MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_CPU1);
轉(zhuǎn)到 LPM,等待 RISC-V 喚醒
MXC_LP_ClearWakeStatus();
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=1
__WFI(); // 轉(zhuǎn)到深度睡眠,讓 RISC-V 運行
返回 0;
} void WakeISR(void)
{
MXC_SEMA->irq0 = MXC_F_SEMA_IRQ0_EN & ~MXC_F_SEMA_IRQ0_CM4_IRQ;
}
int main(void)
{
Debug_Init(); // 設置 RISCV JTAG
MXC_ICC_Enable(MXC_ICC1); // 啟用緩存 使能外設, CNN 中斷, CNN 時鐘 // CNN 時鐘
: 50 MHz 分區(qū) 1
cnn_enable(MXC_S_GCR_PCLKDIV_CNNCLKSEL_PCLK, MXC_S_GCR_PCLKDIV_CNNCLKDIV_DIV1); cnn_init();使狀態(tài)機進入一致的狀態(tài)
cnn_load_weights();加載內(nèi)核
cnn_load_bias();
cnn_configure();配置狀態(tài)機
load_input();加載數(shù)據(jù)輸入

cnn_start(); // 在 (cnn_time == 0)
asm volatile(“WFI”) 時啟動 CNN 處理; 睡眠,等待 CNN 完成 // 現(xiàn)在信號 Arm 喚醒
MXC_SEMA->irq0 = MXC_F_SEMA_IRQ0_EN |MXC_F_SEMA_IRQ0_CM4_IRQ;
} int cnn_enable(uint32_t clock_source, uint32_t clock_divider)
{ // 重置所有域,恢復 CNN 的電源 MXC_BBFC->reg3 = 0xf; // 重置 MXC_BBFC->reg1 = 0xf; // 屏蔽內(nèi)存
MXC_BBFC->reg0 = 0xf; // Power
MXC_BBFC->reg2 = 0x0; // iso

MXC_BBFC->reg3 = 0x0; /
/ 重置
MXC_GCR->pclkdiv = (MXC_GCR->pclkdiv & ~(MXC_F_GCR_PCLKDIV_CNNCLKDIV |MXC_F_GCR_PCLKDIV_CNNCLKSEL))
|clock_divider |clock_source;
啟用 CNN 時鐘MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_CNN);
在 CNN
上啟用中斷和喚醒完成 __enable_irq();
NVIC_EnableIRQ(CNN_IRQn);
NVIC_EnableEVENT(CNN_IRQn);
返回CNN_OK;
}

不同模式下的功耗

在開發(fā)應用時,用戶可以將MAX78000切換到不同的工作模式,并相應地安排任務以節(jié)省功耗。了解每種操作模式下的功耗以及啟動或喚醒所需的時間,有助于用戶選擇合適的模式并規(guī)劃任務的占空比。電源監(jiān)視器可在系統(tǒng)電源模式 [4] 下使用,以測量幾種情況下的功耗和喚醒或啟動時間。在此測試中,RISC-V和外圍設備關閉,Arm在不同的操作模式下進行測試。對于喚醒時間測試,RISC-V用作Arm的喚醒源。 圖3顯示了該實驗的結(jié)果。使用ISO振蕩器在60MHz下測量活動功率和睡眠功率。其他低功耗模式在休眠期間采用 ERTCO (32kHz)(API 默認值)。

還測試了不同時鐘頻率的啟動時間(定義為從上電到開始執(zhí)行主代碼的時間)和喚醒時間,如圖4所示。喚醒時間隨所選時鐘頻率進行縮放。啟動時間以上電默認時鐘(ISO 在 60MHz)測量。

pYYBAGPu8n6AdUiDAAAsFeS5Ckg180.jpg?imgver=1

圖3.不同運行模式下的功耗。

poYBAGPu8oCAKeUpAABFMAtt0n0686.jpg?imgver=1

圖4.不同頻率的啟動和喚醒時間。

美國有線電視新聞網(wǎng)電源

人工智能應用程序的核心是由CNN加速器執(zhí)行的推理。根據(jù)應用程序的不同,推理可以連續(xù)地對傳入的數(shù)據(jù)進行,也可以按特定的時間間隔定期進行。CNN推理可以在輸入數(shù)據(jù)準備就緒后開始(例如KWS案例研究),也可以在FIFO模式下(例如FaceID示例)開始,一旦FIFO中存儲了足夠的數(shù)據(jù)來開始該過程,它就會開始。CNN 功耗分三個階段測量:

加載權(quán)重(內(nèi)核):在活動模式下將權(quán)重加載到 CNN 內(nèi)存中發(fā)生一次

加載輸入數(shù)據(jù):每次有新的推理時。在FIFO模式下,它可以與推理重疊

推理:對輸入數(shù)據(jù)進行操作并生成分類結(jié)果

功率監(jiān)視器使用 GPIO 信號觸發(fā)每個事件,并在 CNN 功率模式下測量每個相位的功率 [4]。為了進行測量,在Maxim SDK中選擇了兩個示例:KWS20和FaceID。每個示例都經(jīng)過訓練[7]、合成[8],并閃存到MAX78000評估板中。可以指示合成腳本僅為 Arm(默認:RISC-V 關閉)或 RISC-V(帶有 --deepsleep --riscv --riscv-debug 標志)生成代碼,其中 Arm 初始化 RISC-V 并進入睡眠狀態(tài)。合成腳本還可以包括 GPIO 信號,以指示電源監(jiān)視器在 CNN 電源模式 (--energy) 下運行。能量、時間、非活動 (I) 和活動 (A) 功率測量值顯示在功率監(jiān)視器顯示屏上。KWS20和FaceID在不同操作模式和時鐘源(100MHz時的IPO和60MHz的ISO)下的測試結(jié)果如表4和表5所示。請注意,F(xiàn)IFO用于FaceID,因此推理時間也包括加載時間。根據(jù)結(jié)果,當CNN使用相同的時鐘時,僅使用ARM以及ARM和RISC-V的推理時間和能量是相似的。使用較慢的時鐘源加載權(quán)重和數(shù)據(jù)需要更長的時間,從而導致能量顯著增加。用戶應考慮加載內(nèi)核和輸入所需的能量,以決定如何調(diào)度應用程序。在活動周期較小時的情況下,重新加載重量可能會改善整體功耗。在睡眠模式或LPM中,推理時間和能量預計不會改善,因為它們僅在CNN的活動窗口內(nèi)測量。但是,它們會顯著影響應用程序的總體功耗,如下文所示。

選擇ARM和RISC-V在空閑時間都處于睡眠狀態(tài)的案例,通過應用不同的時鐘頻率和源來測試振蕩器頻率的影響。RISC-V驅(qū)動加載權(quán)重和輸入,以及管理CNN。通過降低時鐘頻率,推理時間和能量呈指數(shù)級增長。這表明以最高速度執(zhí)行加載和推理,然后進入更長的睡眠期往往會改善整體能耗。該實驗的結(jié)果如圖5和圖6所示。

KWS20:
操作
模式
時鐘頻率(兆赫) 內(nèi)核加載 輸入加載 推理
Arm RISC-V CNN E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) A(毫瓦)
Arm Only 始終處于活動狀態(tài) 100 不適用 50 0.146 11.6 7.2 19.8 0.013 1.1 7.2 19.27 0.14 2 37.45
SLEEP 100 不適用 50 0.148 11.6 7.02 19.8 0.013 1.1 7.02 19.33 0.136 2 35.82
LPM 60 不適用 30 0.154 19.3 5.33 13.29 0.014 1.8 5.33 13.06 0.139 4.1 18.32
Arm 和 RISC-V 始終處于活動狀態(tài) 100 50 50 0.42854 34.72 5.47 17.81 0.04001 3.31 10.45 22.52 0.1401 1.99 21.86
Only Arm SLEEP 100 50 50 0.04036 3.31 5.5 17.71 0.14077 2.01 21.89
Both SLEEP 100 50 50 0.03829 3.15 5.47 17.63 0.14055 2.19 21.41
Both SLEEP 60 30 30 0.487 50.3 3.48 13.16 0.0481 5.53 3.63 12.31 0.14595 3.38 13.06
LPM 60 30 30 0.0456 4.7 3.48 12.92 0.1424 3.5 13.67
面容ID:
操作
模式
時鐘頻率(兆赫) 內(nèi)核加載 輸入加載 先進先出加載
+ 推理
Arm RISC-V CNN E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) A(毫瓦)
Arm Only 始終處于活動狀態(tài) 100 不適用 50 0.158 12.2 7.03 20.01 0.132 12.1 7.03 17.91 0.435 14 38.19
SLEEP 100 不適用 50 0.156 12.2 7.22 20.01 0.13 12.1 7.22 17.93 0.43 14 38
LPM 60 不適用 30 0.188 20.3 4.6 13.5 0.162 20 4.6 12.61 0.472 24 24.1
Arm 和 RISCV 始終處于活動狀態(tài) 100 50 50 0.26 36 3.52 10.64 0.30203 24.82 14.54 26.72 0.57958 24.37 38.39
Only Arm SLEEP 100 50 50 0.29813 24.32 5.46 17.47 0.57823 24.87 29.3
Both SLEEP 100 50 50 0.29899 24.82 5.48 17.53 0.57921 24.37 29.18
Both SLEEP 60 30 30 0.53 52 3.45 13.48 0.36954 41.47 3.57 12.49 0.65009 40.72 19.52
LPM 60 30 30 0.328 36.5 3.45 12.45 0.608 36.1 20.36
LPM, Fast FIFO 60 30 30 不適用 不適用 不適用 不適用 0.524 25.2 24.29
LPM 60 60 60 不適用 不適用 不適用 不適用 0.254 18.2 6.02 19.19 0.533 18 35.58
Both SLEEP 60 60 60 不適用 不適用 不適用 不適用 不適用 不適用 不適用 不適用 0.471 12.6 43.57

pYYBAGPu8oOAWmJuAAIH-CW_DYs377.png?imgver=1

圖5.時鐘頻率對KWS20、Arm in SLEEP和RISC-V的影響驅(qū)動CNN并在空閑時間休眠。

pYYBAGPu8oWAKlvzAAE3ugxc5as815.png?imgver=1

圖6.時鐘頻率對FaceID的影響;手臂處于睡眠狀態(tài);RISC-V驅(qū)動CNN并在空閑時間休眠。

在 CNN 內(nèi)存中保留權(quán)重

四個 CNN 掩碼 RAM(CNN 權(quán)重存儲)中的每一個都可以配置為在 UPM、備份或待機的情況下保留權(quán)重。另一方面,無論 CNN 掩碼 RAM 保留設置如何,CNN 配置寄存器在任何這些省電模式下(SLEEP 和 LPM 除外)都會丟失,并且需要重新加載。

對于某些低占空比應用,用戶可以選擇關閉掩碼RAM,以進一步降低睡眠期間的功耗。在這種情況下,應考慮用于反復重新加載砝碼的額外功率的影響。表 6 顯示了在 UPM 期間,當 FaceID 示例保留 CNN 權(quán)重時,功耗從 0.17mW 增加到 0.38mW。在這種情況下,CNN 配置重新加載只需幾分之一毫秒。但是,如果 CNN 掩碼 RAM 關閉,則權(quán)重和配置的總重新加載時間大于 12 毫秒。用戶可以研究這種權(quán)衡,以優(yōu)化其應用程序的計劃和操作模式。以下示例演示如何打開/關閉體重保留以及如何在喚醒后重新初始化 CNN。


Example: Turn on weight retention 
 MXC_BBFC->reg3 = 0xf; // Reset on
 MXC_BBFC->reg1 = 0x0; // turn off CNN RAM0-3 power
 MXC_BBFC->reg3 = 0x0; // Reset off
Example: Loading weights and configuring CNN with CNN Mask RAMs retention

 // wake up from UPM, BACKUP, or STANDBY – CNN memory was retained
 cnn_init(); // Bring state machine into consistent state
 cnn_load_bias();
 cnn_configure(); // Configure state machine
 …
 // proceed to loading data  
Example: Turn off weight retention prior to sleep (must turn back on after waking up)
 MXC_BBFC->reg3 = 0xf; // Reset on
 MXC_BBFC->reg1 = 0x0; // turn off CNN RAM0-3 power
 MXC_BBFC->reg3 = 0x0; // Reset off
  
 /* get ready to go to sleep */
 MXC_LP_EnterDeepSleepMode(); // Arm enters LPM, waits for wakup

 /* restore power to CNN RAM0-3 after wakeup, or prior to next cnn_load() */
 MXC_BBFC->reg3 = 0xf; // Reset
 MXC_BBFC->reg1 = 0xf; // turn on CNN RAM0-3 power
 MXC_BBFC->reg3 = 0x0; // Reset
Example: Loading weights and configuring CNN without CNN Mask RAMs retention

 // Power up or wake up from UPM, BACKUP or STANDBY, CNN memory not retained
 cnn_init(); // Bring state machine into consistent state
 cnn_load_weights(); // Load kernels
 cnn_load_bias();
 cnn_configure(); // Configure state machine
 …
 // proceed to loading data  

UPM 從 UPM 喚醒后加載權(quán)重/CNN 配置
CNN Weight Retention P(毫瓦) E(μJ) T(毫秒) P(毫瓦)
Off 172 242.38 12.16 19.93
On 0.387 1.956 0.1089 17.95

應用功率

開發(fā)應用時,選擇每個內(nèi)核的工作模式、時鐘頻率和占空比非常重要。通常,在 Arm 上運行的應用程序可以以更高的頻率(100MHz 而不是 50MHz APB 時鐘)執(zhí)行,并具有更優(yōu)化的代碼,這可能導致更低的總能耗。如果存在可以同時分配給 Arm 和 RISC-V 內(nèi)核的并行任務,則為每個內(nèi)核使用正確的操作模式非常重要。在 SLEEP 和 LPM 中,內(nèi)核可以獨立運行或休眠。但是,在其他節(jié)能模式(如 UPM 或待機)中,兩個內(nèi)核同時斷電。在這種情況下,Arm 和 RISC-V 可能需要協(xié)調(diào),以便它們都使用多處理器通信進入低功耗模式,如 [8] 的第 2.5 節(jié)所述。

對于需要偶爾較短活動時間的應用程序,可以選擇 UPM、待機、備份或關機模式。用戶可以評估在睡眠期間在CNN內(nèi)存中維持權(quán)重的能量成本,并與在每個活動窗口之前重新加載權(quán)重的能量進行比較。MAX78000評估板上的功率監(jiān)測電路可用于測量一段時間內(nèi)的整體系統(tǒng)功耗[4]。這有助于用戶根據(jù)需要在運行時分析應用程序電源。

案例研究 1:在 Arm 和 CNN 上進行關鍵字發(fā)現(xiàn) (KWS20) 演示

本示例應用演示了使用MAX20評估板[78000]識別一組9個關鍵字。應用程序讀取 I2S麥克風以16kHz采樣,并監(jiān)視128個采樣窗口的閾值。一旦超過靜默閾值,應用程序就會捕獲一秒鐘的樣本,對樣本運行 CNN 推理,并在 TFT 顯示屏上顯示分類結(jié)果。

在此基準測試示例中,不使用RISC-V,Arm內(nèi)核處理整個任務。測試了幾種操作模式。系統(tǒng)電源模式下的功率監(jiān)視器用于以十秒間隔測量總能量,無論是在完全靜音(即無推理或 TFT 更新)時,還是當關鍵字以每秒一個單詞的速度說出時(十個推理和 TFT 更新)。結(jié)果如表7所示。在活動模式下,Arm 內(nèi)核始終運行。無論靜默還是檢測,此模式下的功率約為20mW,因為推理能量只是總功耗的一小部分。通過在收集 I 的空閑時間內(nèi)使用 LPM2S采樣以及推理時間,通過在推理后關閉CNN時鐘(功耗大幅降低),功耗降至8.3mW(靜默期間為6.58mW)。

poYBAGPu8oeANoq3AAERLRpFnkE919.png?imgver=1

圖7.KWS20的占空比和平均功率示例在靜音或關鍵字檢測期間,TFT可以打開或關閉。

圖7分析并演示了表7中最后兩種功耗優(yōu)化工作模式的平均功耗和活動占空比。

案例研究 2-A:Arm 和 CNN 上的 FaceID 演示

該演示應用演示了在MAX78000上使用面部識別識別對象。FaceID CNN模型從評估板相機拍攝的實時圖像中生成尺寸為512的嵌入。計算嵌入與已知主題嵌入的距離,如果大于閾值,則選擇最佳候選者。已知嵌入的數(shù)據(jù)庫是從主題的圖片創(chuàng)建的,并與固件集成。推理在每個圖像的 160x120 面框上執(zhí)行。為了增強識別性能,推理在幀上執(zhí)行三次,每次在圖片上稍微移動面部框時執(zhí)行。

在本案例研究中,RISC-V處于關閉狀態(tài),整個任務由Arm驅(qū)動并按順序執(zhí)行。Arm 在推理期間進入睡眠模式,并在幀之間進入 UPM 或待機模式約半秒。表 8 總結(jié)了 FaceID 主要功能的執(zhí)行時間和功能。表 9 顯示了每種操作模式下的時間和功耗。

處理一幀 平均能源
系統(tǒng)時鐘 CNN Clock Arm duty cycle E(μJ ) T(毫秒) P(毫瓦)
ARM-100兆赫 50兆赫 圖像捕獲 1189.8 171.2 6.95
CNN 內(nèi)核負載(用于備用或 UPM) 935.3 37.5 24.94
3 x CNN 運行 1164.7 42 27.73
3 x CNN 卸載 1.6 0.15 10.7
3x 距離計算 470.4 48 9.8
在 TFT 上顯示圖像 620.5 49.4 12.56
4382.2 348.25
模式 Active UPM Sleep Total
時間(毫秒) 227 498 160 885
功率(毫瓦) 18.14 0.3 6.92
能量(微焦) 4118 150 1112 5380
模式 積極 待機
時間(毫秒) 227 497 160 884
功率(毫瓦) 18.14 0.03 6.92
能量(微焦) 4118 15 1112 5245

poYBAGPu8omAHf0nAAFoA1LkgjI091.png?imgver=1

圖 8:在 Arm 上運行的 FaceID 示例的占空比和平均功率。

案例研究2-B:Arm,RISC-V和CNN上的FaceID演示

在這種情況下,Arm處理TFT控制和顯示(只能通過MAX78000評估板上的Arm訪問),RISC-V驅(qū)動從相機捕獲的圖像、CNN加載和推理,以及針對數(shù)據(jù)庫的嵌入距離計算。共享內(nèi)存和郵箱用于協(xié)調(diào) Arm 和 RISC-V 通信。

表 10 總結(jié)了此模式下 FaceID 主要功能期間的執(zhí)行時間和功耗。處理完幀后,Arm 和 RISC-V 會像前一種情況一樣進入待機模式大約半秒鐘。

Processing One Frame 平均能源
系統(tǒng)時鐘 美國有線電視新聞網(wǎng)時鐘 RISC-Arm E(μJ) T(毫秒) P(毫瓦)
ARM-100MHz RISCV-60MHz 50兆赫 圖像捕獲 1392.6 169 8.24
CNN 內(nèi)核加載 818.3 35.5 23.05
3 x CNN 運行 7910.1 327 24.19
3 x CNN 卸載 9.5 0.9 10.5
3x 距離計算 699.6 66 10.6
在TFT上顯示圖像(在手臂上與RISC-V處理并行顯示圖像) 60 12.48
10830 658.9
模式 Active Standby Sleep Total
時間(毫秒) 448 500 169 1117
功率(毫瓦) 18.14 0.05 7.89
能量(微焦) 8126.72 25 1333.41 9485.13

pYYBAGPu8ouAcymuAADnn8gzwzs862.png?imgver=1

圖9.在 Arm 和 RISC-V 上運行的 FaceID 示例的占空比和平均功率。

pYYBAGPu8o6AE1aNAABH17Pom1I678.png?imgver=1

圖 10.比較在實現(xiàn)FaceID時使用Arm,或同時使用Arm和RISC-V。

通過比較圖 10 中 FaceID 的兩種實現(xiàn),很明顯,使用 Arm 處理幀的總能量顯著降低,這主要是由于其速度更高,而不是 RISC-V(100MHz,vs 50MHz),導致活動狀態(tài)的持續(xù)時間更短。

總結(jié)

本應用筆記概述了MAX78000支持的功耗優(yōu)化技術(shù),以及與關鍵字識別和FaceID應用配合使用時的結(jié)果。以下摘要重點介紹了一些改善功耗的一般建議:

通常越快越好。通常,使用更高的時鐘速率可以加快執(zhí)行速度,并減少恒定靜態(tài)功耗的影響,從而改善整體功耗。

如果沒有太多并行任務要執(zhí)行,則首選單核。在RISC-V上運行任務由于其時鐘速率而較慢,并且與Arm相比,往往會導致能源使用量增加。

在沒有活動時利用 UPM、備份和備用。當 Arm 在某些外圍設備運行時可以休眠時,請考慮使用 LPM。

加載內(nèi)核(權(quán)重)一次并保留在內(nèi)存中,以避免在 UPM、備份和待機模式下重新加載能量。但是,如果活動占空比非常低,請考慮禁用砝碼保持或使用 POWERDOWN 模式并在每個周期中重新加載砝碼。

確保在 CNN 處理完成后關閉 CNN 時鐘,并在下一個活動期間再次訪問 CNN 之前將其打開。

當 CNN 正在運行并且 Arm 正在等待推理完成時,請使用 LPM。要喚醒,請使用RISC-V或喚醒定時器。CNN 中斷無法在 LPM 中直接喚醒 Arm。

使用快速FIFO或四快速FIFO(僅在RISC-V驅(qū)動CNN時才支持)顯著改善了輸入加載時間和推理能量(--fast-fifo,--fast-fifo-quad)[8]。

審核編輯:郭婷


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7334

    瀏覽量

    150080
  • 加速器
    +關注

    關注

    2

    文章

    785

    瀏覽量

    37139
  • 電池
    +關注

    關注

    84

    文章

    10183

    瀏覽量

    127008
收藏 人收藏

    評論

    相關推薦

    基于MAX78000FTHR的機器學習實時處理方案

    MAX78000本質(zhì)是一個ARM Cortex-M4F微控制器,周邊有很多硬件,其中包括Maxim設計的神經(jīng)網(wǎng)絡(CNN)加速器(圖1)。這種機器學習(ML)支持使芯片能夠?qū)崟r處理諸如識別
    的頭像 發(fā)表于 01-16 11:22 ?4315次閱讀
    基于<b class='flag-5'>MAX78000</b>FTHR的機器學習實時處理方案

    Maxim將AI推向邊緣 MAX78000功耗神經(jīng)網(wǎng)絡加速微控制器

    特性,那就意味著即使將其應用在電池供電的物聯(lián)網(wǎng)(IoT)設備里,芯片性能并未受到影響。 如上圖所示,新芯片MAX78000包括兩個超低功耗內(nèi)核Arm Cortex-M4內(nèi)核和RISC-V內(nèi)核一個基于FPU的微控制器和一個卷積神
    發(fā)表于 10-10 10:27 ?1330次閱讀

    MAX78000將能耗和延遲降低100倍,從而在IoT邊緣實現(xiàn)復雜的嵌入式?jīng)Q策

    通過集成專用的神經(jīng)網(wǎng)絡加速器,MAX78000克服了這些局限性,憑借本地以低功耗實時執(zhí)行AI處理,使機器能夠看到和聽到復雜的型態(tài)。由于MAX78000執(zhí)行推理的
    的頭像 發(fā)表于 11-04 09:54 ?1734次閱讀

    Maxim Integrated新型神經(jīng)網(wǎng)絡加速器MAX78000 SoC貿(mào)澤開售

    MAX78000處理器提供高效的電源管理,最大限度地延長電池供電的物聯(lián)網(wǎng) (IoT) 設備的續(xù)航時間。
    的頭像 發(fā)表于 12-09 16:53 ?2717次閱讀

    美信半導體新型神經(jīng)網(wǎng)絡加速器MAX78000 SoC

    ? ? 新型神經(jīng)網(wǎng)絡加速器 Maxim Integrated的新型MAX78000芯片,基于雙核MCU,結(jié)合了超低功耗深度神經(jīng)網(wǎng)絡加速器,為高性能人工智能 (AI) 應用提供所需的算力,是機器視覺
    的頭像 發(fā)表于 01-04 11:48 ?2805次閱讀

    Maxim Integrated宣布與Aizip達成合作,為業(yè)界提供最低功耗的IoT人形識別方案

    MAX78000功耗、神經(jīng)網(wǎng)絡加速微控制器執(zhí)行AI運算的功耗不足傳統(tǒng)軟件方案的1/100,大幅提升電池供電邊緣AI設備的運行時間。
    發(fā)表于 04-22 17:20 ?3491次閱讀

    MAX78000 開發(fā)功耗優(yōu)化應用

    發(fā)表于 11-16 21:01 ?0次下載
    <b class='flag-5'>在</b> <b class='flag-5'>MAX78000</b> <b class='flag-5'>上</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>功耗</b><b class='flag-5'>優(yōu)化</b>應用

    使用MAX78000進行人臉識別

    本應用筆記演示了MAX78000中實現(xiàn)人臉識別模型,以及如何在超低功耗MAX78000平臺上部署,用于資源受限的邊緣或物聯(lián)網(wǎng)應用。該應用遵循基于知識蒸餾的模型
    的頭像 發(fā)表于 12-16 16:12 ?1739次閱讀
    使用<b class='flag-5'>MAX78000</b>進行人臉識別

    MAX78002開發(fā)功耗優(yōu)化應用

    功耗是邊緣人工智能 (AI) 應用的關鍵因素,其中整個系統(tǒng)由小型電池供電,預計無需充電或更換電池即可運行數(shù)月。MAX78002超低功耗AI微控制器專為物聯(lián)網(wǎng)邊緣的此類應用而設計。本文介紹了各種選項,使用戶能夠
    的頭像 發(fā)表于 02-17 11:31 ?1171次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>MAX</b>78002<b class='flag-5'>上</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>功耗</b><b class='flag-5'>優(yōu)化</b>應用

    用于MAX78000模型訓練的數(shù)據(jù)加載器設計

    應用程序開發(fā)周期中,第一步是準備和預處理可用數(shù)據(jù)以創(chuàng)建訓練和驗證/測試數(shù)據(jù)集。除了通常的數(shù)據(jù)預處理外,MAX78000運行模型還需要考
    的頭像 發(fā)表于 02-21 12:11 ?1217次閱讀

    厲害了,這3個項目獲得了MAX78000設計大賽一等獎!

    AX78000FTHR開發(fā)板。 AI微控制器 MAX78000 MAX78000是一款先進的片系統(tǒng),集成帶FPU CPU的Arm ? C
    的頭像 發(fā)表于 03-10 19:45 ?734次閱讀

    MAX78000開發(fā)功耗優(yōu)化應用

    MAX78000為超低功耗微控制器,具有專用卷積神經(jīng)網(wǎng)絡(CNN)加速器。這種架構(gòu)能夠能源受限的環(huán)境中開發(fā)非常節(jié)能的 AI 應用程序。MAX780
    的頭像 發(fā)表于 06-16 11:41 ?630次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>MAX78000</b><b class='flag-5'>上</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>功耗</b><b class='flag-5'>優(yōu)化</b>應用

    MAX78000人工智能設計大賽第二季回歸!賽題廣任意玩,獎勵足直接沖!

    MAX78000設計大賽(第2季) MAX78000設計大賽(第2季)于9月1日正式上線,完成項目不止全額返還,還有千元現(xiàn)金大獎等你來領,摩拳擦掌的伙伴們沖沖沖!??!萬分期待朋友們的精彩項目! 大賽
    的頭像 發(fā)表于 09-13 18:40 ?434次閱讀
    <b class='flag-5'>MAX78000</b>人工智能設計大賽第二季回歸!賽題廣任意玩,獎勵足直接沖!

    MAX78000: Artificial Intelligence Microcontroller with Ultra-Low-Power Convolutional Neural Network Accelerator Data Sheet MAX78000: Artific

    電子發(fā)燒友網(wǎng)為你提供ADI(ADI)MAX78000: Artificial Intelligence Microcontroller with Ultra-Low-Power
    發(fā)表于 10-17 18:53
    <b class='flag-5'>MAX78000</b>: Artificial Intelligence Microcontroller with Ultra-Low-Power Convolutional Neural Network Accelerator Data Sheet <b class='flag-5'>MAX78000</b>: Artific

    MAX78000進串口通信的驗證和調(diào)試

    該資源提供了一個完整的工程,可在MAX78000開發(fā)板上進行UART2阻塞式發(fā)送字符串的測試。以下是相關的引腳配置信息:UART2引腳配置:UART2的發(fā)送引腳為P1.1?(TXD2)。UART2
    發(fā)表于 02-18 09:43 ?0次下載