NV何琨:AI视频处理加速引擎及Deepstream介绍( 八 )

然后还有内核调用。不同产品的内核,它的核多、核少、不同的核的大小,或者寄存器的个数,它会自动优化到每个kernel里。

最后是网络层的融合。TensorRT不会改变或者裁剪网络层,但它可以帮我们做一些优化。

NV何琨:AI视频处理加速引擎及Deepstream介绍

图10/14

上图是大家比较熟悉的GoogleNet Inception结构,首先我们可以看到有很多个网络层,比如类似于Caffe或者TensorFlow等底层代码,它调用一个网络层时,会把上一层的Tensor数据拿来传到这个函数里,如果你做GPU优化,它会把这个数据放到GPU进行计算,GPU计算完成后再返回给CPU。每个网络层都是同样的过程。

或者说你把整个的网络层的数据全都Load到GPU里,GPU会把它放在Global Memory里,然后使用时会把它调到每个Kernel或SM多流处理器里。在这过程中,每一层都是“写-计算-读”。我们可以把三个网络层进行融合,CBR,是Convolution、Bias、ReLU的缩写。

推荐阅读