使用MKL时,AVX2和AVX512之间没有太大区别吗?

时间:2019-03-20 03:54:11

标签: performance tensorflow intel intel-mkl avx512

CPU环境:Intel(R)Xeon(R)Gold 6148 CPU @ 2.40GHz

Fisrt,我用pip install tensorflow==1.12.0安装了tensorflow,并下载了tensorflow-benchmark

运行1:export MKL_VERBOSE=0;export MKL_ENABLE_INSTRUCTIONS=AVX512;python tf_cnn_benchmarks.py --device=cpu --data_format=NHWC --model=alexnet --batch_size=8

运行2:export MKL_VERBOSE=0;export MKL_ENABLE_INSTRUCTIONS=AVX2;python tf_cnn_benchmarks.py --device=cpu --data_format=NHWC --model=alexnet --batch_size=8

速度几乎一样!!!我还更改了其他模型和batch_size。

第二,我还用mkl测试了caffe编译。我找到 MKL_ENABLE_INSTRUCTIONS=AVX512的工作方式不如MKL_ENABLE_INSTRUCTIONS=AVX2

为什么?

1 个答案:

答案 0 :(得分:1)

我认为您的意图是测试使用MKLDNN加速的TensorFlow。与传统的MKL库不同,此库具有仅针对DL操作的数学加速功能。但是,术语MKL和MKLDNN在Intel优化的TensorFlow中显然可以互换使用,尽管在Intel MKLDNN中得到了加速。因此,现在要回答您的问题,MKLDNN库目前还不支持控制ISA调度的功能。

顺便说一下,pip install Tensorflow安装了Google官方的tensorflow库,该库没有MKL加速。要获取英特尔优化的TensorFlow,请参阅安装指南:https://software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide。要检查您的构建中是否启用了MKLDNN,请在export MKLDNN_VERSBOSE=1上使用命令MKL_VERBOSE=1