欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

3天內不再提示

TensorRT的功能與應用分析

星星科技指導員 ? 來源:NVIDIA ? 作者:Ken He ? 2022-05-13 15:37 ? 次閱讀

本章概述了您可以使用 TensorRT 做什么。它旨在對所有 TensorRT 用戶有用。

2.1. C++ and Python APIs

TensorRT 的 API 具有 C++ 和 Python 的語言綁定,具有幾乎相同的功能。 Python API 促進了與 Python 數據處理工具包和庫(如 NumPy 和 SciPy)的互操作性。 C++ API 可以更高效,并且可以更好地滿足某些合規(guī)性要求,例如在汽車應用中。 注意: Python API 并非適用于所有平臺。

2.2. The Programming Model

TensorRT 構建階段的最高級別接口是Builder ( C++ 、 Python )。構建器負責優(yōu)化模型并生成Engine 。

為了構建引擎,您需要:

創(chuàng)建網絡定義

為builder指定配置

調用builder創(chuàng)建引擎

NetworkDefinition接口( C++ 、 Python )用于定義模型。將模型傳輸到 TensorRT 的最常見途徑是以 ONNX 格式從框架中導出模型,并使用 TensorRT 的 ONNX 解析器來填充網絡定義。但是,您也可以使用 TensorRT 的Layer ( C++ , Python ) 和Tensor ( C++ , Python ) 接口逐步構建定義。

無論您選擇哪種方式,您還必須定義哪些張量是網絡的輸入和輸出。未標記為輸出的張量被認為是可以由構建器優(yōu)化掉的瞬態(tài)值。輸入和輸出張量必須命名,以便在運行時,TensorRT 知道如何將輸入和輸出緩沖區(qū)綁定到模型。

BuilderConfig接口( C++ 、 Python )用于指定TensorRT如何優(yōu)化模型。在可用的配置選項中,您可以控制 TensorRT 降低計算精度的能力,控制內存和運行時執(zhí)行速度之間的權衡,以及限制對 CUDA ?內核的選擇。由于構建器可能需要幾分鐘或更長時間才能運行,因此您還可以控制構建器搜索內核的方式,以及緩存搜索結果以供后續(xù)運行使用。

一旦有了網絡定義和構建器配置,就可以調用構建器來創(chuàng)建引擎。構建器消除了無效計算、折疊常量、重新排序和組合操作以在 GPU 上更高效地運行。它可以選擇性地降低浮點計算的精度,方法是簡單地在 16 位浮點中運行它們,或者通過量化浮點值以便可以使用 8 位整數執(zhí)行計算。它還使用不同的數據格式對每一層的多次實現(xiàn)進行計時,然后計算執(zhí)行模型的最佳時間表,從而最大限度地降低內核執(zhí)行和格式轉換的綜合成本。

構建器以稱為計劃的序列化形式創(chuàng)建引擎,該計劃可以立即反序列化,或保存到磁盤以供以后使用。

注意:

TensorRT 創(chuàng)建的引擎特定于創(chuàng)建它們的 TensorRT 版本和創(chuàng)建它們的 GPU。

TensorRT 的網絡定義不會深度復制參數數組(例如卷積的權重)。因此,在構建階段完成之前,您不得釋放這些陣列的內存。使用 ONNX 解析器導入網絡時,解析器擁有權重,因此在構建階段完成之前不得將其銷毀。

構建器時間算法以確定最快的。與其他 GPU 工作并行運行構建器可能會擾亂時序,導致優(yōu)化不佳。

2.2.2. The Runtime Phase

TensorRT 執(zhí)行階段的最高級別接口是Runtime( C++ 、 Python )。 使用運行時時,您通常會執(zhí)行以下步驟:

反序列化創(chuàng)建引擎的計劃(plan 文件)

從引擎創(chuàng)建執(zhí)行上下文(context) 然后,反復:

填充輸入緩沖區(qū)以進行推理

調用enqueue()或execute()以運行推理

Engine接口( C++ 、 Python )代表一個優(yōu)化模型。您可以查詢引擎以獲取有關網絡輸入和輸出張量的信息——預期的維度、數據類型、數據格式等。

ExecutionContext接口( C++ 、 Python )是調用推理的主要接口。執(zhí)行上下文包含與特定調用關聯(lián)的所有狀態(tài) – 因此您可以擁有與單個引擎關聯(lián)的多個上下文,并并行運行它們。

調用推理時,您必須在適當的位置設置輸入和輸出緩沖區(qū)。根據數據的性質,這可能在 CPU 或 GPU 內存中。如果根據您的模型不明顯,您可以查詢引擎以確定在哪個內存空間中提供緩沖區(qū)。

