如何#include"包含/ libxsmm.h"当我尝试在张量流中添加新操作时?

时间:2017-08-06 14:44:14

标签: c++ tensorflow

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

任何人都可以帮助我= =

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

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

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

非常感谢。

1 个答案:

答案 0 :(得分:0)

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

如果要使用 libxsmm 操作子矩阵,则需要 libxsmm 中的函数采用步幅(前导维度)。从 libxsmm (矩阵运算或卷积)知道要使用哪种函数会很有帮助。