我正在尝试在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);
非常感谢。
答案 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 (矩阵运算或卷积)知道要使用哪种函数会很有帮助。