商城网站建站程序,网站内链布局,企业门户网站的建设费用,wordpress文章列表调用描述在对 C++ 版本的 resnet50 经过大约 5 个版本的优化之后,性能也基本达到了预期。至少利用手写的 resnet50 在 CPU 上推理一张图片感觉不到卡顿了。
下面对这几个版本的性能优化做一个总结。 初始版本1
第一版本的 C++ 代码,并没有考虑性能问题,仅仅是想按照手写 resnet50 …在对 C++ 版本的 resnet50 经过大约 5 个版本的优化之后,性能也基本达到了预期。至少利用手写的 resnet50 在 CPU 上推理一张图片感觉不到卡顿了。
下面对这几个版本的性能优化做一个总结。 初始版本1
第一版本的 C++ 代码,并没有考虑性能问题,仅仅是想按照手写 resnet50 的想法,先将功能实现,并且确保手写的模型精度没问题,可以正确推理出一张图片。
作为一个基线版本,第一版也是耗费精力最大的一个版本,经过大量的调试之后,终于将模型的精度稳定在了一个可接受的范围内,在我的虚拟机上(基于 Intel CPU)测试了第一版本的性能数据为: 上面是测试了10几张图片的推理性能数据,平均推理一张图片延时为 17s,这个时间肯定是不行的。试想一下,假设人脸识别要等 17 s才能识别出来,使用者会是什么感受。
于是开启了后续几轮性能优化,每一轮优化都是在前面的基础上进行的。 优化版本2
本次优化重点是对卷积的乘累加操作进行的向量化,利用的是Intel AVX2指令集进行,将乘法和加法向量化,从而提升了卷积计算的速度,本次优化后,在相同的平台上测试,性能数据为: