那曲檬骨新材料有限公司

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

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

3天內(nèi)不再提示

Vitis HLS相關(guān)問答詳解

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 2023-08-11 11:23 ? 次閱讀

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

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

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

2. 數(shù)據(jù)驅(qū)動型設(shè)計要求反饋指的是什么呢?可以舉個例子嗎?

數(shù)據(jù)驅(qū)動型支持反饋不是要求反饋,例如:funcA 輸出給 funcB, funcB 輸出給 funcC,funcC 的有一個輸出給到 funcA 構(gòu)成反饋支路。簡單地說,數(shù)據(jù)流向不是單一向前的。

3. 具體代碼應(yīng)用中怎么快速識別出那兩種并行任務(wù)的區(qū)別在哪里?

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

如果數(shù)據(jù)流形成分支,但仍有依賴關(guān)系,比如 funcA -> funcB1,同時 funcA -> funcB2,那么 funcB1 和 funcB2 就是并行執(zhí)行的兩個任務(wù),這就是數(shù)據(jù)驅(qū)動型。

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

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

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

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

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

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

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

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

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

從 Vitis HLS 2022.2 版本開始支持。

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

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

10. 請問 HLS 在做協(xié)議組幀方面,與 Verilog 相比是否更有優(yōu)勢?

HLS 在復(fù)雜算法方面的實(shí)現(xiàn)上更有優(yōu)勢,像這種協(xié)議組幀更適合用 HDL 比如 Verilog 或 VHDL 描述。

11. HLS 設(shè)計的驗證如何保證充分性?

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

12. 要用好 HLS 有沒有學(xué)習(xí) Verilog 的必要?

如果你是軟件工程師,沒有 FPGA 背景知識,那么學(xué)習(xí) HLS 需要先了解一下 FPGA 的內(nèi)部結(jié)構(gòu)和工作機(jī)制,沒有多大必要專門學(xué)習(xí) Verilog。

13. 如何對 HLS 工程進(jìn)行時鐘頻率的提升優(yōu)化?

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

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

HLS 線性代數(shù)庫并沒有被移除,而是統(tǒng)一放到了 Vitis Library 里了。

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

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

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

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

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • amd
    amd
    +關(guān)注

    關(guān)注

    25

    文章

    5496

    瀏覽量

    134635
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110392
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62971
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73857
  • Vitis
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    7497

原文標(biāo)題:Vitis HLS 研討會精彩回放及問答詳解

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享

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

    Vivado HLSVitis HLS 兩者之間有什么區(qū)別

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

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

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

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

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

    基于Vitis HLS的加速圖像處理

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

    Vitis HLS工具簡介及設(shè)計流程

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

    Vitis HLS如何添加HLS導(dǎo)出的.xo文件

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

    Vitis HLS前端現(xiàn)已全面開源

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

    Vitis HLS知識庫總結(jié)

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

    理解Vitis HLS默認(rèn)行為

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

    AMD全新Vitis HLS資源現(xiàn)已推出

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

    如何在Vitis HLS GUI中使用庫函數(shù)?

    Vitis? HLS 2023.1 支持新的 L1 庫向?qū)В疚膶⒅v解如何下載 L1 庫、查看所有可用功能以及如何在 Vitis HLS GUI 中使用庫函數(shù)。
    的頭像 發(fā)表于 08-16 10:26 ?1256次閱讀
    如何在<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b> GUI中使用庫函數(shù)?

    Vitis HLS:使用任務(wù)級并行性的高性能設(shè)計

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

    Vitis HLS移植指南

    電子發(fā)燒友網(wǎng)站提供《Vitis HLS移植指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:21 ?0次下載
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>移植指南
    杨筠松 24山| 百家乐官网投注方法新版| 百家乐牌路分析仪| 百家乐官网平注法是什么| 威尼斯人娱乐注册| 百家乐官网策略网络游戏信誉怎么样| 香港六合彩资料大全| 3U百家乐游戏| 百家乐官网单跳投注法| 博天堂百家乐的玩法技巧和规则 | 百家乐最新投注法| 海立方百家乐官网赢钱| 威尼斯人娱乐上网导航| 百家百家乐官网官网网站| 开鲁县| 百家乐博送彩金18| 百家乐官网赌场破解| 瑞博网站| 百家乐平注秘籍| 百家乐官网线路图分析| 百家乐官网稳赚秘籍| 大发888娱乐城存款| 免费百家乐在线| 新百家乐官网庄闲路单图记录| 香港六合彩管家婆| 百家乐电子发牌盒| 联众百家乐官网的玩法技巧和规则| 天气| 大发888客户端官方下载| 网上百家乐骗人的| 百家乐官网赌场策略大全| 尊龙国际网址| 百家乐双峰县| 百家乐斗牛稳赚| 百家乐官网闲庄和| 百樂坊娱乐场| 全讯网新2代理| 百家乐最好的投注法| 百家乐官网庄闲必胜规| 百家乐官网的技术与心态| 在线博彩网|