設置緩沖區(qū)后,可以同步(執(zhí)行)或異步(入隊)調用推理。在后一種情況下,所需的內核在 CUDA 流上排隊,并盡快將控制權返回給應用程序。一些網絡需要在 CPU 和 GPU 之間進行多次控制傳輸,因此控制可能不會立即返回。要等待異步執(zhí)行完成,請使用cudaStreamSynchronize在流上同步。

2.3. Plugins

TensorRT 有一個Plugin接口,允許應用程序提供 TensorRT 本身不支持的操作的實現(xiàn)。在轉換網絡時,ONNX 解析器可以找到使用 TensorRT 的PluginRegistry創(chuàng)建和注冊的插件。

TensorRT 附帶一個插件庫,其中許多插件和一些附加插件的源代碼可以在此處找到。

請參閱使用自定義層擴展 TensorRT一章。

2.4. Types and Precision

TensorRT 支持使用 FP32、FP16、INT8、Bool 和 INT32 數據類型的計算。 當 TensorRT 選擇 CUDA 內核在網絡中實現(xiàn)浮點運算時,它默認為 FP32 實現(xiàn)。有兩種方法可以配置不同的精度級別:

為了在模型級別控制精度, BuilderFlag選項( C++ 、 Python )可以向 TensorRT 指示它在搜索最快時可能會選擇較低精度的實現(xiàn)(并且因為較低的精度通常更快,如果允許的話,它通常會)。 因此,您可以輕松地指示 TensorRT 為您的整個模型使用 FP16 計算。對于輸入動態(tài)范圍約為 1 的正則化模型,這通常會產生顯著的加速,而準確度的變化可以忽略不計。

對于更細粒度的控制,由于網絡的一部分對數值敏感或需要高動態(tài)范圍,因此層必須以更高的精度運行,可以為該層指定算術精度。

請參閱降低精度部分。

2.5. Quantization

TensorRT 支持量化浮點,其中浮點值被線性壓縮并四舍五入為 8 位整數。這顯著提高了算術吞吐量,同時降低了存儲要求和內存帶寬。在量化浮點張量時,TensorRT 需要知道它的動態(tài)范圍——即表示什么范圍的值很重要——量化時會鉗制超出該范圍的值。

動態(tài)范圍信息可由構建器根據代表性輸入數據計算(這稱為校準–calibration)?;蛘?,您可以在框架中執(zhí)行量化感知訓練,并將模型與必要的動態(tài)范圍信息一起導入到 TensorRT。

請參閱使用 INT8章節(jié)。

2.6. Tensors and Data Formats

在定義網絡時,TensorRT 假設張量由多維 C 樣式數組表示。每一層對其輸入都有特定的解釋:例如,2D 卷積將假定其輸入的最后三個維度是 CHW 格式 – 沒有選項可以使用,例如 WHC 格式。有關每個層如何解釋其輸入,請參閱TensorRT 網絡層一章。

請注意,張量最多只能包含 2^31-1 個元素。 在優(yōu)化網絡的同時,TensorRT 在內部執(zhí)行轉換(包括到 HWC,但也包括更復雜的格式)以使用盡可能快的 CUDA 內核。通常,選擇格式是為了優(yōu)化性能,而應用程序無法控制這些選擇。然而,底層數據格式暴露在 I/O 邊界(網絡輸入和輸出,以及將數據傳入和傳出插件),以允許應用程序最大限度地減少不必要的格式轉換。

請參閱I/O 格式部分

2.7. Dynamic Shapes

默認情況下,TensorRT 根據定義時的輸入形狀(批量大小、圖像大小等)優(yōu)化模型。但是,可以將構建器配置為允許在運行時調整輸入維度。為了啟用此功能,您可以在構建器配置中指定一個或多個OptimizationProfile ( C++ 、 Python )實例,其中包含每個輸入的最小和最大形狀,以及該范圍內的優(yōu)化點。

TensorRT 為每個配置文件創(chuàng)建一個優(yōu)化的引擎,選擇適用于 [最小、最大] 范圍內的所有形狀的 CUDA 內核,并且對于優(yōu)化點來說是最快的——通常每個配置文件都有不同的內核。然后,您可以在運行時在配置文件中進行選擇。

請參閱使用動態(tài)形狀一章。

2.8. DLA

TensorRT 支持 NVIDIA 的深度學習加速器 (DLA),這是許多 NVIDIA SoC 上的專用推理處理器,支持 TensorRT 層的子集。 TensorRT 允許您在 DLA 上執(zhí)行部分網絡,而在 GPU 上執(zhí)行其余部分;對于可以在任一設備上執(zhí)行的層,您可以在構建器配置中逐層選擇目標設備。

