如何執(zhí)行從L3內(nèi)存到Tile內(nèi)存的Shim數(shù)據(jù)移動
本教程演示了一個數(shù)據(jù)傳遞示例,以使用AIE方言解釋AMD Ryzen AI Phoenix中的數(shù)據(jù)流。
需求
AMD Ryzen AI Phoenix?;贚inux®的開發(fā)環(huán)境python®(用于測試自動化和結(jié)果驗證)IRON API和基于mlr的AI引擎工具鏈
項目簡要
SOC旨在加速ai - ml算法,以提供良好的卓越性能。NPU復(fù)合體
?16個AI核用于計算
?4 Memory Tiles用于快速內(nèi)存訪問
?4 sim DMA to MoveNote:這個項目是為Phoenix定制的。
涵蓋的功能和數(shù)據(jù)流
?一個SHIM DMA通過
?兩個SHIM DMA通過
?四個SHIM DMA通過
一個SHIM DMA通過
在本節(jié)中使用了列0的SHIM DMA(0,0), MEM Tile(0,1)和Core(0,2)。存儲在L3存儲器上的一組預(yù)定義數(shù)據(jù)流進入NPU復(fù)合體。數(shù)據(jù)通過MEM內(nèi)存從SHM DMA路由到Core,然后路由回來。接收到的輸出流被捕獲并與參考進行比較。
兩個SHIM DMA通過
在本節(jié)中使用了列0和列1的SHIM DMA((0,0), (1,0)), MEM Tile((0,1),(1,1))和Core((0,2),(1,2))。存儲在L3存儲器上的一組預(yù)定義數(shù)據(jù)流進入NPU復(fù)合體。數(shù)據(jù)通過MEM內(nèi)存從SHM DMA路由到Core,然后路由回來。接收到的輸出流被捕獲并與參考進行比較。
四個SHIM DMA通過
在本節(jié)中墊片DMA((0, 0),(1,0)、(2,0)(0)),MEM瓷磚((0,1),(1,1),(2,1),(3,1))和核心((0,2),(1、2),(2,2),(3 2)列0,1,2,3。存儲在L3存儲器上的一組預(yù)定義數(shù)據(jù)流進入NPU復(fù)合體。數(shù)據(jù)通過MEM內(nèi)存從SHM DMA路由到Core,然后路由回來。接收到的輸出流被捕獲并與參考進行比較。
數(shù)據(jù)流
構(gòu)建并運行
導(dǎo)航到其中一個testcase文件夾并構(gòu)建AIE設(shè)計:在測試用例路徑上使用make命令構(gòu)建設(shè)計:
在成功構(gòu)建完成后,主機應(yīng)用程序被編譯并執(zhí)行,以在Ryzen AI NPU上運行設(shè)計。
這觸發(fā)了MLIR-AIE運行時,它將計算卸載到NPU。我們可以立即看到加速的結(jié)果。
結(jié)論
通過這些教程,我們能夠演示如何使用“IRON API和基于mlr的AI引擎工具鏈”并執(zhí)行數(shù)據(jù)傳遞。此外,這些教程將擴展到描述單個和多個并行操作的SHIM dma的數(shù)據(jù)吞吐量。
本文編譯自hackster.io





