AI Engine陣列是由一系列的AI EngineTile構(gòu)成。每個AI Engine Tile包含一個AI Engine,一個存儲單元和一個互連單元,如下圖所示??梢钥吹较噜弮尚蠥I Engine Tile的存儲單元與AI Engine的位置正好相反。
存儲單元可被東西南北四個方向的AI Engine共享,當(dāng)然這也跟AI Engine的位置有關(guān)。例如圖中紅色AI Engine可訪問與之相鄰的4個存儲單元(黃色標(biāo)記)。最右側(cè)的橙色AI Engine就只能訪問三個存儲單元,因為其位于邊界。每個方向的存儲單元都有對應(yīng)的存儲器接口,AI Engine在訪問相應(yīng)方向的存儲單元時正是通過這些接口實現(xiàn)的。每次訪問的最大位寬為256。
水平方向相鄰的兩個AI Engine之間還有級聯(lián)端口,用于傳送累加器的結(jié)果。仍以上圖為例,最下方的一行AI Engine可從左至右級聯(lián),倒數(shù)第二行的AI Engine可從右至左級聯(lián)。同時,最下方級聯(lián)至最右側(cè)時可與倒數(shù)第二行最右側(cè)的AI Engine級聯(lián),形成蛇形級聯(lián)。
互連單元采用AIX4 Stream接口將數(shù)據(jù)在東西南北四個方向傳送。同時每個AI Engine Tile的存儲單元都包含一個DMA。每個DMA由一個獨立的S2MM和一個獨立的MM2S構(gòu)成。前者用于將數(shù)據(jù)從Stream上取下來寫入到存儲單元,后者用于將存儲單元的數(shù)據(jù)上傳到Stream,如下圖所示。
再看AI Engine自身,如下圖所示。每個AIEngine包含一個程序存儲單元,大小為16KB,有2個Stream輸入接口和2個Stream輸出接口,均為32位。因此,每個時鐘周期可從一個Stream上獲取一個32位數(shù)據(jù)或每4個時鐘周期可從一個Stream上獲取一個128位數(shù)據(jù)。每個AI Engine還有4個存儲單元訪問接口,但每個時鐘周期只可以有兩次讀操作和一次寫操作。
至此,我們可以看到AI Engine有三種數(shù)據(jù)源:存儲單元、AXI4-Stream和級聯(lián)接口。因此,編程時需要充分了解AIE的數(shù)據(jù)訪問能力:2個32位AXI4-Stream輸入,2個32位AXI4-Stream輸出,1個384位級聯(lián)Stream輸入,1個384位級聯(lián)Stream輸出,2個256位讀操作和1個256位寫操作。
AI Engine本身是一個高度優(yōu)化的SIMD(Single Instruction Multiple Data)& VLIW(Very Long Instruction Word)處理器,包含1個標(biāo)量處理單元,1個向量處理單元,2個讀地址發(fā)生器,1個寫地址發(fā)生器,1個取指和譯碼單元,如下圖所示。正因為有2個讀地址發(fā)送器和1個寫地址發(fā)生器,所以每次訪問可實現(xiàn)2個256讀操作和1個256寫操作。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19348瀏覽量
230260 -
AI
+關(guān)注
關(guān)注
87文章
31133瀏覽量
269456
原文標(biāo)題:AIE(12)—AI Engine架構(gòu)概覽
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論