精选推荐
深度学习框架Caffe与Intel Caffe性能测评
2021-04-10
深度学习框架Caffe
与Intel Caffe性能测评
本文介绍伯克利视觉与学习中心BVLC Caffe(Caffe官方版本)和经过Intel优化的Caffe 版本(即Intel® Optimized Caffe)的性能测试对比。并说明为什么通过英特尔优化过的Caffe版本能有效提升深度学习在CPU下训练的性能。
BVLC Caffe与
Intel® Optimized Caffe介绍
Caffe由伯克利视觉与学习中心(BVLC)开发,其在机器视觉领域使用非常广泛。
它本身是一个开源框架,任何人都可以使用,目前生态发展越来越好。用户可以通过修改构建参数来提升Caffe的性能,比如BLAS,针对CPU或GPU的计算库,CUDA,OpenCV,MATLAB和Python等。
Intel® Optimized Caffe是在BVLC的版本之上基于Intel的CPU体系架构进行优化,使得可以更有效地利用CPU资源。支持单节点和分布式多节点训练。想了解是如何基于Intel CPU架构进行优化点击这里。
在本文中,我们将首先使用Cifar 10训练示例来分析BVLC Caffe的性能,然后使用同一示例来分析Intel® Optimized Caffe的性能。
▪CPU: Intel® Xeon® Gold 6130 CPU @ 2.10GHz
▪内存:256G
▪系统:Centos 7.4
由于只有一台机器,为了快速进行测试,本文使用docker容器来启动Caffe环境。
▪BVLC Caffe镜像:bvlc/caffe:cpu
▪Intel Caffe镜像:bvlc/caffe:intel
使用Cifar10的demo进行测试,需要准备对应的数据集,可以通过脚本下载,也可以手动下载之后放到对应的位置:
在CPU的docker容器下执行
由于caffe:intel的镜像中没有caffe/cifar10的例子,所以需要拷贝出caffe:cpu镜像下对应的/opt/caffe文件
Intel Caffe(Intel® Xeon® Gold 5117 CPU @ 2.00GHz)输出结果:
新增Intel® Xeon® Gold 6230R CPU @ 2.10GHz测试结果
官方版本的Caffe在训练Cifar10总共耗时590488 ms,Intel Caffe总耗时30059 ms。性能提升20倍。下面针对每一项输出进行详细的对比:
由上表可以看出,除BN层外其他层基本都有较为明显的性能提升。而BN层是做批量归一化,本身的计算非常简单,可优化的地方较少,backward性能略有降低是因为线程开销导致的性能变差。性能提升特别明显的是卷积层的操作,而卷积神经网络大部分的算力耗时都是在卷积层,所以优化效果来看还是非常不错的,整体性能提升20倍以上。
另外观察两次的Average Forward pass,平均网络前传耗时,其实就是模型推理时间,这个性能更是提升了100倍,如果用intel Caffe做模型推理性能应该也非常强劲。
Intel® Optimized Caffe是基于Intel体系架构、采用现代化代码技术的Caffe定制版本。在Intel® Optimized Caffe中,英特尔利用优化工具和英特尔® 性能库,执行标量和串行优化,实现了矢量化和并行化。经过实际的测试,Cifar10在CPU架构下训练性能比官方版本提升20倍。