当我尝试在 tensorflow 中添加一个新操作时如何 #include "include/libxsmm.h"?



我正在尝试在tensorflow中添加一个新的conv op,我需要使用libxsmm来加速我的conv cal。我试图遵循 tensorflow 源代码,但我发现很难像 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/xsmm_conv2d_test.cc 一样include "include/libxsmm.h"

任何人都可以帮助我= =

另外,我想知道libxsmm中的float matrix是否可以轻松访问矩阵块? 比如a[n,h,:,:]

我知道如何通过以下方式访问单个值:

LIBXSMM_VLA_ACCESS(4,  input, k, c, r, s, C, R, S);

非常感谢。

要包含libxsmm.h,您可能需要依赖TENSORFLOW_USE_LIBXSMM(如果您从事翻译单元的工作,该单元并非专门用于libxsmm(。例如,xsmm_conv2d_test.cc 立即包含 libxsmm.h,因为它只针对libxsmm(前面提到的测试是预先/其他地方的(。但是,例如sparse_matmul_op.cc检查是否定义了TENSORFLOW_USE_LIBXSMM(即使libxsmm不存在,此翻译单元也实现稀疏运算符(。

如果要使用 libxsmm对子矩阵进行操作,这要求libxsmm中的函数大步前进(前导维度(。了解您想从libxsmm(矩阵运算或卷积(使用哪种函数会很有帮助。

最新更新