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

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

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

3天內不再提示

NVIDIA TensorRT支持矩陣中的流控制結構層部分

星星科技指導員 ? 來源:NVIDIA ? 作者:Ken He ? 2022-05-13 16:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

NVIDIA TensorRT 支持循環結構,這對于循環網絡很有用。 TensorRT 循環支持掃描輸入張量、張量的循環定義以及“掃描輸出”和“最后一個值”輸出。

10.1. Defining A Loop

循環由循環邊界層(loop boundary layers)定義。

ITripLimitLayer指定循環迭代的次數。

IIteratorLayer使循環能夠迭代張量。

IRecurrenceLayer指定一個循環定義。

ILoopOutputLayer指定循環的輸出。

每個邊界層都繼承自類ILoopBoundaryLayer ,該類有一個方法getLoop()用于獲取其關聯的ILoop 。 ILoop對象標識循環。具有相同ILoop的所有循環邊界層都屬于該循環。

下圖描繪了循環的結構和邊界處的數據流。循環不變張量可以直接在循環內部使用,例如 FooLayer 所示。

一個循環可以有多個IIteratorLayer 、 IRecurrenceLayer和ILoopOutputLayer ,并且最多可以有兩個ITripLimitLayer ,如后面所述。沒有ILoopOutputLayer的循環沒有輸出,并由 TensorRT 優化。

NVIDIA TensorRT 支持矩陣中的流控制結構層部分描述了可用于循環內部的 TensorRT 層。

內部層可以自由使用在循環內部或外部定義的張量。內部可以包含其他循環(請參閱嵌套循環)和其他條件構造(請參閱條件嵌套)。

要定義循環,首先,使用INetworkDefinition ::addLoop方法創建一個ILoop對象。然后添加邊界層和內部層。本節的其余部分描述了邊界層的特征,使用loop表示INetworkDefinition ::addLoop返回的ILoop* 。

ITripLimitLayer支持計數循環和 while 循環。

loop -》addTripLimit( t ,TripLimit::kCOUNT)創建一個ITripLimitLayer ,其輸入t是指定循環迭代次數的 0D INT32 張量。

loop -》addTripLimit( t ,TripLimit::kWHILE)創建一個ITripLimitLayer ,其輸入t是一個 0D Bool 張量,用于指定是否應該進行迭代。通常t要么是IRecurrenceLayer的輸出,要么是基于所述輸出的計算。

一個循環最多可以有一種限制。

IIteratorLayer支持在任何軸上向前或向后迭代。

loop -》addIterator( t )添加一個IIteratorLayer ,它在張量t的軸 0 上進行迭代。例如,如果輸入是矩陣:

2 3 5

4 6 8

第一次迭代的一維張量{2, 3, 5}和第二次迭代的{4, 6, 8} 。超出張量范圍的迭代是無效的。

loop -》addIterator( t , axis )類似,但該層在給定的軸上迭代。例如,如果 axis=1 并且輸入是矩陣,則每次迭代都會傳遞矩陣的一列。

loop -》addIterator( t , axis,reverse )類似,但如果reverse =true ,則該層以相反的順序產生其輸出。

ILoopOutputLayer支持三種形式的循環輸出:

loop -》addLoopOutput( t, LoopOutput::kLAST_VALUE)輸出t的最后一個值,其中t必須是IRecurrenceLayer的輸出。

loop-》 addLoopOutput( t ,LoopOutput::kCONCATENATE, axis )將每次迭代的輸入串聯輸出到t 。例如,如果輸入是一維張量,第一次迭代的值為{ a,b,c} ,第二次迭代的值為{d,e,f} , axis =0 ,則輸出為矩陣:

a b c

d e f

如果axis =1 ,則輸出為:

a d

b e

c f

loop-》 addLoopOutput( t ,LoopOutput::kREVERSE, axis )類似,但顛倒了順序。 kCONCATENATE和kREVERSE形式都需要第二個輸入,這是一個 0D INT32 形狀張量,用于指定新輸出維度的長度。當長度大于迭代次數時,額外的元素包含任意值。第二個輸入,例如u ,應使用ILoopOutputLayer::setInput(1, u )設置。

最后,還有IRecurrenceLayer 。它的第一個輸入指定初始輸出值,第二個輸入指定下一個輸出值。第一個輸入必須來自循環外;第二個輸入通常來自循環內部。例如,這個 C++ 片段的 TensorRT 模擬

for (int32_t i = j; 。..; i += k) 。..

可以通過這些調用創建,其中j和k是ITensor* 。

ILoop* loop = n.addLoop();

IRecurrenceLayer* iRec = loop-》addRecurrence(j);

ITensor* i = iRec-》getOutput(0);

ITensor* iNext = addElementWise(*i, *k,

ElementWiseOperation::kADD)-》getOutput(0);

iRec-》setInput(1, *iNext);

第二個輸入是TensorRT允許后沿的唯一情況。如果刪除了這些輸入,則剩余的網絡必須是非循環的。

