在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>硬件即代碼第四部分:嵌入式RAM

硬件即代碼第四部分:嵌入式RAM

2023-06-14 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

正如我在本系列中已經(jīng)多次提到的那樣,消除中央內(nèi)存瓶頸是構(gòu)建定制硬件CPU 方法相比的性能優(yōu)勢之一。這并不意味著 FPGA 設(shè)計從不包含內(nèi)存;它們通常與外部存儲器一起使用。但是,本期的主題是另一種對性能至關(guān)重要的內(nèi)存:嵌入式內(nèi)存。讓我們從一些示例代碼開始,然后更多地討論嵌入式存儲器。

如果您是本系列的新手,您可能想回到硬件即代碼第 I 部分。

軟件更新

在我們進(jìn)入它之前的最后一件事; 在構(gòu)建以下示例之前,您需要將 Upduino HLS 工具鏈更新到最新版本。要進(jìn)行更新,只需輸入以下pio命令(如果您使用的是 Visual Studio Code,請單擊左側(cè)的 PlatformIO 圖標(biāo) (ant) 打開命令提示符,然后選擇 Miscellaneous 下的 Platform Core CLI):

> pio platform update upduino_hls

這應(yīng)該安裝最新版本(撰寫本文時為 0.2.1)。

簡單的感知器

上次,我說過第三部分的例子涉及與神經(jīng)網(wǎng)絡(luò)相同類型的計算。下面的示例實現(xiàn)了一個單層神經(jīng)網(wǎng)絡(luò),稱為感知器,如您所見,代碼非常相似。

pYYBAGNYf_uAGvDlAAC7z5JbqX0708.png
?

與往常一樣,此代碼也可從 git 存儲庫 ( https://github.com/sathibault/hac-examples ) 獲得。

這個例子就像 poly-classify第三部分的例子一樣進(jìn)行分類。然而,這次我們從流行的鳶尾花數(shù)據(jù)集中對花朵進(jìn)行分類。每朵花都有四個數(shù)據(jù)值:萼片長度、萼片寬度、花瓣長度和花瓣寬度。在這種情況下,我們對花類型(setosa 或不)進(jìn)行分類。

運行示例時,您應(yīng)該得到以下輸出:

Ex 0: -822
Ex 1: -837
Ex 2: 94
Ex 3: 777

這顯示了四個示例花的感知器輸出。輸出值小于 0 被預(yù)測為 setosa 類型,大于 0 則不是 setosa。四個示例的實際花型是 1) setosa、2) setosa、3) versicolour 和 4) virginica。因此,這與上面的感知器預(yù)測完全一致。

陣列和嵌入式存儲器

上次的例子和這里的函數(shù)的主要區(qū)別在于dotproduct數(shù)組的使用。Upduino HLS 工具支持我們在這里使用的數(shù)組,但您可能想知道in_array,4>第 5 行的類型和第as_array27 行的函數(shù)。有時,為 CPU 編寫的完全正常的 C/C++ 根本無法提供足夠的信息來生成等效的硬件。數(shù)組就是這種情況。數(shù)組通常作為一個簡單的指針在 C/C++ 程序中傳遞,指向數(shù)組所在的中央內(nèi)存中的某個空間。

在硬件綜合的情況下,陣列實際上被映射到嵌入在硬件中的單獨的專用存儲器。是的,你沒看錯!FPGA 包含許多稱為嵌入式存儲器或塊 RAM 的小型存儲器塊。每個數(shù)組變量都有專用的內(nèi)存塊來保存該變量的數(shù)據(jù)。

為了為數(shù)組變量生成內(nèi)存,我們需要知道它的大小,這就是in_array,4>類型的重點。此類型表示參數(shù)為輸入數(shù)組,元素類型為int16_t,數(shù)組中的最大數(shù)據(jù)量為 4。這使得硬件生成器能夠分配正確數(shù)量的內(nèi)存塊來接收features參數(shù)的數(shù)據(jù)。

在第 27 行,該as_array函數(shù)用于構(gòu)造正確的類型以匹配in_array參數(shù),還用于指示數(shù)組中實際有多少數(shù)據(jù)(與我們從參數(shù)類型中知道的最大值相反)。由于此調(diào)用在 CPU 上執(zhí)行,而函數(shù)在 FPGA 上執(zhí)行,因此數(shù)據(jù)必須從 CPU 發(fā)送到 FPGA。因此,我們需要確切地知道要發(fā)送多少數(shù)據(jù)。

這是我們必須遵循某些設(shè)計模式才能針對硬件生成的示例之一。不幸的是,確切的機制可能因工具鏈而異。好消息是這樣的情況并不多,而且主體始終相同,即使語法不同。對于數(shù)組,原則是我們需要提供一些關(guān)于數(shù)組的大小信息,我們使用我們正在使用的框架提供的某些類型或函數(shù)來做到這一點。

多類感知器

iris 數(shù)據(jù)集實際上包含三種不同類型的花:setosa、versicolour 和 virginica。percetron 模型可以擴展到多個類,只需每個類使用一個感知器。輸出最高的是預(yù)測類。下面是一個多類感知器預(yù)測鳶尾花類型的實現(xiàn)。

以下示例實現(xiàn)了用于識別三種不同鳶尾花類型的多類感知器。

pYYBAGNYf_6AIzTEAAENwA1SiDc787.png
?

輸出應(yīng)如下所示:

