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,是其主要研发者。
联想推出了两种新型号-Legion 5和Legion 5P
数字电源实例分析
图文结合浅析晶体管施密特触发器电路原理
长虹发布AI 3.0 引领电视行业跨入AI3.0时代
科大讯飞董事长刘庆峰为你解答讯飞17年波动与18年方向
NVIDIA TensorRT的数据格式定义
三巨头争抢智能耳穿戴的下一个潜力市场
IPC标准对PCB制造的重要性
拆解:钉钉打卡机,硬件中规中矩,软件才是亮点?
突破性导热底部填充胶 - UF 158A2
2022年全球数据中心数量
长江存储 3D NAND 芯片导入江波龙 U 盘,国产存储芯片产业一条龙
阻抗参数的定义
hc-sr04超声波传感器的原理和应用
新品高性能型通用变频器RX2发布 能进一步帮助设备节能和发挥性能
真3D结构光人脸锁成行业潮品,奥比中光合作锁企“霸屏”建博会
数控机床核心技术缺失 赶超国际水平任重道远
来自一线面试官的AI领域校招建议
雷达物位计的作用及工作原理
NTC热敏电阻的R-T计算