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

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

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

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

TensorRT的功能與應(yīng)用分析

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

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

2.1. C++ and Python APIs

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

2.2. The Programming Model

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

為了構(gòu)建引擎,您需要:

創(chuàng)建網(wǎng)絡(luò)定義

為builder指定配置

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

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

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

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

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

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

注意:

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

TensorRT 的網(wǎng)絡(luò)定義不會(huì)深度復(fù)制參數(shù)數(shù)組(例如卷積的權(quán)重)。因此,在構(gòu)建階段完成之前,您不得釋放這些陣列的內(nèi)存。使用 ONNX 解析器導(dǎo)入網(wǎng)絡(luò)時(shí),解析器擁有權(quán)重,因此在構(gòu)建階段完成之前不得將其銷毀。

構(gòu)建器時(shí)間算法以確定最快的。與其他 GPU 工作并行運(yùn)行構(gòu)建器可能會(huì)擾亂時(shí)序,導(dǎo)致優(yōu)化不佳。

2.2.2. The Runtime Phase

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

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

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

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

調(diào)用enqueue()或execute()以運(yùn)行推理

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

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

調(diào)用推理時(shí),您必須在適當(dāng)?shù)奈恢迷O(shè)置輸入和輸出緩沖區(qū)。根據(jù)數(shù)據(jù)的性質(zhì),這可能在 CPU 或 GPU 內(nèi)存中。如果根據(jù)您的模型不明顯,您可以查詢引擎以確定在哪個(gè)內(nèi)存空間中提供緩沖區(qū)。

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

2.3. Plugins

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

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

請參閱使用自定義層擴(kuò)展 TensorRT一章。

2.4. Types and Precision

TensorRT 支持使用 FP32、FP16、INT8、Bool 和 INT32 數(shù)據(jù)類型的計(jì)算。 當(dāng) TensorRT 選擇 CUDA 內(nèi)核在網(wǎng)絡(luò)中實(shí)現(xiàn)浮點(diǎn)運(yùn)算時(shí),它默認(rèn)為 FP32 實(shí)現(xiàn)。有兩種方法可以配置不同的精度級(jí)別:

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

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

請參閱降低精度部分。

2.5. Quantization

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

動(dòng)態(tài)范圍信息可由構(gòu)建器根據(jù)代表性輸入數(shù)據(jù)計(jì)算(這稱為校準(zhǔn)–calibration)。或者,您可以在框架中執(zhí)行量化感知訓(xùn)練,并將模型與必要的動(dòng)態(tài)范圍信息一起導(dǎo)入到 TensorRT。

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

2.6. Tensors and Data Formats

在定義網(wǎng)絡(luò)時(shí),TensorRT 假設(shè)張量由多維 C 樣式數(shù)組表示。每一層對其輸入都有特定的解釋:例如,2D 卷積將假定其輸入的最后三個(gè)維度是 CHW 格式 – 沒有選項(xiàng)可以使用,例如 WHC 格式。有關(guān)每個(gè)層如何解釋其輸入,請參閱TensorRT 網(wǎng)絡(luò)層一章。

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

請參閱I/O 格式部分

2.7. Dynamic Shapes

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

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

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

2.8. DLA

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

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

2.9. Updating Weights

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

請參閱Refitting An Engine 部分。

2.10. trtexec

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

在隨機(jī)或用戶提供的輸入數(shù)據(jù)上對網(wǎng)絡(luò)進(jìn)行基準(zhǔn)測試。

從模型生成序列化引擎。

從構(gòu)建器生成序列化時(shí)序緩存。

請參閱trtexec部分。

2.11. Polygraphy

Polygraphy 是一個(gè)工具包,旨在幫助在 TensorRT 和其他框架中運(yùn)行和調(diào)試深度學(xué)習(xí)模型。它包括一個(gè)Python API和一個(gè)使用此 API 構(gòu)建的命令行界面 (CLI) 。

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

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

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

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

在命令行上修改 ONNX 模型:

提取子圖(例如CLI )

簡化和清理(例如CLI )

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

關(guān)于作者

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

審核編輯:郭婷

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

    關(guān)注

    14

    文章

    5026

    瀏覽量

    103298
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4754

    瀏覽量

    129096
  • 人工智能
    +關(guān)注

    關(guān)注

    1792

    文章

    47446

    瀏覽量

    239072
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    解鎖NVIDIA TensorRT-LLM的卓越性能

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

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

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

    工業(yè)物聯(lián)網(wǎng)盒子核心功能與技術(shù)特點(diǎn)

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

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

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

    MCU性能與功能:優(yōu)化設(shè)計(jì)的關(guān)鍵

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

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

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

    將RAM清除功能與bq3285/bq3287A RTC結(jié)合使用

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

    電子地圖的主要功能與應(yīng)用

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

    機(jī)器人電動(dòng)升降柱功能與特點(diǎn)

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

    隔離器的功能與作用

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

    聆思CSK6芯片性能與應(yīng)用前景分析

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

    天拓四方工業(yè)網(wǎng)關(guān)的功能與作用

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

    MES常見功能與分類

    電子發(fā)燒友網(wǎng)站提供《MES常見功能與分類.docx》資料免費(fèi)下載
    發(fā)表于 01-19 14:00 ?0次下載
    主站蜘蛛池模板: 天天拍天天干| 手机看片自拍自自拍日韩免费| 欧美一卡二三卡四卡不卡| 人人澡 人人澡 人人看| 五月天婷婷在线观看| 午夜小视频在线观看| 午夜1000集| 色综合色综合色综合| 老湿司午夜爽爽影院榴莲视频| 国内精品手机在线观看视频| 亚洲精品精品一区| 五月天婷婷色综合| 男女啪视频大全1000| a资源在线观看| 夜夜狠狠| 亚洲综合成人网在线观看| 天天摸日日| 欧美成人综合在线| 国产青青草| 五月天天色| www天天操| 女攻各种play男受h| 美女扒开尿口给男人捅| 亚洲成色www久久网站| 午夜a视频| 一级一级特黄女人精品毛片| 欧美激情xxxx性bbbb| 伊人精品成人久久综合欧美| 色综合久久久久综合99| 美女黄18| 夜间免费视频| 国产逼逼视频| 国产精品秒播无毒不卡| 久草cm| 欧美亚洲综合另类成人| 欧美国产日本高清不卡| 五月天免费在线播放| 久久青草国产免费观看| 婷婷综合网站| 欧美黄色大全| 亚洲黄色成人|