>.\program
Ex 0 = 0 (3694, -3018, -5298)
Ex 1 = 0 (2474, -1038, -6052)
Ex 2 = 1 (-944, 1292, 204)
Ex 3 = 2 (-2392, 138, 5364)

如您所見,每行的最大值與該示例的預(yù)期類匹配。

這個例子介紹了另一種數(shù)組參數(shù)類型out_array(第 5 行)和相應(yīng)的resize 方法(第 12 行)。此類型的用途與 相同in_array,但表示輸出數(shù)組參數(shù)。因此,它再次向編譯器指示要為該數(shù)組保留多少空間,即它將擁有的最大元素數(shù)。

除了最大數(shù)組大小,由于out數(shù)據(jù)需要從 FPGA 返回到 CPU,系統(tǒng)必須知道數(shù)組中實際有多少數(shù)據(jù)。resize方法用于指示實際使用了多少元素并需要將其發(fā)送回調(diào)用者。這些示例都沒有使用輸入和輸出數(shù)組,但也可以以inout_array 相同的方式使用模板類型。

您可能想知道的另一件事是為什么不是coef二維數(shù)組?那只是因為 Upduino HLS 工具鏈只支持一維數(shù)組。大多數(shù) HLS 工具鏈都支持多維數(shù)組,但我不覺得這個限制特別煩人。指數(shù)計算簡單;它只是行索引 * 行長度 + 列索引。必須將其寫出來有助于您了解所需的算術(shù)資源,并且大多數(shù)情況下,如果您考慮一下,它可以更有效地完成(提示:使用索引變量,只需 2 次加法,沒有乘法)。

表現(xiàn)

關(guān)于這些例子,我想說明兩個要點。首先是嵌入式內(nèi)存如何打破內(nèi)存瓶頸。由于每個數(shù)組都有自己的內(nèi)存,它們是完全獨立的,可以同時并行訪問!此外,許多 FPGA 的嵌入式存儲器有兩個端口,這意味著您實際上可以在每個陣列的每個周期訪問兩個值。這是很多并行性。那么有什么問題呢?再次,我們受到空間的限制。

每個芯片只有固定數(shù)量的內(nèi)存塊。內(nèi)存塊由它們可以存儲的位數(shù)來描述。UPduino 板上的 FPGA 有 30 個塊 RAM,每個 RAM 有 4096 位存儲。要計算數(shù)組的塊數(shù),只需將元素數(shù)乘以每個元素的位數(shù),然后四舍五入到最接近的塊 RAM 大小的倍數(shù)。

在 UPduino 上,總比特數(shù)為 30 x 4096 = 120Kb = 15KB。這確實是有限的,但這個 FPGA 是可用的最小的之一。大型 FPGA 可以有許多 Mb 的塊 RAM。旁注:大多數(shù)硬件文檔將以位為單位給出內(nèi)存編號,用小寫 b (例如 Kb)編寫,而不是通常用大寫 B (例如 KB)編寫的字節(jié)。

第二點是循環(huán)幫助我們在空間和速度之間進(jìn)行權(quán)衡。在上一部分中,一切都是并行的,并占用了多個加法器和乘法器。在這一部分中,我們使用了循環(huán),這將花費更多的執(zhí)行時間,但只使用一個乘法器和一個加法器。這不是全部,不是全部或全部。一個中間選項是部分展開循環(huán)以平衡速度與空間的權(quán)衡。

這是對你的挑戰(zhàn)。上面的多類感知器示例需要按順序執(zhí)行的 3 x 4 次迭代(可以并行執(zhí)行迭代,但這是一個高級主題,稍后才會介紹)。您如何重寫此示例以利用嵌入式存儲器的并行性并并行計算 3 個輸出?

下一步

到目前為止,我們只在相當(dāng)高的水平上討論了空間。下一次,我將更深入地介紹 FPGA 內(nèi)部的內(nèi)容、如何測量空間、有多少可用空間以及如何準(zhǔn)確了解特定功能正在使用多少。

繼續(xù)第 V 部分:FPGA 內(nèi)部

連接

在我發(fā)布新的分期付款時,請關(guān)注我以保持最新狀態(tài)。還有一個 Discord 服務(wù)器(公共聊天平臺),用于您在https://discord.gg/3sA7FHayGH上可能有的任何評論、問題或討論


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: h版欧美一区二区三区四区| 亚洲五月婷| 手机看片福利| 天天曰夜夜操| 人人艹在线视频| 福利视频自拍| 欧美社区| 女性私密部位扒开的视频| 中国免费黄色片| 天天摸天天做| 人人看人人看人做人人模| 美女一级a毛片免费观看| 国产欧美日韩电影| 亚洲69视频| 国产全部理论片线观看| 一区二区三区在线播放| 一级欧美日韩| 日本国产高清色www视频在线| 午夜影视福利| 在线观看亚洲专3333| 欧美一卡二卡科技有限公司| 奇米色影院| 97人人爱| 大黄网站在线观看| 天天插天天透| 亚洲午夜大片| 4455vw亚洲毛片| 最新午夜宅男| 国产精品视频你懂的| 濑亚美莉vs黑人欧美视频| 中文字幕亚洲一区二区v@在线 | 青青伊人91久久福利精品| 国产精品免费一级在线观看| 色天使色婷婷在线影院亚洲| 国模巴| 手机成人在线视频| 在线五月婷婷| 黄色软件合集| 久久影视一区| 四虎影视免费观看| 9久久9久久精品|