在NVIDIA V100上使用TensorRT FP16或INT8不能加快速度

时间:2019-03-13 19:33:50

标签: tensorflow tensorflow-serving tensorrt tf.keras

我一直在尝试使用trt.create_inference_graph将Keras转换的Tensorflow保存的模型从FP32转换为FP16和INT8,然后将其保存为可用于TensorFlow服务的格式。此处的代码-https://colab.research.google.com/drive/16zUmIx0_KxRHLN751RCEBuZRKhWx6BsJ

但是与我的测试客户端一起运行时,我发现时间没有变化。

我比较了笔记本电脑中不同型号的NVIDIA V100 32 GB和我的8Gb 1070 GTX卡。我尝试减小和增大输入形状以检查记忆效果。总的来说,我认为,除了32 GB内存的优势(不仅可以加载模型,还可以处理更多的帧而不用不占用内存),V100似乎并没有提高速度。我特别想将FP16模式下的速度提高一倍。不确定Keras转换的TF模型,模型的复杂性或设计是否起作用。

以下是测试详细信息https://docs.google.com/spreadsheets/d/1Sl7K6sa96wub1OXcneMk1txthQfh63b0H5mwygyVQlE/edit?usp=sharing

Model 4 Keras converted TF sering           
Model 6 TF Graph simple optimisation            
Model 7     TF Graph simple optimisation + Weight Qunatization          
Model 8 TF Graph simple optimisation + Weight + Model Qunatization          

Model 9     Based on Model 4 frozen; NVIDIA Tensor RT Optimisation FP 32            
Model 10    Based on Model 4 frozen; NVIDIA Tensor RT Optimisation FP 16            
Model 11    Based on Model 4 frozen; NVIDIA Tensor RT Optimisation INT 8            
No of Runs 1                
Model   NVIDIA GTX 1070 NVIDIA V100  32 GB      
4   0.13    0.13        
6   0.14    0.15        
7   0.15    0.14        
9   0.13    0.12        
10  0.13    0.12        
11  0.13    0.12        
No of runs :10              
4   1.15    0.81        
6   1.34    1.16        
7   1.15    1.27        
9   1.23    0.82        
10  1.22    0.83        
11  1.22    0.85        

FP32-V100-无优化

('Label', 'person', ' at ', array([409, 167, 728, 603]), ' Score ', 0.968112)
('Label', 'person', ' at ', array([  0, 426, 512, 785]), ' Score ', 0.8355837)
('Label', 'person', ' at ', array([ 723,  475, 1067,  791]), ' Score ', 0.7234411)
('Label', 'tie', ' at ', array([527, 335, 569, 505]), ' Score ', 0.52543193)
('Time for ', 10, ' is ', 0.7228488922119141)

基于TensorFlow的FP 32优化-TransformGraph

没有权重或模型量化

('Time for ', 10, ' is ', 0.6342859268188477)

FP ???基于TensorFlow的优化-+ Weight Quantized-TransformGraph

量化重量后;型号大小为39 MB !! (约149 MB) 但是时间是一倍     (“时间为',10,'为',1.201113224029541)

模型量化-不起作用(至少在TF服务中有效)

使用NVIDIA TensorRT Optimization(可伸缩笔记本)

FP16-v100

('Label', 'person', ' at ', array([409, 167, 728, 603]), ' Score ', 0.9681119)
('Label', 'person', ' at ', array([  0, 426, 512, 785]), ' Score ', 0.83558357)
('Label', 'person', ' at ', array([ 723,  475, 1067,  791]), ' Score ', 0.7234408)
('Label', 'tie', ' at ', array([527, 335, 569, 505]), ' Score ', 0.52543193)
('Time for ', 10, ' is ', 0.8691568374633789)

INT 8

('Label', 'person', ' at ', array([409, 167, 728, 603]), ' Score ', 0.9681119)
('Label', 'person', ' at ', array([  0, 426, 512, 785]), ' Score ', 0.83558357)
('Label', 'person', ' at ', array([ 723,  475, 1067,  791]), ' Score ', 0.7234408)
('Label', 'tie', ' at ', array([527, 335, 569, 505]), ' Score ', 0.52543193)
('Time for ', 10, ' is ', 0.8551359176635742)

优化代码段 https://colab.research.google.com/drive/1u79vDN4MZuq6gYIOkPmWsbghjunbDq6m

注意:运行之间有细微差别

2 个答案:

答案 0 :(得分:0)

一些事情可以帮助导致缺乏加速的根源。

您可以检查有多少个节点转换为TRT。

使用最新版本的TF(1.13或每晚)来利用最近添加的所有功能。

个人资料(例如nvprof或tf分析器),以了解推理工作量的瓶颈所在。

TF-TRT用户指南可能会有所帮助:https://docs.nvidia.com/deeplearning/dgx/integrate-tf-trt/index.html

此仓库中还有很多示例:https://github.com/tensorflow/tensorrt

答案 1 :(得分:0)

我在NVIDIA GTX 1070和NVIDIA V100上使用TF官方Resnet50模型,FP32和FP16进行了测试。这次我没有使用TensorRT或任何优化。使用了

的TF模型
MODEL = https://github.com/tensorflow/models/tree/master/official/resnet
FP32 = http://download.tensorflow.org/models/official/20181001_resnet/savedmodels/resnet_v2_fp32_savedmodel_NCHW.tar.gz
FP16 =  http://download.tensorflow.org/models/official/20181001_resnet/savedmodels/resnet_v2_fp16_savedmodel_NCHW.tar.gz
Model Extracted and RUN
docker run  --net=host --runtime=nvidia  -it --rm -p 8900:8500 -p 8901:8501 
 -v /home/alex/coding/IPython_neuralnet/:/models/ tensorflow/serving:latesgpu 
  --model_config_file=/models/resnet50_fp32.json or resnet50_fp16.json
Results =

这是结果。似乎没有速度差异/超过特定点的CUDA内核数量;此处的FP16模型的运行速度不是两倍。也许我需要使用TensorRT进行转换

https://docs.google.com/spreadsheets/d/1Sl7K6sa96wub1OXcneMk1txthQfh63b0H5mwygyVQlE/edit?usp=sharing

enter image description here