【发布时间】:2018-10-25 02:23:34
【问题描述】:
使用普通 tf1.11 运行广泛、线性和深度模型推理 预构建的深度学习图像版本 M9 for gpu 相对于版本 M10(用于 cpu 推理)显示出更好的性能
M9 : tf-latest-cu92
M10 : tf-latest-cpu
在这两个图像中,tf 版本都是 1.11,并且它们预先构建了英特尔 mkl 优化的二进制文件。 我打开了 mkl 指令的详细日志记录,在 M10 图像上我看到了很多 mkl 相关设置
KMP_AFFINITY=granularity=fine,verbose,compact,1,0
KMP_BLOCKTIME=0
KMP_SETTINGS=1
OMP_NUM_THREADS=32
并记录 mkl 指令的时间。在 M9 图像上我没有观察到任何这样的事情,即使两个图像都显示版本信息为:
MKL_VERBOSE Intel(R) MKL 2019.0 Product build 20180829 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors, Lnx 2.20GHz lp64 intel_thread
MKL_VERBOSE SDOT(2,0x5622b7736500,1,0x5622b7736500,1) 2.54ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:16
1.11.0
当使用 intel mkl 指令而不是 M9 映像时,我发现性能降低了 2-4 倍。 注意:即使 M9 图像适用于 gpu,我也关闭了 cuda 设备可见性和仅对 cpu 推理进行基准测试。在干净的 virtualenv 中使用 tf 1.11 的 pip install 在另一个 linux 机器上进行了相同的观察。
关于如何调试或充分利用 intel mkl 库的任何见解。
【问题讨论】:
标签: tensorflow google-cloud-platform deep-learning intel-mkl google-dl-platform