<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

工具鏈工具——映射與調度、模擬與驗證、開發與測試工具

存內計算開發者 ? 來源:jf_13681693 ? 作者:jf_13681693 ? 2024-05-16 14:30 ? 次閱讀

本篇文章將重點介紹工具鏈的工具相關知識,我們將從工具鏈的基本概念出發,重點介紹工具鏈中的映射和調度工具、模擬與驗證工具、開發和測試工具,最后提出對工具鏈發展的展望,從而對工具鏈的工具進行一個較為系統的講解。

工具鏈的基本概念

工具鏈,英文名稱toolchain,通常是指在軟件開發或硬件設計中使用的一系列工具和軟件,用于完成特定任務或流程。這些工具一般接連地使用,從而完成一個個任務,這也是“工具鏈”名稱的由來。

而在AI芯片領域,工具鏈特指連接模型算法到芯片部署的端到端系列工具。面向存算一體芯片的深度學習編譯工具鏈包括深度學習的算法設計、前端網絡的模型轉換、存算一體的電路設計等模塊;如今,面向傳統芯片的深度學習編譯工具鏈發展健全,而面向存算一體芯片的深度學習編譯工具鏈在前端優化策略、后端空間映射等方面都仍有欠缺,這使得深度學習部署在存算一體芯片上移植性低、成本高,因此需要我們設計出能實現端到端的存算一體工具鏈及軟硬件系統。面向存內計算芯片的深度學習編譯工具鏈通常包括量化、圖優化、映射與調度、模擬與驗證、開發與測試等工具,前面我們已經介紹過量化和圖優化相關知識,本篇文章我們將介紹映射與調度、模擬與驗證、開發與測試這三種工具。

映射與調度工具

數據布局和計算任務在存儲陣列中的映射至關重要,相應的工具應能智能地分配和管理數據在內存單元中的位置,優化計算效率和帶寬使用;調度工具則負責在不同時刻根據資源約束安排計算操作,確保有效利用存內計算硬件的并行性和容量。在深度學習編譯工具鏈中,映射與調度工具專門用于將高層的模型描述轉換為優化的硬件指令,并調度這些指令到具體的計算資源上。這些工具通過高級優化技術來提升執行效率和硬件利用率。

下面以一些具體工具舉例:

1.TPU-MLIR[1]:

TPU-MLIR是一種專用于處理器的TPU編譯器。該編譯器項目提供了一個完整的工具鏈,可以將來自不同深度學習框架(PyTorch, ONNX, TFLite和Caffe)的各種預訓練神經網絡模型轉換為高效的模型文件(bmodel/cvimodel),以便在SOPHON TPU上運行。通過量化到不同精度的bmodel/cvimodel,優化了模型在sophon計算TPU上的加速和性能。這使得可以將與對象檢測、語義分割和對象跟蹤相關的各種模型部署到底層硬件上以實現加速。

wKgaomZFpuKARkewABFh7NxHIUo638.png

圖 1 TPU-MLIR整體架構[1]

2.TensorRT[2]:

TensorRT是NVIDIA提供的一個高性能深度學習推理(inference)引擎,專為生產部署優化。TensorRT提供了API解析器,可以從所有主要的深度學習框架中導入經過訓練的模型,廣泛用于需要快速推理的應用場景,如視頻分析和圖像處理。

wKgaomZFpvGAWAKXAAQmxLw0Uy4079.png

圖 2 TensorRT logo[2]

3.TVM[3]:

Apache TVM是一個端到端的深度學習編譯框架,適用于 CPU、GPU 和各種機器學習加速芯片。TVM 提供以下功能:將深度學習模型編譯成最小可部署的模塊;在更多的后端自動生成和優化模型的基礎設施,進一步提高性能。TVM支持廣泛的硬件平臺和前端框架,能夠自動優化模型以適應不同的硬件架構。

wKgZomZFpv2AXiDxABOomawG1Rk056.png

圖 3 TVM示意圖[3]

4.OpenVINO[4]:

