http://docs.nvidia.com/cuda/cublas/index.html#cublas-lt-t-gt-gemm 您可以指定CUBLAS_OP_T
引擎盖下发生了什么? CUBLAS是否默默地在设备空间内创建转置输入的副本,还是只是简单地对原始操作进行操作,只是更改使用的顺序索引? (例如A [i * n + j] ===> A [j * m + i])
如果实际创建副本,我应该避免它,因为时间和空间的额外成本,因为我的输入矩阵是巨大的
答案 0 :(得分:1)
据我所知,没有完成物理转置(内存没有变化)。但是内存是一维的,因此NxM与转置的MxN矩阵之间的差异只是解释问题。从深处看,确实是交换哪个索引被视为“主要”索引的问题。由于BLAS起源于FORTRAN,因此“ N”是列主行,“ T”是行主行。