SMOL:Jointly Optimizing Preprocessing and Inference for DNN-based Visual Analytics,VLDB,2020

Summary

应用场景:
二分类查询,例如:查询图片中有没有汽车。以及聚合问题,例如:查询视频中的汽车数量。
解决的问题:
图像分类
Baseline:
TAHOMA:降低全分辨率图像的采样率,改善DNN的执行力,并未降低预处理成本,它的输入格式固定以及目标模型都是固定的。
BlazeIt:使用特殊的NN作为控制变量,训练单个NN。使用固定的输入格式
描述:
随着硬件的发展,Smol发现预处理的成本比训练的成本高,所以提出了降低预处理成本的思路方法。
Motivation:
之前的工作:使用代理或者专用NN,过滤输入,减少DNN执行时间(NoScope、BlazeIt、TAHOMA、AQP),
但是忽略了预处理(或将图像数据解码、转换和传输加速器的过程)的时间。
作者提出了两种见解:a)DNN的精度和吞吐量与其输入格式密切相关;b)预处理操作可以放在CPU和加速器上。
这为加速推理提供了两个新的机会:a)基于成本的方法,利用低分辨率的视觉数据来提高精度或改善吞吐量;b)输入和硬件感知的方法,将预处理操作放在CPU或加速器上,并正确地进行流水线计算。
Goal:
Smol的目标是优化端到端的查询时间,除了DNN执行的计算成本,还包括预处理的计算成本。在可用的硬件资源上实现最高的吞吐量,即最小化预处理成本,最大化吞吐量。

Problem/Challenges:

Solution:
首先,我们引入了新的方法,通过使用原生存在的低分辨率视觉数据来实现准确性吞吐量的权衡。 通过我们新的预处理感知成本模型,我们可以选择输入格式和DNN组合,以实现更好的精度/吞吐量权衡。

其次,我们决定将预处理操作放在CPU或者加速器上,以平衡DNN执行和预处理的吞吐量。此外,为了实现高性能的流水线推理,我们构建了一个优化的运行时引擎,用于端到端的DNN推理。我们的优化运行时引擎充分地利用流水线执行、内存管理和高性能线程来充分利用现有的硬件资源。
预处理:调整大小、裁剪、像素级归一化、数据类型转换、通道重排序
一些优化:
(1)高效使用硬件资源
(2)优化预处理步骤
(3)预处理操作的位置选择
(4)图像解码的优化
6.1(1)为了有效地使用所有可用的硬件资源,Smol必须高效地进行流水线计算,使用线程,使用/重复使用内存
由于执行DNNs需要在CPU和加速器上进行计算,因此Smol必须进行重叠计算。要做到这一点,Smol 采用多生产者、多消费者(MPMC)排队系统,以实现多线程。生产者对视觉数据进行解码,消费者进行DNN执行。Smol使用多个消费者,利用多个CUDA流。由于预处理是数据并行的,而且发行CUDA内核是低开销的,我们发现,将生产者数量设置为等于vCPU核数,对于非NUMA服务器来说是一种高效的启发式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值