OpenVINO是英特爾開發的一套優化深度學習性能的工具集,是一款可輕松實現“一次寫入,處處部署”的開源AI工具套件,可以縮短延遲,提高吞吐量,加速AI推理過程,同時保持精度,縮小模型占用空間,優化硬件使用,支持多種類型的英特爾硬件。OpenVINO可以轉換和優化使用TensorFlow和PyTorch等熱門框架訓練的模型,在多種英特爾硬件和環境、本地、設備、瀏覽器或云中部署,用于加速計算機視覺、自動駕駛等領域的深度學習推理任務。

wKgaomZFpwyAZqD5ABJ_rRTUUeg604.png

圖 4 OpenVINO原理示意圖[4]

模擬與驗證工具

芯片設計中,模擬與驗證工具是確保設計達到期望性能和功能的關鍵。這些工具模擬實際操作環境,預測芯片行為,并驗證設計是否符合規格,幫助發現并修正錯誤,提高產品可靠性和效率。

芯片設計的模擬技術可分為軟件仿真和硬件仿真。軟件仿真在計算機上使用仿真軟件模擬芯片設計行為,不需硬件參與,常見工具有ModelSim、VCS、Virtuoso、C++或SystemC相關芯片模擬器等;硬件仿真則使用通用硬件平臺FPGA或專用仿真器,提供更真實的硬件操作環境,仿真速度更快。

按流程的先后,芯片設計的模擬技術還可更細致地分為行為級仿真(功能仿真)、綜合后的功能仿真、綜合后帶時序信息地仿真、布局布線后的功能仿真、布局布線執行后的時序仿真[5],工具鏈驗證使用的模擬器以行為級為主。在仿真過程中,綜合后門級功能仿真被稱為前仿,布局布線后的時序仿真被稱為后仿,前仿使用硬件描述語言描述電路邏輯;后仿在設計完成后進行,主要考慮電路物理(連線、排布、電容、電阻等)的影響。

驗證技術包括形式驗證和代碼驗證。形式驗證通過數學方法證明設計正確性,不依賴測試例,常用工具有Synopsys的VC Formal;代碼驗證,尤其是代碼覆蓋分析,用來檢查測試用例是否覆蓋所有可能路徑,幫助發現遺漏的功能區域。

對于新型的存內計算芯片,由于FPGA平臺難以完全仿真其核心功能,常采用軟件仿真或特定開發板如知存科技的WTMDK2101系列。而在數字芯片設計中,前端充分的邏輯仿真可避免后端問題。因此,在存算一體芯片的設計過程中,前仿和軟件仿真是非常重要的內容。

下面介紹部分常用模擬與驗證工具:

1. VCS:高性能Verilog仿真和調試工具,支持多種語言,適用于復雜SoC和ASIC設計驗證。優勢在于仿真速度快,調試方便,但僅支持Linux和Unix系統。

wKgaomZFpxuAUEbBAA1UDmzG1Yw705.png

圖5 使用VCS和Verdi進行仿真并查看波形的一個簡單例子

2. PrimeTime:靜態時序分析工具,全面進行時序性能驗證,包括時序分析和功耗分析。但是該軟件的操作需要相關專業知識,準確選擇庫文件和延時文件至關重要。

3. ModelSim:支持多種HDL語言的仿真工具,提供豐富的調試功能。優勢在于友好的用戶界面,但在仿真速度和性能上不如VCS。

4. Formality:形式驗證工具,驗證數字IC設計中功能等效性,保證設計修改不引入錯誤。但需要設計者熟悉設計語言版本,可能存在編程語言版本導致的兼容性問題。

5. Virtuoso:模擬、混合信號的設計和仿真工具,它為設計者提供了全面的設計和驗證環境,從概念設計到芯片布局和制造的每個階段都能得到支持。但是軟件功能較為復雜,所需計算資源較大。

wKgaomZFpy2AIEArAAvKUnRBV5s158.png

圖6 Virtuoso用戶界面

