【问题标题】:tensorflow performance degradation with intel mkl使用英特尔 mkl 的张量流性能下降
【发布时间】: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


    【解决方案1】:

    此行为已在 M16+(TF 1.12)中得到修复。

    【讨论】:

    • 你能解释一下是什么问题吗?是内存分配器问题还是其他问题?如果内存分配器问题,我们仍然看到 intel mkl 的性能更差
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2016-07-14
    • 2016-09-26
    • 2019-11-19
    • 2022-07-06
    • 1970-01-01
    相关资源
    最近更新 更多