10.2. Formal Semantics

TensorRT 具有應用語義,這意味著除了引擎輸入和輸出之外沒有可見的副作用。因為沒有副作用,命令式語言中關于循環的直覺并不總是有效。本節定義了 TensorRT 循環結構的形式語義。

形式語義基于張量的惰性序列(lazy sequences)。循環的每次迭代對應于序列中的一個元素。循環內張量X的序列表示為? X 0, X 1, X 2, 。.. ? 。序列的元素被懶惰地評估,意思是根據需要。

IIteratorLayer(X)的輸出是? X[0], X[1], X[2], 。.. ?其中X[i]表示在IIteratorLayer指定的軸上的下標。

IRecurrenceLayer(X,Y)的輸出是? X, Y0, Y1, Y2, 。.. ? 。 的輸入和輸出取決于LoopOutput的類型。

kLAST_VALUE :輸入是單個張量X ,對于 n-trip 循環,輸出是X n 。

kCONCATENATE :第一個輸入是張量X,第二個輸入是標量形狀張量Y。結果是X0, X1, X2, 。.. Xn-1與后填充(如有必要)連接到Y指定的長度。如果Y 《 n則為運行時錯誤。 Y是構建時間常數。注意與IIteratorLayer的反比關系。 IIteratorLayer將張量映射到一系列子張量;帶有kCONCATENATE的ILoopOutputLayer將一系列子張量映射到一個張量。

kREVERSE :類似于kCONCATENATE ,但輸出方向相反。

ILoopOutputLayer的輸出定義中的n值由循環的ITripLimitLayer確定:

對于計數循環,它是迭代計數,表示ITripLimitLayer的輸入。

對于 while 循環,它是最小的 n 使得$X_n$為假,其中X是ITripLimitLayer的輸入張量的序列。

非循環層的輸出是層功能的順序應用。例如,對于一個二輸入非循環層F(X,Y) = ? f(X 0 , Y 0 ), f(X 1 , Y 1 ), f(X 2 , Y 2 )。.. ? 。如果一個張量來自循環之外,即是循環不變的,那么它的序列是通過復制張量來創建的。

10.3. Nested Loops

TensorRT 從數據流中推斷出循環的嵌套。例如,如果循環 B 使用在循環 A 中定義的值,則 B 被認為嵌套在 A 中。

TensorRT 拒絕循環沒有干凈嵌套的網絡,例如如果循環 A 使用循環 B 內部定義的值,反之亦然。

10.4. Limitations

引用多個動態維度的循環可能會占用意外的內存量。 在一個循環中,內存的分配就像所有動態維度都取任何這些維度的最大值一樣。例如,如果一個循環引用兩個維度為[4,x,y]和[6,y]的張量,則這些張量的內存分配就像它們的維度是[4,max(x,y),max(x ,y)]和[6,max(x,y)] 。

帶有kLAST_VALUE的LoopOutputLayer的輸入必須是IRecurrenceLayer的輸出。 循環 API 僅支持 FP32 和 FP16 精度。

10.5. Replacing IRNNv2Layer With Loops

IRNNv2Layer在 TensorRT 7.2.1 中已棄用,并將在 TensorRT 9.0 中刪除。使用循環 API 合成循環子網絡。例如,請參閱sampleCharRNN方法SampleCharRNNLoop::addLSTMCell 。循環 API 讓您可以表達一般的循環網絡,而不是局限于IRNNLayer和IRNNv2Layer中的預制單元。

關于作者

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