請參閱使用 DLA章節(jié)。

2.9. Updating Weights

在構建引擎時,您可以指定它可能需要稍后更新其權重。如果您經常在不更改結構的情況下更新模型的權重,例如在強化學習中或在保留相同結構的同時重新訓練模型時,這將很有用。權重更新是通過Refitter ( C++ , Python ) 接口執(zhí)行的。

請參閱Refitting An Engine 部分。

2.10. trtexec

示例目錄中包含一個名為trtexec的命令行包裝工具。 trtexec是一種無需開發(fā)自己的應用程序即可快速使用 TensorRT 的工具。 trtexec工具有三個主要用途:

在隨機或用戶提供的輸入數據上對網絡進行基準測試。

從模型生成序列化引擎。

從構建器生成序列化時序緩存。

請參閱trtexec部分。

2.11. Polygraphy

Polygraphy 是一個工具包,旨在幫助在 TensorRT 和其他框架中運行和調試深度學習模型。它包括一個Python API和一個使用此 API 構建的命令行界面 (CLI) 。

除此之外,使用 Polygraphy,您可以:

在多個后端之間運行推理,例如 TensorRT 和 ONNX-Runtime,并比較結果(例如API 、 CLI )

將模型轉換為各種格式,例如具有訓練后量化的 TensorRT 引擎(例如API 、 CLI )

查看有關各種類型模型的信息(例如CLI )

在命令行上修改 ONNX 模型:

提取子圖(例如CLI )

簡化和清理(例如CLI )

隔離 TensorRT 中的錯誤策略(例如CLI )

關于作者

Ken He 是 NVIDIA 企業(yè)級開發(fā)者社區(qū)經理 & 高級講師,擁有多年的 GPU 和人工智能開發(fā)經驗。自 2017 年加入 NVIDIA 開發(fā)者社區(qū)以來,完成過上百場培訓,幫助上萬個開發(fā)者了解人工智能和 GPU 編程開發(fā)。在計算機視覺,高性能計算領域完成過多個獨立項目。并且,在機器人無人機領域,有過豐富的研發(fā)經驗。對于圖像識別,目標的檢測與跟蹤完成過多種解決方案。曾經參與 GPU 版氣象模式GRAPES,是其主要研發(fā)者。

審核編輯:郭婷

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

    關注

    14

    文章

    5079

    瀏覽量

    103805
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4785

    瀏覽量

    129404
  • 人工智能
    +關注

    關注

    1796

    文章

    47768

    瀏覽量

    240496
