TensorRT 支持不同的數據格式。有兩個方面需要考慮:數據類型和布局。
數據類型格式
數據類型是每個單獨值的表示。它的大小決定了取值范圍和表示的精度,分別是FP32(32位浮點,或單精度),FP16(16位浮點或半精度),INT32(32位整數表示),和 INT8(8 位表示)。
布局格式
布局格式確定存儲值的順序。通常,batch 維度是最左邊的維度,其他維度指的是每個數據項的方面,例如圖像中的C是通道, H是高度, W是寬度。忽略總是在這些之前的批量大小, C 、 H和W通常被排序為CHW (參見圖 1 )或HWC (參見圖 2 )。
圖1. CHW的布局格式:圖像分為HxW矩陣,每個通道一個,矩陣按順序存儲;通道的所有值都是連續存儲的。
圖2. HWC的布局格式:圖像存儲為單個HxW矩陣,其值實際上是 C 元組,每個通道都有一個值;一個點(像素)的所有值都是連續存儲的。
為了實現更快的計算,定義了更多格式以將通道值打包在一起并使用降低的精度。因此,TensorRT 還支持NC / 2HW2和NHWC8等格式。
在NC / 2HW2 ( TensorFormat::kCHW2 ) 中,通道值對在每個HxW矩陣中打包在一起(在奇數通道的情況下為空值)。結果是一種格式,其中? C/2 ? HxW矩陣的值是兩個連續通道的值對(參見圖 3 );請注意,如果它們在同一對中,則此排序將維度交錯為具有步長1的通道的值,否則將步長為 2xHxW 。
圖 3. 一對通道值在每個HxW矩陣中打包在一起。結果是一種格式,其中[C/2] HxW矩陣的值是兩個連續通道的值對
在NHWC8 ( TensorFormat::kHWC8 ) 中, HxW矩陣的條目包括所有通道的值。此外,這些值被打包在? C/8 ? 8 元組中,并且C向上舍入到最接近的 8 倍數。
在這種NHWC8格式中, HxW矩陣的條目包括所有通道的值。
其他TensorFormat遵循與前面提到的TensorFormat::kCHW2和TensorFormat::kHWC8類似的規則。
關于作者
Ken He 是 NVIDIA 企業級開發者社區經理 & 高級講師,擁有多年的 GPU 和人工智能開發經驗。自 2017 年加入 NVIDIA 開發者社區以來,完成過上百場培訓,幫助上萬個開發者了解人工智能和 GPU 編程開發。在計算機視覺,高性能計算領域完成過多個獨立項目。并且,在機器人和無人機領域,有過豐富的研發經驗。對于圖像識別,目標的檢測與跟蹤完成過多種解決方案。曾經參與 GPU 版氣象模式GRAPES,是其主要研發者。
審核編輯:郭婷
-
機器人
+關注
關注
213文章
29506瀏覽量
211622 -
NVIDIA
+關注
關注
14文章
5246瀏覽量
105787 -
人工智能
+關注
關注
1804文章
48734瀏覽量
246650
發布評論請先 登錄
使用RDATAC指令后,ADS131E04傳送的數據格式以及內容是怎樣的?
在NVIDIA TensorRT-LLM中啟用ReDrafter的一些變化

解鎖NVIDIA TensorRT-LLM的卓越性能
NVIDIA TensorRT-LLM Roadmap現已在GitHub上公開發布

ADC3561轉換成什么數據格式便于高速實時通過WIFI發送?
PCM2707的S/PDIF輸出的數據格式是什么?
SRC4192能否支持輸入TDM格式音頻數據,輸出I2S,進行數據格式轉換?
請問TLV320AIC3268的ADC轉換后的數據格式是什么樣的?
NVIDIA Nemotron-4 340B模型幫助開發者生成合成訓練數據

評論