-
libtorch 优化算法性能 从90ms 优化到3ms
为啥选择C++部署AI算法?
- 因为很多算法都是模型比较大,属于计算密集型算法,对服务器或pc机的要求较高.落地使用Python来部署算法肯定没有优势性.
- 目前业界的常用做法也是采用Python来训练模型,使用C++来部署算法,这样做的好处有以下几个方面:1)可以提高算法的计算性能包括CPU使用,内存使用,执行效率等; 2)嵌入式开发必不可少的是C++;
如何优化性能?
算法层面
确定你的模型是否能精简?
- 重新思考你的算法模型是否已经是最简,很多问题是没必要选择很复杂的模型,看看输入的维度能否简化?模型的节点数能否减少?输入的层数能否减少? 减少这些可以简化模型,提升运行效率
- 优化矩阵乘法的性能,例如充分利用硬件平台的高性能数学库mkl和cuDNN
- 优化内存布局,避免冗余的访存操作,尤其是transpose;因为核心利用率低的原因之一很可能是内存访问开销过大,导致计算核心没有充分利用,transpose操作和过多的数据存取操作或者内存布局不合理都可能引起该问题;
- 针对硬件平台进行微架构优化,提升多个核心的并行计算效率;大量零散的python算子势必带来大量的op kernel启动和存储开销,进行算子融合是最有效的解决方法。
C++语法层优化
- 对于C++开发,我感触最深的是尽量少使用赋值,多使用引用和指针,毕竟这是C++独有的.对于提升效率很关键
- 建议减少for循环的使用,特别是多层for循环的嵌套,毕竟循环能增加你的开销;
libto
-
相关阅读:
【leetcode】寻找重复数
设计模式(五):建造者模式
勤于奋国外LEAD最近一些常态
Java中代码30个必备码优化技巧(荣耀典藏版)
首份中国企业敏捷实践白皮书发布| 附完整下载
计算机毕业设计node+vue基于微信小程序的西餐外卖系统 uniapp 小程序
VMware安装虚拟机ubuntu
关于 Hypervisor的理解
vue使用scope插槽实现dialog窗口
毕业后河北种水稻 国稻种芯·中国水稻节:安徽姑娘承德务农
-
原文地址:https://blog.csdn.net/weixin_32393347/article/details/126858787