GPU中的Tensorflow默认数据格式

时间:2018-07-16 07:14:15

标签: tensorflow

我正在使用GPU进行Tensorflow。我对张量的数据格式感到好奇。我认为数据存储在Row Major的GPU / CPU中。

但是,如果要在一个操作(Op)中将数据存储在以列为主的格式中,是否可以仅更改该操作(Op)的数据格式? (例如,在功能中添加一些选项表示更改数据格式)

例如,在matmul操作中,存在与转置相关的选项。如果我转置矩阵,数据格式(列主/行主)是否有变化?

谢谢。

1 个答案:

答案 0 :(得分:1)

是的,默认数据格式为row-major,与Eigen相反。

如果您使用的是Python,则在模拟大型布局时,您需要transpose your data。使用C ++时,没有什么会阻止您使用Eigen::RowMajor

matmul具有选项transpose_atranspose_b,因为(cu-)BLAS可以处理两种格式而无需显式转置,例如参见GEMM。因此,它不会更改您的数据格式。这只是一个技巧,可以防止预先启动CUDA内核或其他功能的附加启动,以最大程度地减少运行时间。

它是BLAS规范e.g. see LAPACK

的一部分