亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

測(cè)評(píng)分享 | 如何在先楫HPM6750上運(yùn)行輕量級(jí)AI推理框架TinyMaix

先楫半導(dǎo)體HPMicro ? 2022-12-12 17:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

3f2eb1e6-78ab-11ed-b116-dac502259ad0.png本期內(nèi)容由先楫開(kāi)發(fā)者社區(qū)大咖@xusiwei1236分享基于先楫HPM6750的輕量級(jí)AI推理框架,趕緊來(lái)瞧瞧~

一、TinyMaix是什么?
TinyMaix是國(guó)內(nèi)sipeed團(tuán)隊(duì)開(kāi)發(fā)一個(gè)輕量級(jí)AI推理框架,官方介紹如下:TinyMaix 是面向單片機(jī)的超輕量級(jí)的神經(jīng)網(wǎng)絡(luò)推理庫(kù),即 TinyML 推理庫(kù),可以讓你在任意單片機(jī)上運(yùn)行輕量級(jí)深度學(xué)習(xí)模型。甚至在 Arduino ATmega328 (32KB Flash, 2KB RAM) 上都能基于 TinyMaix 進(jìn)行手寫(xiě)數(shù)字識(shí)別。TinyMaix官網(wǎng)提供了詳細(xì)介紹,可以在本文末尾的參考鏈接中找到鏈接。
二、TinyMaix移植
本節(jié)介紹如何將TinyMaix移植到HPM6750,詳細(xì)步驟如下:
2.1 開(kāi)發(fā)環(huán)境搭建先楫官方支持SDK開(kāi)發(fā)環(huán)境和RT-Thread開(kāi)發(fā)環(huán)境,兩種開(kāi)發(fā)環(huán)境的搭建方法均可在官方提供的開(kāi)發(fā)板用戶手冊(cè)(HPM6750EVKMINI USER GUIDE.pdf 或 HPM6750EVK USER GUIDE.pdf 文件)中找到,也可以參考我此前發(fā)布的帖子,具體見(jiàn)本文最后的參考鏈接。考慮到TinyMaix對(duì)于現(xiàn)已支持的MCU,基準(zhǔn)測(cè)試都是基于裸機(jī)進(jìn)行的,因此這里使用的是HPM SDK開(kāi)發(fā)環(huán)境。另外,基于裸機(jī)的移植在RTOS環(huán)境下一般也可以運(yùn)行。因此,對(duì)于MCU芯片的計(jì)算類(lèi)開(kāi)源項(xiàng)目的移植(例如這里的TinyMaix),最好是基于裸機(jī)進(jìn)行。使用的HPM SDK版本為0.14.0,使用的SEGGER Embedded Studio版本信息為:

SEGGER Embedded Studio for RISC-VRelease 6.40 Build 2022102501.51567Windows x64
2014-2022 SEGGER Microcontroller GmbH 1997-2022 Rowley Associates Ltd.
segger-cc: version 15.0.0segger-ld: version 4.36.0segger-rtl: version 4.20.0
GCC/BINUTILS: built using the GNU RISC-V Toolchain version GCC 12.20/Binutils 2.39 source distribution
Clang/LLVM:builtusingtheversion15.0.0sourcedistribution

2.2 TinyMaix移植步驟由于TinyMaix本身的源代碼文件不多,整個(gè)移植過(guò)程相對(duì)還是比較簡(jiǎn)單的。整體基本上分為三步:

  • 目錄規(guī)劃;
  • 修改源碼;
  • 編譯運(yùn)行;

下面介紹具體操作步驟。2.2.1 目錄規(guī)劃考慮到TinyMaix和hpm_sdk都是使用CMake構(gòu)建的,為了不對(duì)TinyMaix進(jìn)行過(guò)多侵入性修改,這里采取的策略是——添加一個(gè)中間層。具體是將HPM6750平臺(tái)的CMakeLists.txt文件放在TinyMaix源碼目錄的上一層,如下所示:

hpm_sdk/app/├── CMakeLists.txt # HPM6750平臺(tái)的CMakeLists.txt├── src│ └── benchmark.c└── TinyMaix/ # TinyMaix源碼目錄

2.2.2 修改源碼

這里在src/benchmark.c文件內(nèi)容如下:

