精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Vitis HLS相關問答詳解

XILINX開發者社區 ? 來源:XILINX開發者社區 ? 2023-08-11 11:23 ? 次閱讀

在 8 月 3 日舉行的針對如何利用 AMD Vitis HLS 提高任務級并行性的網絡研討會中,我們深入探討了任務級并行性的相關優勢和使用方法。本次研討會中我們收到了來自廣大用戶和網友的熱情提問,針對代表性較強的問題,專家在線進行了集中答疑,研討會后我們另精選出部分高頻問題在本文中做出進一步解答。

1. 所謂多任務,在 C/C++ 代碼編寫方面是否有新的規則或要求?或是會自動進行多任務的切分?

需要手工在 C++ 代碼里明確指定可并行執行的任務(用 task,添加頭文件 hls_task.h),同時可并行執行的 task 接口(對應 C++ 函數的形參)必須是 stream 或 stream_of_blocks。

2. 數據驅動型設計要求反饋指的是什么呢?可以舉個例子嗎?

數據驅動型支持反饋不是要求反饋,例如:funcA 輸出給 funcB, funcB 輸出給 funcC,funcC 的有一個輸出給到 funcA 構成反饋支路。簡單地說,數據流向不是單一向前的。

3. 具體代碼應用中怎么快速識別出那兩種并行任務的區別在哪里?

要從數據流的角度考慮,例如,數據流單一流動且后續用到的數據依賴于之前函數的輸出,這種情況下是控制驅動型。funcA -> funcB -> funcC -> funD

如果數據流形成分支,但仍有依賴關系,比如 funcA -> funcB1,同時 funcA -> funcB2,那么 funcB1 和 funcB2 就是并行執行的兩個任務,這就是數據驅動型。

4. 我們在使用 C/C++ 描述算法時,只需關注算法本身就可以了,但是 FPGA 好像不是這樣,比如 C/C++ 沒有時序的概念, HLS 如何解決這個問題?

HLS 工作原理主要有兩大內容:Schedule,這個過程是提取狀態控制的過程,判斷什么時候執行什么操作;Binding,這個過程是指定這些操作用 FPGA 內的什么資源來實現。前者管理時序,后者管理資源。

5. 請問在直播講解的示例中,Data_TLP 為什么能帶來這么大的性能提升?示例中任務不是多么復雜,為什么 DATAFLOW 的延遲和 II 會那么高?

因為 DATA_TLP 是多個任務并行執行,而 DATAFLOW 盡管相比于原始已經有了并行性,但是一種流水的方式,所以延遲和II 都會比純粹的并行多任務要大。

6. Stream 如果是 fifo,可以通過 pragma 指定深度嗎?

可以不用 pragma 指定,在定義 stream 時就可以指定,例如:hls_stream,當然也可以通過 pragma STREAM 指定。

7. HLS 是否對硬件有特殊要求?

使用 Vitis HLS,只要芯片型號是 AMD Xilinx 7 系列 FPGA 到 Versal Adaptive SoC 芯片就可以。

8. Task 這個語法,在 2023 之前的版本里支持嗎?

從 Vitis HLS 2022.2 版本開始支持。

9. HLS 能編寫成一個 IP,用于流片嗎?

這個需要先了解 HLS 的本質:它是把高層次語言比如 C++/C 描述的算法轉換成傳統的硬件語言,最終在 FPGA 上實現。采用 AMD Vitis HLS 時,選擇的目標芯片只能是 AMD 的 FPGA。但從廣義上來講,如果生成的 RTL 代碼不受具體 FPGA 芯片型號的限制,可以封裝成 IP 使用,但到流片還有很大一段距離。

10. 請問 HLS 在做協議組幀方面,與 Verilog 相比是否更有優勢?

HLS 在復雜算法方面的實現上更有優勢,像這種協議組幀更適合用 HDL 比如 Verilog 或 VHDL 描述。

11. HLS 設計的驗證如何保證充分性?

這個要從 C++ 測試平臺的代碼覆蓋率角度考慮,要專門的工具來測試代碼覆蓋率,所以要保證驗證的重復性就要保證代碼覆蓋率為 100%。

12. 要用好 HLS 有沒有學習 Verilog 的必要?

如果你是軟件工程師,沒有 FPGA 背景知識,那么學習 HLS 需要先了解一下 FPGA 的內部結構和工作機制,沒有多大必要專門學習 Verilog。

13. 如何對 HLS 工程進行時鐘頻率的提升優化?

首先,要從算法本身考慮,結合數據流進行算法分割。此外還有兩個方面要考慮:一是代碼風格,盡可能保證 C++ 代碼風格遵循 HLS 的規范,二是如何使用 pragma,通過 pragma 來改善性能。

14. HLS 的線性代數庫被移除后,還有什么庫函數可以方便地實現矩陣乘法嗎?

HLS 線性代數庫并沒有被移除,而是統一放到了 Vitis Library 里了。

這里既有矩陣乘也有矩陣分解。

15. HLS 封裝的 IP 能像 Verilog 那樣做參數化選擇嗎?

所謂 HLS 封裝 IP 是指 Vitis HLS 把最終生成的 RTL 代碼封裝為 IP 供 Vivado 使用,這時已經完成了 C/C++ 到 RTL 代碼的轉換,所以封裝的 IP 是無法參數化的。

16. 本來模塊單獨沒有時序問題,加上 DATAFLOW 后時序問題就出現了,而且定位不到問題點,DATAFLOW 是否會影響時序?