CEVA SoC:作為一種編程語言,SystemC可用于將硬件和軟件描述指定為抽象行為模型。SystemC還提供事件驅動型仿真接口,開發人員可以通過該接口模擬并發進程。即使尚未設計系統的某些部分,開發人員也可以為SoC仿真生成完整系統的可執行模型。CEVA SoC模擬器提供集成SystemC仿真環境,允許系統工程師、架構師和軟件開發人員在硅前階段進行建模、分析和調試。該虛擬模擬器可用于架構定義和快速原型設計,并可用作有效的IP評估和概念驗證 (PoC)工具。它能夠與MATLAB無縫對接,以便用于開發算法和測試。CEVA客戶可以在FPGA平臺上模擬他們的系統以進行最終驗證[6]。

wKgZomZFpziAeGwnAA6NO2h1RhY199.png


圖 7 CEVA SoC模擬器示意圖[6]

開發和測試工具
芯片設計中,我們也需要一套完成的開發與測試工具,包括集成開發環境(IDE)、代碼編輯器、單元測試和集成測試工具在哪的各種工具等等。前序的模擬與驗證階段主要聚焦于設計的準確性和功能性,包括功能驗證、時序驗證、形式驗證等等;而開發和測試階段更側重于設計的實現與測試,包括編碼、布局布線、各種測試來確保設計的正確性和性能。

下面介紹部分常用的開發和測試工具:

1. Synopsys IO Complier II:主要應用于物理綜合,包括布局布線等相關功能,可實現和優化IC的物理布局,Cadence virtuoso、Mentor Graphics Calibre等軟件也有能實現進行物理設計和布局的相關功能。

2. Xilinx Vivado:用于FPGA的設計和綜合,提供全面的開發環境和工具支持,可將邏輯設計映射到FPGA架構上,并生成可下載到FPGA器件的比特流文件。

wKgZomZFp0aAP1H8ABFNMcR8GK8308.png

圖8 Vivado開發界面

Vim、Emacs、VScode+iverilog:常用的代碼編輯器,常用于編輯硬件描述語言Verilog、VHDL等等。

wKgaomZFp1OACQHdABIvsfFDIaQ837.png


圖9 Vscode與iverilog聯動編寫硬件描述語言

4. Cadence Palladium Emulator:用于大規模集成電路驗證。

5. Synopsys ZeBu:用于硬件/軟件共同驗證或驗證加速。

6.Mentor Graphics Veloce Emulation Platform:用于驗證SoC設計。

7.Witmem studio:由知存科技開發的一款全功能集成開發環境,包含客戶識別的SDK推送功能,SDK包自動更新下載安裝功能,內核自動識別語法高亮編輯器,面向不同功能的個性化工程創建功能,以及常規IDE所具有的項目工程管理、文件編輯、編譯、調試等功能,可在知存科技官網進行軟件下載[7]。

wKgZomZFp2GAM3n4AA-iPs4eJPo732.png

圖10 Witmem Studio開發界面

8.其他工具:Tcl/TK、Python等用于自動化測試和腳本編寫的軟件。

總而言之,為推動存內計算規模應用,工具鏈的發展壯大將成為存內計算芯片設計中的必然訴求,它們需要業界共同發力,共同搭建面向存內計算的映射與調度、模擬與驗證、開發與測試工具鏈。相信在不久的將來,存內計算芯片相關工具鏈將迎來井噴式發展,讓我們一同分享、一同創造,一起見證存內計算芯片的生態繁榮時代。

參考文獻:

[1]編譯器:TPU-MLIR環境構建及使用指南(一) - 江左子固 - 博客園 (cnblogs.com).

[2]使用 NVIDIA TensorRT 加速深度學習推理(更新) - NVIDIA 技術博客.

[3]Apache TVM中文站(tvm.hyper.ai).

[4]英特爾? 發行版 OpenVINO? 工具套件 (intel.cn).

[5] FPGA中的五個級別和五種仿真(blog.csdn.net).

[6]CEVA SystemC 模擬器:出色的 SoC 模擬器 - 與非網 (eefocus.com).

[7]知存科技存內計算芯片開發者中心(witintech.com/develop.php).