#include #include "board.h"
#define MODEL_MNIST 1#define MODEL_CIFAR10 2#define MODEL_VWW 3#define MODEL_MBNET 4
#define CONFIG_MODEL MODEL_CIFAR10 // 修改這一行切換 測(cè)試程序
#define main benchmark_main#if (CONFIG_MODEL == MODEL_MNIST)#include "mnist/main.c"#elif (CONFIG_MODEL == MODEL_CIFAR10)#include "cifar10/main.c"#elif (CONFIG_MODEL == MODEL_VWW)#include "vww/main.c"#elif (CONFIG_MODEL == MODEL_MBNET)#include "mbnet/label.c"#include "mbnet/main.c"#endif#undef main
int main(void){ board_init();
printf("benchmark start...\n"); benchmark_main(0, NULL);
__asm__("wfi");return 0;}

為了不直接拷貝基準(zhǔn)測(cè)試代碼,簡(jiǎn)化代碼結(jié)構(gòu),這里使用了不太常見(jiàn)的:直接#include 某個(gè).c文件;在#include "xxx/main.c"前面,定義宏#define main benchmark_main,之后取消宏定義;這樣實(shí)現(xiàn)了將TinyMaix原有的測(cè)試代碼作為benchmark.c一部分,而又不與這里的main函數(shù)相沖突的目的。PS:這里為了簡(jiǎn)便,并沒(méi)有把TinyMaix放到hpm_sdk的middleware目錄,實(shí)際項(xiàng)目中使用的話最好將TinyMaix放到middleware目錄。另外,還需要修改`tm_port.h文件:

diff --git a/include/tm_port.h b/include/tm_port.hindex 357fc6b..5d1768c 100644--- a/include/tm_port.h+++ b/include/tm_port.h@@ -31,7 +31,7 @@ limitations under the License.#define TM_OPT_LEVEL TM_OPT0#define TM_MDL_TYPE TM_MDL_INT8#define TM_FASTSCALE (0) //enable if your chip don't have FPU, may speed up 1/3, but decrease accuracy-#define TM_LOCAL_MATH (0) //use local math func (like exp()) to avoid libm+#define TM_LOCAL_MATH (1) //use local math func (like exp()) to avoid libm#define TM_ENABLE_STAT (1) //enable mdl stat functions#define TM_MAX_CSIZE (1000) //max channel num //used if INT8 mdl //cost TM_MAX_CSIZE*4 Byte#define TM_MAX_KSIZE (5*5) //max kernel_size //cost TM_MAX_KSIZE*4 Byte@@ -49,9 +49,10 @@ limitations under the License.#define TM_DBGL() TM_PRINTF("###L%d\n",__LINE__);
/******************************* DBG TIME CONFIG ************************************/-#include -#include -#define TM_GET_US() ((uint32_t)((uint64_t)clock()*1000000/CLOCKS_PER_SEC))+#include "board.h"+#define TM_GET_US() (uint32_t)(HPM_MCHTMR->MTIME * 1000000uLL / clock_get_frequency(clock_mchtmr0))
#define TM_DBGT_INIT() uint32_t _start,_finish;float _time;_start=TM_GET_US();#defineTM_DBGT_START()_start=TM_GET_US();

2.2.3 編譯運(yùn)行HPM6750項(xiàng)目的生成命令:

generate_project -b hpm6750evkmini -t flash_xip -f

HPM6750項(xiàng)目的編譯、運(yùn)行,具體可以開(kāi)發(fā)環(huán)境搭建文章,鏈接見(jiàn)本文末尾。手寫(xiě)數(shù)字識(shí)別(mnist模型),運(yùn)行后,串口輸出結(jié)果如下:3f91d53c-78ab-11ed-b116-dac502259ad0.png

三、基準(zhǔn)測(cè)試

下面是TinyMaix四種常用的基準(zhǔn)測(cè)試模型的基準(zhǔn)測(cè)試,四個(gè)模型分別為:

  • mnist——手寫(xiě)數(shù)字識(shí)別模型,輸入28x28x1
  • cifar——10分類(lèi)模型,輸入32x32x3
  • vww——人體檢測(cè)二分類(lèi)模型,輸入96x96x3,輸出有無(wú)人
  • mbnet——1000分類(lèi)模型,輸入128x128x3


3.1 場(chǎng)景1: TM_MDL_INT8 + TM_OPT0

3fee72a6-78ab-11ed-b116-dac502259ad0.png
3.2 場(chǎng)景2: TM_MDL_INT8 + TM_OPT1400c7b34-78ab-11ed-b116-dac502259ad0.png
3.3 場(chǎng)景3: TM_MDL_FP32 + TM_OPT0403c1a2e-78ab-11ed-b116-dac502259ad0.png

