当前位置: 首页 > article >正文

CUDA与TensorRT学习四:模型部署基础知识、模型部署的几大误区、模型量化、模型剪枝、层融合

文章目录

    • 一、模型部署基础知识
      • 1)FLOPS和TOPS定义介绍、计算公式
        • (1)基础定义
        • (2)计算公式
        • (3)FLOPS在GPU试怎么运算?
        • (4)Ampere SM的电子元件结构
      • 2)Roofline model
    • 二、模型部署的几大误区
    • 三、模型量化
      • 1)mapping-and-shift
      • 2)quantization-granularity
      • 3)calibration-algorithm
      • 4)PTQ-and-quantizatin-analy
      • 5)QAT-and-layer-fusion
    • 四、模型剪枝
      • 1)pruning granularity
      • 2)channel level pruning
      • 3)sparse tensor core
    • 五、层融合

一、模型部署基础知识

1)FLOPS和TOPS定义介绍、计算公式

(1)基础定义
  • 学习目标
    ①理解FLOPS和TOPS是什么
    ②CPU/GPU中的计算FLOPS/TOPS的公式
    ③CUDA core和Tensor Core的区别

  • FLOPS定义
    一秒钟可以出来的浮动小数点运算的次数(衡量计算机硬件性能)
    在这里插入图片描述

  • TOPS定义
    一秒钟可以处理整形运算的次数
    在这里插入图片描述

  • HPC对比(CPU/GPU 单双精度对比)
    在这里插入图片描述

  • FLOPs:
    衡量模型大小的指标
    在这里插入图片描述

(2)计算公式
  • FLOPS计算公式
FLOPS = 时钟频率 * core数量 * 每个时钟周期可以处理的FLOPS
  • 举例计算
    intel i7 Haswell架构 (8核 ,频率3.0 GHz,两个FMA,支持AVX-256指令集)
    那么双精度:
3.0 * 10^9Hz * 8 core * 16 FLOPS/clk = 0.38 TFLOPS 

16 FLOPS/clk:
2 FMA * 4个FP64的SIMD运算*2 乘加融合(乘法和加法是两个浮点运算) = 16   FLOPS/clk

单精度:

3.0 * 10^9Hz * 8 core * 32 FLOPS/clk = 0.76 TFLOPS

2 FMA * 8个FP64的SIMD运算*2 乘加融合(乘法和加法是两个浮点运算) = 32 FLOPS/clk
  • FMA 计算(加法和乘法融合计算,只需一个时钟周期就可以完成计算
    在这里插入图片描述

  • AVX-256指令集的SIMD操作 (一个指令集处理多个数据)
    在这里插入图片描述

(3)FLOPS在GPU试怎么运算?
  • 与cpu不同的地方
    1)没有AVX这种东西
    2)但是有大量的core来提高吞吐量
    3)有Tensor Core来优化矩阵运算
(4)Ampere SM的电子元件结构
  • 一个SM包括
    在这里插入图片描述
  • 每种精度在一个SM的吞吐量
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2)Roofline model

二、模型部署的几大误区

三、模型量化

1)mapping-and-shift

2)quantization-granularity

3)calibration-algorithm

4)PTQ-and-quantizatin-analy

5)QAT-and-layer-fusion

四、模型剪枝

1)pruning granularity

2)channel level pruning

3)sparse tensor core

五、层融合


http://www.kler.cn/news/335502.html

相关文章:

  • Oracle RAC中停止has、crs、cluster的区别
  • WooCommerce与wordpress是什么关系
  • 遥感影像-实例分割数据集:iSAID 从切图到YOLO格式数据集制作详细介绍
  • 字段临时缓存包装器
  • Qt/C++开源控件 自定义雷达控件
  • 计算机取证
  • win用户数据保存路径更改
  • 银河麒麟桌面操作系统修改默认Shell为Bash
  • linux下sudo执行的程序会有一个额外的进程的问题
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习01(环境准备)
  • 【笔记】数据结构
  • 基于单片机的宠物喂食(ESP8266、红外、电机)
  • 第 19 场 强者挑战赛
  • 尝试从 http://pypi.doubanio.com/simple 这个索引源安装 webdriver 时出现了问题
  • 从零开始手写STL库:Stack
  • 电脑手机下载小米xiaomi redmi刷机包太慢 解决办法
  • 【C++11】新特性
  • 【区别】三种命令取消已暂存的文件,处理暂存区和文件的跟踪状态
  • 防止错误输入!Excel单元格限制输入内容的三种有效方式
  • centos7编译安装openresty+lua-resty-http+lua-resty-openssl-master