I've built tensorflow (r1.9, using the CMake tools) linked with MKL (v2018 U3) and mkl-dnn (v0.15). I'm running windows 10 (build 17134) on an Intel Core i7-7820HQ CPU.
I've built mkl-dnn from source and it's test are passing. However, a C++ project that loads a pre-trained tensorflow graph and passes an image for inference gives the following error when calling Session::run() :
W d:\dev\tensorflow\tensorflow\core\framework\op_kernel.cc:1318] OP_REQUIRES failed at mkl_conv_ops.cc:888 : Aborted: Operation received an exception:Status: 3, message: could not initialize a memory descriptor, in file d:\dev\tensorflow\tensorflow\core\kernels\mkl_conv_ops.cc:886 Aborted: Operation received an exception:Status: 3, message: could not initialize a memory descriptor, in file d:\dev\tensorflow\tensorflow\core\kernels\mkl_conv_ops.cc:886 [[Node: conv1/BiasAdd = _MklConv2DWithBias[T=DT_FLOAT, _kernel="MklOp", data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 2, 2, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](conv1_pad/Pad, conv1/kernel, conv1/bias, DMT/_0, DMT/_1, DMT/_2)]]
The same code (with the same pre-trained model) does work on a linux machine (Intel(R) Xeon(R) CPU E5-2673 v3, running on Microsoft Azure), also with TF built with mkl-dnn.
Also a github issue on the TF repo:
What am I doing wrong?