3.4 注意事項(xiàng)

  • 在SEGGER Embedded Studio中, 可以通過(guò)如下菜單Project 'xxx' Options -> Code -> Code Generation -> Optimization Level修改優(yōu)化等級(jí);
  • 在SEGGER Embedded Studio中, 默認(rèn)的堆大小設(shè)置為16384 字節(jié)(16KB),不夠運(yùn)行vww96 和 mbnet128 模型,你可以通過(guò)菜單 Code -> Runtime Memory Area -> Heap Size修改具體配置大小,例如可以為524288(512KB);
  • 對(duì)于FP32模型,需要將RISC-V ISA設(shè)置從默認(rèn)的rv32imac改為rv32gc(Code -> Code Generation -> RIS-V ISA),確保編譯器可以生成浮點(diǎn)數(shù)操作指令。

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

    關(guān)注

    88

    文章

    37282

    瀏覽量

    292248
  • 先楫半導(dǎo)體
    +關(guān)注

    關(guān)注

    12

    文章

    264

    瀏覽量

    3053
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【CW32】uart_obj_fw 輕量級(jí)串口框架

    輕量級(jí)跨平臺(tái)串口通信框架,專(zhuān)為資源受限的嵌入式設(shè)備設(shè)計(jì)。單個(gè)對(duì)象RAM占用最小68字節(jié)左右(不算緩沖區(qū)),ROM占用1-2k字節(jié)左右,功能支持裁剪,資源占用小并不代表低性能,該庫(kù)參考了freeRTOS
    的頭像 發(fā)表于 09-29 18:02 ?7244次閱讀

    請(qǐng)問(wèn)如何在RK3588使用npu,用onnx模型來(lái)推理

    請(qǐng)問(wèn)如何在瑞芯微 RK3588使用npu,用onnx模型來(lái)推理。官網(wǎng)上介紹說(shuō)要把ONNX模型轉(zhuǎn)換成RKNN模型。但是我并不想這么干,請(qǐng)問(wèn)有什么辦法嗎?
    發(fā)表于 08-09 00:51

    基于米爾瑞芯微RK3576開(kāi)發(fā)板部署運(yùn)行TinyMaix:超輕量級(jí)推理框架

    本文將介紹基于米爾電子MYD-LR3576開(kāi)發(fā)平臺(tái)部署超輕量級(jí)推理框架方案:TinyMaix 摘自優(yōu)秀創(chuàng)作者-短笛君 TinyMaix
    發(fā)表于 07-25 16:35

    何在RK3576開(kāi)發(fā)板運(yùn)行TinyMaix :超輕量級(jí)推理框架--基于米爾MYD-LR3576開(kāi)發(fā)板

    本文將介紹基于米爾電子MYD-LR3576開(kāi)發(fā)平臺(tái)部署超輕量級(jí)推理框架方案:TinyMaix摘自優(yōu)秀創(chuàng)作者-短笛君TinyMaix是面向單片
    的頭像 發(fā)表于 07-25 08:03 ?3882次閱讀
    如<b class='flag-5'>何在</b>RK3576開(kāi)發(fā)板<b class='flag-5'>上</b><b class='flag-5'>運(yùn)行</b><b class='flag-5'>TinyMaix</b> :超<b class='flag-5'>輕量級(jí)</b><b class='flag-5'>推理</b><b class='flag-5'>框架</b>--基于米爾MYD-LR3576開(kāi)發(fā)板

    信而泰×DeepSeek:AI推理引擎驅(qū)動(dòng)網(wǎng)絡(luò)智能診斷邁向 “自愈”時(shí)代

    、資源分配的最優(yōu)策略建議,減少資源浪費(fèi),提升整體網(wǎng)絡(luò)效率。 客戶實(shí)證:AI推理引擎的精準(zhǔn)力量某大型政務(wù)云平臺(tái)遭遇核心業(yè)務(wù)運(yùn)行緩慢問(wèn)題,初步懷疑網(wǎng)絡(luò)帶寬不足。在利用信而泰xnSight網(wǎng)絡(luò)應(yīng)用性能管理系統(tǒng)
    發(fā)表于 07-16 15:29

    半導(dǎo)體HPM6E8Y:先實(shí)時(shí)控制芯片驅(qū)動(dòng)的機(jī)器人關(guān)節(jié)“芯”時(shí)代

    機(jī)器人的運(yùn)動(dòng)控制需要兼顧通信的高實(shí)時(shí)性及高帶寬,以確保機(jī)器人能夠迅速響應(yīng)外部指令和環(huán)境變化。如何去解決機(jī)器人運(yùn)動(dòng)下的通信難題,在松山湖中國(guó)IC創(chuàng)新高峰論壇,上海先半導(dǎo)體科技有限公司嵌入式專(zhuān)家
    發(fā)表于 05-13 11:50 ?1484次閱讀
    先<b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>6E8Y:先<b class='flag-5'>楫</b>實(shí)時(shí)控制芯片驅(qū)動(dòng)的機(jī)器人關(guān)節(jié)“芯”時(shí)代

    重磅更新 | 先半導(dǎo)體HPM_APPS v1.9.0發(fā)布

    重磅更新 | 先半導(dǎo)體HPM_APPS v1.9.0發(fā)布
    的頭像 發(fā)表于 05-13 11:29 ?1163次閱讀
    重磅更新 | 先<b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>_APPS v1.9.0發(fā)布

    【強(qiáng)勢(shì)新】HPM5E00:EtherCAT運(yùn)動(dòng)控制MCU,先半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    。該系列是繼HPM6E00后的又一重磅布局,標(biāo)志著先在EtherCAT工業(yè)通信領(lǐng)域的持續(xù)發(fā)力與技術(shù)深化。 HPM5E00系列 在延續(xù)HPM6E00高算力基因的基礎(chǔ)
    發(fā)表于 05-07 14:07 ?924次閱讀
    【強(qiáng)勢(shì)<b class='flag-5'>上</b>新】<b class='flag-5'>HPM</b>5E00:EtherCAT運(yùn)動(dòng)控制MCU,先<b class='flag-5'>楫</b>半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    【強(qiáng)勢(shì)新】HPM5E00:EtherCAT運(yùn)動(dòng)控制MCU,先半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    HPM6E00后的又一重磅布局,標(biāo)志著先在EtherCAT工業(yè)通信領(lǐng)域的持續(xù)發(fā)力與技術(shù)深化。HPM5E00系列在延續(xù)HPM6E00高算力基因的基礎(chǔ)
    的頭像 發(fā)表于 05-06 11:09 ?890次閱讀
    【強(qiáng)勢(shì)<b class='flag-5'>上</b>新】<b class='flag-5'>HPM</b>5E00:EtherCAT運(yùn)動(dòng)控制MCU,先<b class='flag-5'>楫</b>半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖

    重磅更新 | 先半導(dǎo)體HPM_SDK v1.9.0 發(fā)布

    版本更新概況[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了開(kāi)發(fā)板已知問(wèn)題說(shuō)明[Update]將全系列開(kāi)發(fā)板VCore電壓調(diào)節(jié)至1.275V,HPM6750系列開(kāi)發(fā)板主頻設(shè)成816MHz,
    的頭像 發(fā)表于 04-02 08:31 ?698次閱讀
    重磅更新 | 先<b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.9.0 發(fā)布

    何在NXP MCU啟用D-Cache?

    我正在 NXP FRDM-MCXN947 MCU 測(cè)試 TFLite AI 模型的推理時(shí)間和性能。雖然我使用 NPU 獲得了良好的性能,但在不使用 NPU 時(shí),我的推理時(shí)間相對(duì)較慢。
    發(fā)表于 03-27 07:48

    高速鏈路設(shè)計(jì)難?利用HPM6750雙千兆以太網(wǎng)透?jìng)鲗?shí)現(xiàn)LED大屏實(shí)時(shí)控制

    HPM6750雙千兆以太網(wǎng)透?jìng)鞣桨秆菔綥ED大屏顯示系統(tǒng)利用發(fā)光二極管構(gòu)成的點(diǎn)陣模塊或像素單元組成大面積顯示屏顯示字符、圖像等信息,具有低功耗、低成本、高亮度、長(zhǎng)壽命、寬視角等優(yōu)點(diǎn),近年來(lái)隨著
    的頭像 發(fā)表于 02-08 13:45 ?1457次閱讀
    高速鏈路設(shè)計(jì)難?利用<b class='flag-5'>HPM6750</b>雙千兆以太網(wǎng)透?jìng)鲗?shí)現(xiàn)LED大屏實(shí)時(shí)控制

    半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!

    半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!
    的頭像 發(fā)表于 02-08 13:42 ?940次閱讀
    先<b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!

    半導(dǎo)體hpm_apps v1.7.0上線

    半導(dǎo)體hpm_apps v1.7.0上線
    的頭像 發(fā)表于 02-08 13:41 ?1092次閱讀
    先<b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>hpm</b>_apps v1.7.0上線

    半導(dǎo)體HPM_SDK v1.8.0 發(fā)布

    半導(dǎo)體HPM_SDK v1.8.0 發(fā)布
    的頭像 發(fā)表于 02-08 13:39 ?905次閱讀
    先<b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.8.0 發(fā)布