AI 框架

AI 框架 #


终端推理框架 #

TVM #

Tensor Virtual Machine

apache/tvm Github stars Github forks Language Last Tag Last commit

Open deep learning compiler stack for cpu, gpu and specialized accelerators

Tensor RT #

两种方式进行网络加速

  1. 层间融合或张量融合(Layer & Tensor Fusion)
    • 通常称 conv+bias+reluCBR)为一个 block
    • TensorRT 通过对层间的横向或纵向合并,使得层的数量大大减少
      • 横向合并可以把卷积、偏置和激活层合并成一个 CBR 结构,只占用一个 CUDA 核心。
  2. 数据精度校准(Precision Calibration)
    • 我们训练的网络通常是 FP32 精度的网络,一旦网络训练完成,在部署推理的过程中由于不需要反向传播,完全可以适当降低数据精度,比如降为 FP16 或 INT8 的精度。
      • 更低的数据精度将会使得内存占用和延迟更低,模型体积更小。
    • 什么是 Calibration?对于模型中的若干网络层,我们可以逐个的降低其精度,同时准备一个验证集,再划定一条 baseline,当网络的性能降低到 baseline 时,我们停止降低精度。
      • 当然也可以将所有网络层的精度降低,但与此同时模型的性能也会降低。

OpenVINO #

整体优化目标与 Tensor RT 类似,只不过设备由 GPU 变为 CPU

  1. Linear Operations Fusing
    • 以 resnet 为例,对于 bn 层,他可以被解构为 Mul → Add → Mul → Add,并且可以被集合到 conv 层中
  2. 数据精度校准(Precision Calibration)

pytorch 框架 #

  • pytorch/pytorch Github stars Github forks Language Last Tag Last commit
    • PyTorch is a Python package that provides two high-level features:
      • Tensor computation (like NumPy) with strong GPU acceleration
      • Deep neural networks built on a tape-based autograd system
  • tinygrad/tinygrad Github stars Github forks Language Last Tag Last commit
    • tinygrad: For something between PyTorch and karpathy/micrograd.
  • karpathy/micrograd Github stars Github forks Language Last Tag Last commit
    • A tiny Autograd engine

微调 #


本文访问量

本站总访问量

本站总访客数