審核編輯:郭婷

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

    關注

    14

    文章

    5274

    瀏覽量

    105984
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4923

    瀏覽量

    130857
  • 人工智能
    +關注

    關注

    1805

    文章

    48863

    瀏覽量

    247655
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用NVIDIA Triton和TensorRT-LLM部署TTS應用的最佳實踐

    針對基于 Diffusion 和 LLM 類別的 TTS 模型,NVIDIA Triton 和 TensorRT-LLM 方案能顯著提升推理速度。在單張 NVIDIA Ada Lovelace
    的頭像 發表于 06-12 15:37 ?441次閱讀
    使用<b class='flag-5'>NVIDIA</b> Triton和<b class='flag-5'>TensorRT</b>-LLM部署TTS應用的最佳實踐

    矩陣變換器在異步電機直接轉矩控制的應用

    在異步電機直接轉矩控制系統,采用矩陣變換器供電既能實現直接轉矩控制的效果,并且還具有矩陣變換器的優點。實現了將
    發表于 06-05 11:21

    NVIDIA技術助力Pantheon Lab數字人實時交互解決方案

    本案例,Pantheon Lab(萬想科技)專注于數字人技術解決方案,通過 NVIDIA 技術實現數字人實時對話與客戶互動交流。借助 NVIDIA GPU、NVIDIA
    的頭像 發表于 01-14 11:19 ?602次閱讀

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

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

    【AIBOX應用】通過 NVIDIA TensorRT 實現實時快速的語義分割

    NVIDIA系列AIBOXAIBOX-OrinNano和AIBOX-OrinNX均搭載NVIDIA原裝JetsonOrin核心板模組,標配工業級全金屬外殼,鋁合金結構導熱,頂蓋外殼側面采用條幅格柵
    的頭像 發表于 12-18 16:33 ?774次閱讀
    【AIBOX應用】通過 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b> 實現實時快速的語義分割

    解鎖NVIDIA TensorRT-LLM的卓越性能

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

    NVIDIA TensorRT-LLM Roadmap現已在GitHub上公開發布

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

    OSI七模型各層的協議 OSI七模型的優勢與不足

    OSI七模型各層的協議 OSI(Open Systems Interconnection)七模型是一個用于描述網絡通信功能的分層模型。每一都負責不同的功能和任務,并定義了相應的
    的頭像 發表于 11-24 10:54 ?1170次閱讀

    使用NVIDIA TensorRT提升Llama 3.2性能

    Llama 3.2 模型集擴展了 Meta Llama 開源模型集的模型陣容,包含視覺語言模型(VLM)、小語言模型(SLM)和支持視覺的更新版 Llama Guard 模型。與 NVIDIA 加速
    的頭像 發表于 11-20 09:59 ?731次閱讀

    TensorRT-LLM低精度推理優化

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

    NVIDIA Nemotron-4 340B模型幫助開發者生成合成訓練數據

    Nemotron-4 340B 是針對 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 優化的模型系列,該系列包含最先進的指導和獎勵模型,以及一個用于生成式 AI 訓練的數據集。
    的頭像 發表于 09-06 14:59 ?683次閱讀
    <b class='flag-5'>NVIDIA</b> Nemotron-4 340B模型幫助開發者生成合成訓練數據

    MATLAB矩陣索引

    矩陣進行索引是從矩陣中選擇或修改部分元素的一種方式。MATLAB 有幾種索引樣式,它們不僅功能強大、靈活,而且可讀性強、表現力強。矩陣是 MATLAB 用來組織和分析數據的一個核心組
    的頭像 發表于 09-05 09:28 ?1027次閱讀
    MATLAB<b class='flag-5'>中</b>的<b class='flag-5'>矩陣</b>索引

    魔搭社區借助NVIDIA TensorRT-LLM提升LLM推理效率

    “魔搭社區是中國最具影響力的模型開源社區,致力給開發者提供模型即服務的體驗。魔搭社區利用NVIDIA TensorRT-LLM,大大提高了大語言模型的推理性能,方便了模型應用部署,提高了大模型產業應用效率,更大規模地釋放大模型的應用價值。”
    的頭像 發表于 08-23 15:48 ?1053次閱讀

    XLT開關矩陣

    、RS232和USB-B等標準控制接口,支持客戶端、Web頁面、驅動庫等多種便捷的控制方式,提高開關矩陣使用靈活性,能夠滿足TR組件、放大器、開關等多種射頻微波類產品與測試設備間通道快
    的頭像 發表于 08-06 17:15 ?440次閱讀
    XLT開關<b class='flag-5'>矩陣</b>

    神經網絡的卷積、池化與全連接

    在深度學習,卷積神經網絡(Convolutional Neural Network, CNN)是一種特別適用于處理圖像數據的神經網絡結構。它通過卷積、池化和全連接
    的頭像 發表于 07-11 14:18 ?9840次閱讀
    主站蜘蛛池模板: 99国产精品农村一级毛片 | 狠狠干2019| 一级做a爰片久久毛片免费 一级做a爰片久久毛片免费看 | 亚洲精品视频在线看 | 拍真实国产伦偷精品 | 亚洲经典一区二区三区 | 日韩欧美卡一卡二卡新区 | 午夜欧美性视频在线播放 | 婷婷色在线观看 | 欧美黄色一级视频 | 国产精品久久自在自2021 | 女人张开腿让男人桶视频免费大全 | 美女扒开尿口给男人看大全 | 黄色成人毛片 | 夜间免费视频 | 劳拉淫欲护士bd字幕 | 午夜免费视频 | 天天在线天天看成人免费视频 | 亚洲人成毛片线播放 | 天堂网资源 | 日韩毛片高清免费 | 高清国产下药迷倒美女 | 男女爱爱免费高清 | 精品视频免费看 | 国产精品久久久久国产精品三级 | 全午夜免费一级毛片 | 国产三级精品在线 | 婷婷五月天.com | 国产99久9在线视频 国产99久久九九精品免费 | 91大神精品在线观看 | 一级黄视频 | 妖精视频一区二区三区 | 成人亚洲电影 | 色com| 免费看片你懂的 | 在线精品一区二区三区 | 欧美一二| 国内精品 第一页 | 亚洲欧美日本视频 | 亚洲第一黄色网 | 免费在线成人 |