如何检查是否发生了使用 MKL 的 Tensorflow 图重写?
How to check that Tensorflow graph rewrites that use MKL occur?
从查看 Tensorflow code, some MKL optimizations are done by a graph rewrite replacing sets of nodes by fused functions that use MKL. I tried to look for the rewrites with tf.logging.set_verbosity(1)
but never see of the log messages I expect.
我已经从 CPU 上的源代码构建了 Tensorflow,并启用了 MKL 和 XLA。我认为构建使用的是 MKL,因为如果 tf.nn.conv2d
和 tf.nn.bias_add
一起出现,我可以在正向传递中使用 'NCHW' 数据格式。它还运行得更快并且充分利用了 CPU。向后传递虽然错误说 "CPU BiasGradOp only supports NHWC",但看起来 MKL 函数存在以将 Conv2D 和 BiasAdd 向前和向后与 'NCHW' 融合。所以我想直接看重写。
如何查看图表是否正在重写?
一种方法是使用 timeline/trace 功能。您可以关注此 答案。如果它使用 MKL,您会看到名称为 _MklReshape
或 _MklConv2D
的节点
Tensorflow 有一个带有教程的调试器 (tfdbg) here。调试器打印出 运行 之前的 session.run()
将访问的所有图形节点的列表。
您还可以探索输入张量、输出张量和每个节点的属性。
如果您不想花时间使用 tfdbg 进行编译,Ariel 的回答也适用于查看操作类型。
这不是专门测试图形重写,但您可以检查是否在 tensorflow 中启用了 mkl,方法是:
tf.python.pywrap_tensorflow.IsMklEnabled()
发件人:https://github.com/tensorflow/tensorflow/issues/17176#issuecomment-371364155
对于 v2.0.0+,命令是:
python -c "from tensorflow.python import pywrap_tensorflow; print(pywrap_tensorflow.IsMklEnabled())"
来源:https://software.intel.com/en-us/forums/intel-optimized-ai-frameworks/topic/837000
从查看 Tensorflow code, some MKL optimizations are done by a graph rewrite replacing sets of nodes by fused functions that use MKL. I tried to look for the rewrites with tf.logging.set_verbosity(1)
but never see of the log messages I expect.
我已经从 CPU 上的源代码构建了 Tensorflow,并启用了 MKL 和 XLA。我认为构建使用的是 MKL,因为如果 tf.nn.conv2d
和 tf.nn.bias_add
一起出现,我可以在正向传递中使用 'NCHW' 数据格式。它还运行得更快并且充分利用了 CPU。向后传递虽然错误说 "CPU BiasGradOp only supports NHWC",但看起来 MKL 函数存在以将 Conv2D 和 BiasAdd 向前和向后与 'NCHW' 融合。所以我想直接看重写。
如何查看图表是否正在重写?
一种方法是使用 timeline/trace 功能。您可以关注此 _MklReshape
或 _MklConv2D
Tensorflow 有一个带有教程的调试器 (tfdbg) here。调试器打印出 运行 之前的 session.run()
将访问的所有图形节点的列表。
您还可以探索输入张量、输出张量和每个节点的属性。
如果您不想花时间使用 tfdbg 进行编译,Ariel 的回答也适用于查看操作类型。
这不是专门测试图形重写,但您可以检查是否在 tensorflow 中启用了 mkl,方法是:
tf.python.pywrap_tensorflow.IsMklEnabled()
发件人:https://github.com/tensorflow/tensorflow/issues/17176#issuecomment-371364155
对于 v2.0.0+,命令是:
python -c "from tensorflow.python import pywrap_tensorflow; print(pywrap_tensorflow.IsMklEnabled())"
来源:https://software.intel.com/en-us/forums/intel-optimized-ai-frameworks/topic/837000