别人的代码是火箭,我的代码是乌龟……

机器学习初学者

共 1482字,需浏览 3分钟

 ·

2021-09-23 02:14

秋招正卷时,AI算法人才热度与需求减少,AI工程人才热度与需求激增,这是当下AI的现状。随着开源之风刮起,当下各大企业逐渐意识到,与其花重金养一个博士算法团队,不如多招一些工程能力强的本科或者硕士生。

毕竟各家算法精度相差无几,并且绝大多数落地场景对精度的要求并不苛刻(87%与85%,没太大区别)。更为重要的是算法思想再好,能实际落地才行。而实际落地时,需要考虑的因素更多,比如运算效率、内存占用等。

近期学弟原本开开心心地做算法,突然领导交给了一个算法部署的任务...

学弟:小组长让部署一个视觉模型,争取适配不同平台要求,同时提高模型运行的速度,可愁死了,咋办啊,学长?

我:TensorFlow、PyTorch这些框架的模型,都可以转到ONNX模型格式,然后再做个模型量化,或者精度转化,这不是很轻松么?

学弟:学长,你可别说了。能试的我都试过了,小组长要求,不仅实现加速,而且性能最好也有所提高,这可咋整啊???

我绞尽脑汁,突然灵光一闪,说道:要不重写一下算法模型算子,这样肯定可以加速运行。

学弟顿时来劲了:学长,啥方法这么厉害!赶紧分享一下,两顿饭如何?

我笑了笑:简单啊,用CUDA重写一下模型算子,这样不就能实现模型加速。

学弟苦笑了一下:学长,用CUDA写算子做模型加速,太难了!于是推荐了一份学习cuDNN的资料给学弟
资源条件有限,如何模型推理加速?

没过几天,学弟又愁眉苦脸来找我。

“cuDNN倒是没问题,小组长说,光训练不行啊,还有嵌入式或者边缘计算设备,只能来推理,这样咋做模型加速呢?”

我也被问住了,咋办呀,还能咋办,问大佬呗。经过我软磨硬泡,终于又套来了一份大佬的资料,又甩给了学弟。

学弟开心的跳起来说:学长,这TensorRT又是啥神器啊?

我解释道:TensorRT是NVIDIA针对自家平台做的加速包,只负责模型的推理(inference)过程,一般不用TensorRT来训练模型的,而是用于部署时加速模型运行速度。主要功能包括:

• 算子融合(层与张量融合):简单来说就是通过融合一些计算op或者去掉一些多余op来减少数据流通次数以及显存的频繁使用来提速;

• 量化:量化即IN8量化或者FP16以及TF32等不同于常规FP32精度的使用,这些精度可以显著提升模型执行速度并且不会保持原先模型的精度;

• 内核自动调整:根据不同的显卡构架、SM数量、内核频率等(例如1080TI和2080TI),选择不同的优化策略以及计算方式,寻找最合适当前构架的计算方式;

• 动态张量显存:我们都知道,显存的开辟和释放是比较耗时的,通过调整一些策略可以减少模型中这些操作的次数,从而可以减少模型运行的时间;

• 多流执行:使用CUDA中的stream技术,最大化实现并行操作。

知识点很多,但在学习时没有实操案例,这里推荐一门深蓝学院开设了『CUDA入门与深度神经网络加速』课程,可以去听听。
课程大纲

课程收获
1.掌握CUDA并行计算系统的分析、开发、调试与优化方法;

2.熟悉CUDA的基本概念以及主流的并行运算;

3.了解cuDNN与TensorRT两个深度学习模型加速的主流工具;

4.具备动手实践深度学习模型的加速的能力。

抢占学习名额

扫码备注

咨询奕木 了解CUDA


浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报