審核編輯 黃宇

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

    關注

    8

    文章

    4517

    瀏覽量

    125214
  • 芯片設計
    +關注

    關注

    15

    文章

    920

    瀏覽量

    54441
  • 映射
    +關注

    關注

    0

    文章

    44

    瀏覽量

    15734
  • 測試工具
    +關注

    關注

    0

    文章

    46

    瀏覽量

    11855
  • 開發工具鏈
    +關注

    關注

    0

    文章

    7

    瀏覽量

    1573
收藏 人收藏

    評論

    相關推薦

    WiMAX設計和測試工具

    WiMAX設計和測試工具
    發表于 09-18 09:03

    并口開發調試工具

    并口開發調試工具包:開發調試工具包包括三個功能模塊:“并口調試器”、“并口測試信號發生器”和“并口監視器”。
    發表于 05-26 09:53 ?37次下載

    TD-SCDMA網絡測試工具及手段

    TD-SCDMA網絡測試工具及手段:TD-SCDMA網絡測試工具• 路測工具– 日訊的NP3G路測工具– 大唐的SPAN路測工具
    發表于 06-28 23:14 ?31次下載

    并口開發調試工具包源碼

    并口開發調試工具包源碼:開發調試工具包包括三個功能模塊:“并口調試器”、“并口測試信號發生器”和“并口監視器”
    發表于 10-12 10:39 ?57次下載

    TD-SCDMA測試工具體系及應用

    目錄: TD-SCDMA測試工具體系 TD-SCDMA網絡類測試工具介紹 TD-SCDMA終端類測試工具介紹  
    發表于 08-02 15:08 ?18次下載

    力科推出仿真設計驗證工具

    力科推出仿真設計驗證工具 力科今天宣布推出新的分析工具顯著擴展PCI-Express 3.0協議測試。新的軟件工具叫SimPASS,針對硅
    發表于 02-03 16:31 ?741次閱讀

    汽車CAN/LIN總線測試流程和測試工具解析

    汽車CAN/LIN總線測試流程和測試工具解析 汽車CAN/LIN總線系統測試的關鍵是測試流程、測試標準和
    發表于 03-19 10:44 ?8140次閱讀

    TCP/UDPDbg測試工具

    TCP&UDP測試工具 V1.02 此測試工具用于開發網絡通訊程序時,在服務器或客戶端測試TCP/UDP通訊連接和測試數據的接收和發送
    發表于 10-26 17:30 ?305次下載

    串口調試工具

    串口調試工具 便于單片機下載 串口調試工具 串口調試工具
    發表于 11-20 16:35 ?39次下載

    滲透測試工具開發

    滲透測試工具開發
    發表于 09-07 10:30 ?18次下載
    滲透<b class='flag-5'>測試工具</b><b class='flag-5'>開發</b>

    常用的軟件測試工具有哪些_10款常用的軟件測試工具推薦

    一個好的軟件測試工具測試管理工具結合起來使用將會使軟件測試效率大大的提高。那么軟件測試工具有哪些呢?本文匯總了十款常用的軟件測試工具,具體
    發表于 04-24 14:14 ?7.5w次閱讀

    常用串口通信測試工具sscom

    常用串口通信測試工具,是工程師手頭必備的工具軟件。
    發表于 06-07 15:11 ?2次下載

    滲透測試工具箱siusiu的特性及使用

    一款基于docker的滲透測試工具箱,致力于做到滲透工具隨身攜帶、開箱即用。減少滲透測試工程師花在安裝工具、記憶工具使用方法上的時間和精力。
    的頭像 發表于 10-08 11:54 ?2247次閱讀

    總線測試工具CANOE的使用指南

    CANOE可謂是常用的總線測試工具之一,不管是總線開發工程師還是測試工程師,甚至是駐場工程師,都對它很熟悉。
    發表于 10-10 15:26 ?4278次閱讀

    基于安卓的滲透測試工具

    介紹 H4滲透盒子是由@H4CKBU7EER開發,基于安卓的滲透測試工具集!使網安愛好者在手機上不必使用拗口的英文軟件和看群蟻白字的手機終端的便攜工具。 調用工具 在V1版本中,沒有在
    的頭像 發表于 06-02 15:33 ?864次閱讀
    基于安卓的滲透<b class='flag-5'>測試工具</b>集
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>