收藏 人收藏

    評論

    相關推薦

    無人機自動巡檢系統(tǒng)功能與應用

    無人機自動巡檢系統(tǒng)功能與應用 無人機自動巡檢系統(tǒng)是一種基于無人機技術的自動化巡檢解決方案,廣泛應用于電力、交通、通信、石油、光伏等多個行業(yè)。該系統(tǒng)集成了無人機平臺、傳感器、自動飛行控制系統(tǒng)、數據采集
    的頭像 發(fā)表于 01-22 17:05 ?126次閱讀

    工業(yè)繼電器的功能與作用分析

    輸入信號(如電壓、電流、溫度等)的變化,自動切換電路的通斷狀態(tài)。工業(yè)繼電器可以根據其功能和用途被分為多種類型,包括電壓繼電器、電流繼電器、時間繼電器、溫度繼電器等。 二、工業(yè)繼電器的基本功能 信號放大 :工業(yè)繼
    的頭像 發(fā)表于 12-28 11:07 ?484次閱讀

    在NVIDIA TensorRT-LLM中啟用ReDrafter的一些變化

    Recurrent Drafting (簡稱 ReDrafter) 是蘋果公司為大語言模型 (LLM) 推理開發(fā)并開源的一種新型推測解碼技術,該技術現(xiàn)在可與 NVIDIA TensorRT-LLM 一起使用。
    的頭像 發(fā)表于 12-25 17:31 ?270次閱讀
    在NVIDIA <b class='flag-5'>TensorRT</b>-LLM中啟用ReDrafter的一些變化

    解鎖NVIDIA TensorRT-LLM的卓越性能

    NVIDIA TensorRT-LLM 是一個專為優(yōu)化大語言模型 (LLM) 推理而設計的庫。它提供了多種先進的優(yōu)化技術,包括自定義 Attention Kernel、Inflight
    的頭像 發(fā)表于 12-17 17:47 ?286次閱讀

    NVIDIA TensorRT-LLM Roadmap現(xiàn)已在GitHub上公開發(fā)布

    感謝眾多用戶及合作伙伴一直以來對NVIDIA TensorRT-LLM的支持。TensorRT-LLM 的 Roadmap 現(xiàn)已在 GitHub 上公開發(fā)布!
    的頭像 發(fā)表于 11-28 10:43 ?344次閱讀
    NVIDIA <b class='flag-5'>TensorRT</b>-LLM Roadmap現(xiàn)已在GitHub上公開發(fā)布

    工業(yè)物聯(lián)網盒子核心功能與技術特點

    將這些數據上傳至云端或本地服務器進行分析處理。工業(yè)物聯(lián)網盒子不僅是數據采集的前端,也是實現(xiàn)設備遠程監(jiān)控、預測性維護、能效優(yōu)化等高級應用的基礎。 一、核心功能與技術特點 工業(yè)物聯(lián)網盒子的核心功能與技術特點,使其能
    的頭像 發(fā)表于 11-22 17:21 ?336次閱讀

    TensorRT-LLM低精度推理優(yōu)化

    本文將分享 TensorRT-LLM 中低精度量化內容,并從精度和速度角度對比 FP8 與 INT8。首先介紹性能,包括速度和精度。其次,介紹量化工具 NVIDIA TensorRT Model
    的頭像 發(fā)表于 11-19 14:29 ?482次閱讀
    <b class='flag-5'>TensorRT</b>-LLM低精度推理優(yōu)化

    MCU性能與功能:優(yōu)化設計的關鍵

    MCU(微控制單元)是現(xiàn)代電子產品中不可或缺的核心組件,廣泛應用于家電、汽車、工業(yè)控制、醫(yī)療設備及消費電子等領域。隨著科技的不斷發(fā)展,MCU的性能與功能得到了前所未有的提升,而優(yōu)化設計成為推動這一變化的關鍵所在。
    的頭像 發(fā)表于 11-01 13:26 ?386次閱讀

    LIMS系統(tǒng)的功能與特點分析

    、材料、方法、項目、樣品、數據和結果,以實現(xiàn)實驗室的自動化、信息化和網絡化管理。 1. 功能分析 1.1 樣品管理 樣品登記 :記錄樣品的基本信息,如樣品編號、來源、類型、接收時間等。 樣品追蹤 :追蹤樣品在實驗室中的流轉過程,包括樣品的接收、處理、分析和存儲等。 樣品存
    的頭像 發(fā)表于 10-28 17:02 ?530次閱讀

    將RAM清除功能與bq3285/bq3287A RTC結合使用

    電子發(fā)燒友網站提供《將RAM清除功能與bq3285/bq3287A RTC結合使用.pdf》資料免費下載
    發(fā)表于 10-24 09:43 ?0次下載
    將RAM清除<b class='flag-5'>功能與</b>bq3285/bq3287A RTC結合使用

    電子地圖的主要功能與應用

    電子地圖,即數字地圖,是利用計算機技術,以數字方式存儲和查閱的地圖。它不僅繼承了傳統(tǒng)紙質地圖的基本功能,還通過現(xiàn)代科技手段實現(xiàn)了諸多創(chuàng)新應用。以下是電子地圖的主要功能與應用: 一、主要功能 快速存取
    的頭像 發(fā)表于 09-12 11:18 ?2607次閱讀
    電子地圖的主要<b class='flag-5'>功能與</b>應用

    機器人電動升降柱功能與特點

    電子發(fā)燒友網站提供《機器人電動升降柱功能與特點.docx》資料免費下載
    發(fā)表于 09-11 14:19 ?0次下載

    隔離器的功能與作用

    隔離。本文旨在深入探討隔離器的功能與作用,以及其在不同領域中的應用,以期為相關領域的技術人員提供參考和借鑒。
    的頭像 發(fā)表于 05-27 16:04 ?2477次閱讀

    聆思CSK6芯片性能與應用前景分析

    聆思CSK6芯片性能與應用前景分析
    的頭像 發(fā)表于 05-15 09:11 ?865次閱讀

    天拓四方工業(yè)網關的功能與作用

    。本文將對工業(yè)網關的功能與作用進行解析,以期為讀者提供更加全面和深入的了解。 天拓四方工業(yè)網關的功能與作用 首先,工業(yè)網關支持遠程配置和診斷功能,使得工程師可以通過數網星平臺遠程管理工具對現(xiàn)場設備進行配置和診斷。這
    的頭像 發(fā)表于 03-22 15:35 ?454次閱讀