《GPU 推理中的数据格式全局优化算法.pdf》由会员分享,可在线阅读,更多相关《GPU 推理中的数据格式全局优化算法.pdf(25页珍藏版)》请在三个皮匠报告上搜索。
1、Alibaba 达摩院 机器智能 陈元凯11/12/2020 GPU推理中Tensor数据格式的全局优化 01问题背景 02数据格式优化算法 03 数据展示/未来工作 目录 数据格式 数据格式(memory layout): tensor数据可以按照不同顺序排列 主流框架 (TF, onnx etc): NCHW 为什么需要不同的数据格式: 不同的计算流程,多样的数据读写pattern 新一代的GPU硬件:tensor core 1 NC/4HW4c NCHW 6 371115481216 N: Batch size C: Ch
2、annel size H,W: Feature map size 数据格式的影响 https:/ ops-tensor-transformations-conversion NCHW格式:多了两次input/output的格式转换 NHWC格式:其他算子不一定支持,模型中多次格式转换 1 我们的应用场景 使用到的数据格式 INT8_NCHW INT8_NC4HW4 INT8_NC16HW16 INT8_NHWC FP16_NCHW FP16_NHWC 1 CUDNN 自研计 算库 3rdparty 计算库 TVM 推理引擎 数据格式选择 数据格式和算子性能: Workload的影响 (devi
3、ce V100, kernel source CUDNN): Float16 卷积 1 3 224 224 * 64 3 7 7 NHWC: 0.29ms, NCHW: 0.058ms Float16 卷积 1 128 28 28 * 128 128 3 3 NHWC: 0.045ms, NCHW: 0.091ms 如果选择数据格式? 选择单个算子最快 != 模型整体最快 数据格式之间转换需要额外的开销 1 例子1 conv1 conv2 Convert NHWC NCHW 0.3ms 0.2ms 0.5ms Total=1.0ms conv1 conv2 0.3ms NCHW 0.6ms Total=0.9ms 数据格式转换时间可能很耗时 最好的组合不见得对单个op最快 全局统筹的算法问题 问题综述1 问题描述 输入: 深度学习模型 算子不同实现 (cudnn, TVM, etc) 输出