DATAFLOW 會增加 Memory 的開銷,也就增加了資源利用率,間接影響時序。但你要先具體看一下時序問題出現在哪里。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • amd
    amd
    +關注

    關注

    25

    文章

    5362

    瀏覽量

    133370
  • Verilog
    +關注

    關注

    28

    文章

    1333

    瀏覽量

    109708
  • 函數
    +關注

    關注

    3

    文章

    4233

    瀏覽量

    61961
  • C++
    C++
    +關注

    關注

    21

    文章

    2084

    瀏覽量

    73297
  • Vitis
    +關注

    關注

    0

    文章

    145

    瀏覽量

    7310

原文標題:Vitis HLS 研討會精彩回放及問答詳解

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA高層次綜合HLSVitis HLS知識庫簡析

    ,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統一將HLS集成到Vitis里了,集成之后增加了一些功能,同時將這部分開源出來了。
    發表于 09-07 15:21

    使用Vitis HLS創建屬于自己的IP相關資料分享

    1、使用Vitis HLS創建屬于自己的IP高層次綜合(High-level Synthesis)簡稱HLS,指的是將高層次語言描述的邏輯結構,自動轉換成低抽象級語言描述的電路模型的過程。對于AMD
    發表于 09-09 16:45

    Vivado HLSVitis HLS 兩者之間有什么區別

    Vitis HLS下,一個Solution的Flow Target可以是Vivado IP Flow Target,也可以是VitisKernel Flow Target,如下圖所示。前者最終導出來
    的頭像 發表于 11-05 17:43 ?3.8w次閱讀

    Vitis初探—1.將設計從SDSoC/Vivado HLS遷移到Vitis上的教程

    本文介紹如何一步一步將設計從SDSoC/Vivado HLS遷移到Vitis平臺。
    的頭像 發表于 07-25 17:45 ?3625次閱讀
    <b class='flag-5'>Vitis</b>初探—1.將設計從SDSoC/Vivado <b class='flag-5'>HLS</b>遷移到<b class='flag-5'>Vitis</b>上的教程

    Vitis初探—1.將設計從SDSoC/Vivado HLS遷移到Vitis

    本文介紹如何一步一步將設計從SDSoC/Vivado HLS遷移到Vitis平臺。
    發表于 01-31 08:12 ?8次下載
    <b class='flag-5'>Vitis</b>初探—1.將設計從SDSoC/Vivado <b class='flag-5'>HLS</b>遷移到<b class='flag-5'>Vitis</b>上

    基于Vitis HLS的加速圖像處理

    使用Vivado / Vitis工具提供預安裝的OpenCV版本。盡管Vitis_hls編譯Vision庫不需要OpenCV,但是用戶測試驗證使用時OpenCV。
    的頭像 發表于 02-16 16:21 ?2272次閱讀
    基于<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>的加速圖像處理

    Vitis HLS工具簡介及設計流程

    Vitis HLS 是一種高層次綜合工具,支持將 C、C++ 和 OpenCL 函數硬連線到器件邏輯互連結構和 RAM/DSP 塊上。Vitis HLS 可在
    的頭像 發表于 05-25 09:43 ?2208次閱讀

    Vitis HLS如何添加HLS導出的.xo文件

    HLS導出的.xo文件如何導入到Vitis里面?需要把.xo文件解壓,然后把文件夾導入到Vitis Kernel/src文件夾下嗎?
    的頭像 發表于 08-03 11:20 ?2947次閱讀
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>如何添加<b class='flag-5'>HLS</b>導出的.xo文件

    Vitis HLS前端現已全面開源

    Vitis HLS 工具能夠將 C++ 和 OpenCL 功能部署到器件的邏輯結構和 RAM/DSP 塊上。在 GitHub 上提供 Vitis HLS 前端為研究人員、開發人員和編譯
    的頭像 發表于 08-03 09:53 ?856次閱讀

    Vitis HLS知識庫總結

    對于AMD Xilinx而言,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統一將HLS集成到Vitis里了,集成之后增加了一些功能,同時將這部分開
    的頭像 發表于 09-02 09:06 ?3253次閱讀

    理解Vitis HLS默認行為

    相比于VivadoHLS,Vitis HLS更加智能化,這體現在Vitis HLS可以自動探測C/C++代碼中可并行執行地部分而無需人工干預添加pragma。另一方面VitisHLS也
    的頭像 發表于 11-24 11:42 ?1643次閱讀

    AMD全新Vitis HLS資源現已推出

    AMD Vitis HLS 工具允許用戶通過將 C/C++ 函數綜合成 RTL,輕松創建復雜的 FPGA 算法。Vitis HLS 工具與 Vivado Design Suite(用于
    的頭像 發表于 04-23 10:41 ?952次閱讀
    AMD全新<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>資源現已推出

    如何在Vitis HLS GUI中使用庫函數?

    Vitis? HLS 2023.1 支持新的 L1 庫向導,本文將講解如何下載 L1 庫、查看所有可用功能以及如何在 Vitis HLS GUI 中使用庫函數。
    的頭像 發表于 08-16 10:26 ?972次閱讀
    如何在<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b> GUI中使用庫函數?

    Vitis HLS:使用任務級并行性的高性能設計

    電子發燒友網站提供《Vitis HLS:使用任務級并行性的高性能設計.pdf》資料免費下載
    發表于 09-13 17:21 ?0次下載
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>:使用任務級并行性的高性能設計

    Vitis HLS移植指南

    電子發燒友網站提供《Vitis HLS移植指南.pdf》資料免費下載
    發表于 09-13 09:21 ?0次下載
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>移植指南