In this page: https://software.intel.com/en-us/mkl-developer-reference-c-2018-beta-dnnlayoutdeserialize
It is defined as: dnnError_t dnnLayoutDeserialize_F32(const void *buf, dnnLayout_t *pLayout);
but in mkl_dnn.h from mklml_lnx_2017.0.2.20170209, it is defined as: dnnError_t dnnLayoutDeserialize_F32(dnnLayout_t *pLayout, const void *buf);
The parameter order is opposite.