《18-d3s3-5-PULP-Lite Towards A More Light-weighted RISC-V Multicore Framework for IoT Application.pdf》由會員分享,可在線閱讀,更多相關《18-d3s3-5-PULP-Lite Towards A More Light-weighted RISC-V Multicore Framework for IoT Application.pdf(27頁珍藏版)》請在三個皮匠報告上搜索。
1、PULPPULP-Lite:Towards A More Lite:Towards A More LightLight-weighted RISCweighted RISC-V V Multicore Framework for Multicore Framework for IoT ApplicationIoT Application*報告人:連宇煜2023年8月25日高海兵 凌明 連宇煜 王景銘 朱燕翔 楊勇*本工作由東南大學本工作由東南大學-沁恒沁恒RISCRISC-V V內核微處理器技內核微處理器技術聯合研發中心資助術聯合研發中心資助簡介簡介PULPPULP-LiteLite架構及片上
2、互連架構及片上互連并行編程框架并行編程框架0102030405FPGAFPGA實現與實現與評估評估目錄目錄總結總結ContenContent t簡介簡介Introduction1.1 研究背景1.2 研究內容1.1 研究背景研究背景邊緣設備采集數據云端處理數據無線收發器 無線收發器功耗大 通信延時大 隱私易泄露近傳感器數據分析數據分析通常是基于機器學習的算法簡單MCU無法及時處理數據 專用硬件加速器 多核處理器優點:能效高缺點:通用性差邊緣采集云端處理數據傳輸多核并行執行來提升性能保留通用處理器的靈活性1.1 研究背景研究背景物聯網邊緣計算多核處理器的挑戰多核架構片上互連面向物聯網邊緣計算的多
3、核處理器的挑戰面向物聯網邊緣計算的多核處理器的挑戰硬件:傳統的CMP結構復雜、功耗大軟件:復雜的操作系統與編程模型導致延時大嚴苛的互連延時要求使得現有嚴苛的互連延時要求使得現有的互連性能優化方案難以應用的互連性能優化方案難以應用1.2 研究內容研究內容設計了一個相比PULP更加簡單的多核處理器架構:PULP-Lite 計算集群:8個RIC5Y 三種不同棧組織方式 6種不同的互連提出了一個超輕量級的多核編程框架 以8個CPU中的CPU0作為控制核心 任務管理通過被8個CPU共享的TCDM來完成 輪循/中斷中查詢任務片上互連分析與優化 在常見機器學習算法上對Xbar、Butterfly以及Clos
4、網絡性能分析 提出一種基于地址轉換的片上互連優化方案PULPPULP-LiteLite架構及架構及片上互連片上互連2.1系統架構2.2互聯結構2.3棧組織結構2.1 PULP-Lite系統架構系統架構與與PULPPULP的相同點:的相同點:計算集群由8個RI5CY組成 通過低延遲的片上互連連接8個CPU與TCDM與與PULPPULP的不同點:的不同點:PULP:單獨的FC控制外設PULP-Lite:CPU0控制 PULP:9個CPUPULP-Lite:8個CPU PULP-Lite:單獨的RAM用來存放棧數據 PULP-Lite:經過地址轉換的片上互連2.2 TCDM互聯網絡2.3 PULP-
5、Lite棧組織結構棧組織結構棧在獨立的棧在獨立的Stack RAM與棧在共享與棧在共享TCDM1、棧在獨立的Stack RAM優點:可大大減少經過互連的流量缺點:1、此時CPU將無法直接訪問其它CPU的棧2、棧最大限制為Stack RAM大小2、棧在共享TCDM優點:CPU間??上嗷ピL問、大小無限制缺點:1、互連端口的競爭概率大大增加2、內部路徑沖突發生的概率大大增加2.3 棧組織結構棧組織結構基于地址轉換的棧在共享基于地址轉換的棧在共享TCDM優化方案優化方案問題:不同的CPU可能同時訪問同一片TCDM Bank,但是由于互聯網絡的限制,該TCDM Bank只能分配給其中一個CPU,另一個C
6、PU需要等待解決方案:將每個CPU的棧集中在同一片TCDM Bank中,使多個CPU同時訪問同一片TCDM Bank的概率減小實現:在片上互聯中加入地址變換機制,通過改變??臻g地址映射將CPU的??臻g與TCDM Bank一一對應2.3 棧組織結構棧組織結構基于地址轉換的棧在共享基于地址轉換的棧在共享TCDM優化方案優化方案對應不同的CPU的棧棧內偏移判斷是否為棧地址對應不同的TCDM Bank棧內偏移一個CPU對棧的訪問對應一片Bank轉換前1個字的偏移轉換后8個字的偏移并行編程框架并行編程框架3.1編程框架3.2主要數據結構與API3.3 PULP-Lite編程案例3.1 編程框架兩種調度模
7、式 輪循模式CPU17輪詢控制塊獲取任務優點:具有更快的響應速度缺點:CPU17即使無任務時也需要時刻工作 中斷模式CPU0分配任務時觸發CPU17的中斷以執行任務優點:在沒有任務時,CPU17可以通過執行WFI 指令進入低功耗模式缺點:中斷響應的延遲將導致性能略微下降3.2 主要數據結構與主要數據結構與API變量取值范圍讀寫corei.Core_statusIDLE,BUSYCPU0CPUicorei.Func任務地址CPUiCPU0corei.Arg32位整型CPUiCPU0corei.Arg132位整型CPUiCPU0corei.Ret32位整型CPU0CPUicorei.Req0,1C
8、PU0/iCPU0/iCPU0和CPU17都會讀或寫corei.Req,使用編程框架時需確保它們不會同時寫入corei.Req,從而消除潛在的競爭多個CPU不會同時寫控制塊CB的主要數據3.2 主要數據結構與主要數據結構與API(a)輪循模式運行順序(b)中斷模式運行順序兩次分配任務之間必須調用API等待上一次使用的CPU完成任務編程框架API調用者void core_init()CPU0void core_alloc(int coreid,int Address,int arg,int arg1)CPU0void task_query()CPU17void core_wait(char co
9、re)CPU0int get_coreid()CPU17分配任務時CPU0寫,CPU17讀;執行任務時CPU17寫,CPU0讀可以確保不會出現多個CPU同時寫而產生的問題(寫丟失、寫合并、寫入順序)3.3 PULP-Lite編程案例CPU0-7執行相同的函數,但處理的Ai和Xi是基于每個CPU的coreid計算的core_alloc(1,c8_fun_1,0,0);core_alloc(2,c8_fun_1,0,0);core_alloc(3,c8_fun_1,0,0);core_alloc(4,c8_fun_1,0,0);core_alloc(5,c8_fun_1,0,0);core_all
10、oc(6,c8_fun_1,0,0);core_alloc(7,c8_fun_1,0,0);c8_fun_1(0,0);corewait(0 xfe);/等待CPU1至CPU7core_alloc(1,c8_fun_2,0,0);core_alloc(2,c8_fun_2,0,0);core_alloc(3,c8_fun_2,0,0);core_alloc(4,c8_fun_2,0,0);c8_fun_2(0,0);/CPU0corewait(0 x1e);/等待CPU1至CPU4 FPGAFPGA實現與評估實現與評估4.1評估算法4.2系統配置4.3性能評估4.4資源評估4.1 評估算法評估
11、算法19算法數據集描述CNN卷積神經網絡Mnist樣本為像素值范圍為0-255的28*28像素灰度圖像;CNN網絡結構為:輸入層-卷積-池化-卷積-池化-全連接-輸出層;推理10個樣本KNNK最近鄰分類Belfast(Queen)采用Euclidean 距離計算樣本之間的距離;KNN實際的分類數據是通過從樣本中提取出的140維特征數據;推理10個樣本NB樸素貝葉斯Turkish Music Emotion(UCI)推理40個樣本LR線性回歸Mnist(Yann LeCun)樣本為像素值范圍為0-1的20*20像素圖像;推理100個樣本LSBoost提升回歸樹Car(Matlab)該模型由一百個
12、回歸樹組成;推理100個樣本SVM支持向量機Ionosphere(UCI)核函數采用Gaussian核;推理10個樣本4.2 系統配置系統配置20PULP-LiteGAP8平臺FPGAGAPuino V2結構控制器FC無RI5CY*1FC Icache4KBFC L1數據存儲器16KB集群CPURI5CY*8集群CPU私有Icache4KB*80.5KB*8集群CPU共享Icache無16KB*1集群TCDM64KB*864KBL2 數據存儲器無128KB*4頻率50MHzISARV32IMC編譯器riscv32-unknown-elf-gcc 7.1.1優化等級O0OS無freertos編程
13、框架PULP-LiteOpenMP4.3 性能評估性能評估PULP-Lite 8核相比單核加速比211、PULP-Lite的加速比約為6X-7.9X2、加速比按照降序排列:xbar、bfly4、bfly2、Clos_m2n、Clos_m1n、Clos_0p5n(a)不同棧組織以及調度方式下的加速比(b)不同互連下的加速比I-Int:棧在Stack RAM且使用中斷調度;I-RR:棧在Stack RAM且使用輪循調度;S-Int:棧在共享TCDM且使用中斷調度;S-RR:棧在共享TCDM且使用輪循調度;T-Int:棧在經地址轉換優化的共享TCDM且使用中斷調度;T-RR:棧在經地址轉換優化的共享
14、TCDM且使用輪循調度)4.3 性能評估性能評估不同配置對不同配置對PULP-Lite總體性能的影響總體性能的影響22程序運行時間I-Int:棧在Stack RAM且使用中斷調度;I-RR:棧在Stack RAM且使用輪循調度;S-Int:棧在共享TCDM且使用中斷調度;S-RR:棧在共享TCDM且使用輪循調度;T-Int:棧在經地址轉換優化的共享TCDM且使用中斷調度;T-RR:棧在經地址轉換優化的共享TCDM且使用輪循調度)結論1:地址轉換性能提升為1%-7%結論2:輪循調度更快結論3:3種棧組織下,PULP-Lite性能優于GAP8 5.48%-18.08%、8.21%-21.16%、9
15、.95%-21.7%4.3 性能評估性能評估不同配置對不同配置對PULP-Lite總體性能的影響總體性能的影響23平均響應延時1、棧在Stack RAM時,ARL幾乎總是接近12、在xbar、bfly2和bfly4這三種互連中,使能地址轉換后的平均響應延時小于1.1周期4.4 資源評估資源評估24互聯LUTRegistersF7 Muxesxbar70456632PULP-Lite15381331324942000bfly2836990PULP-Lite15268531329241368bfly4778990PULP-Lite15287431329241736Clos_m2n161916465
16、6PULP-Lite15566731335742184Clos_m1n1081115328PULP-Lite15233631331441865Clos_m0p5n240900PULP-Lite15220631332441392綜合考慮,bfly4代表了PULP-Lite的最佳互連結構。此時,PULP-Lite的性能優于GAP8 9.7%-20.98%;總結總結5 總結總結A、PULP-Lite在常見的機器學習算法上加速比為6X-7.9XB、基于地址轉換的優化方案可將PULP-Lite的性能提升1%-7%,可使xbar、2-ary 3-fly Butterfly以及4-ary 2-fly But
17、terfly在常見的機器學習算法上均能保持低于1.1個周期的平均響應延時C、bfly4與地址轉換優化方案地址轉換優化方案相結合時,是PULP-Lite的最佳互連結構。此時,PULP-Lite在常見的機器學習算法上的表現優于GAP8 9.7%-20.98%指標總結我們設計了PULP-Lite,相比PULP更簡單的基于8個RI5CY核心的多核處理器架構具有三種不同的棧組織方式具有三種不同的棧組織方式實現了六種片上實現了六種片上TCDMTCDM互聯網絡互聯網絡提出了配套的超輕量級多核編程框架提出了配套的超輕量級多核編程框架針對常見機器學習算法分析和優化多核架構性能針對常見機器學習算法分析和優化多核架構性能謝謝謝謝報告結束