CUBLAS 中的 Leading dimension
Leading dimension 就是说在 同一行上相邻的 元素 在内存空间上距离 多少个单位 ,
Fortron 语言里矩阵是以列顺序存储的 ,CUDA沿用了这一顺序, 那么矩阵的leading dimension 就是 行数
以其他 语言 为列 , 矩阵的leagding dimension 就是 1
背景; 多维数组(包括矩阵)的布局在逻辑层面上是多维的,而编译器则会将其转换为一维布局,以便根据地址将元素写入一维的内存当中。
一般计算机语言编译器存储多维数组元素是按 行主序的顺序 存储的 ,即逐行地将元素写入内存当中,如下图

Fortran 语言的编译器是以列主序的布局存储多维数组
可能是因为 CUBLAS 库中包含了原Fortran语言编写的库 ?(这里个人了解的不是很透彻),所以在调用库函数时候需要指明 处理的矩阵 是 列主序还是 行主序
Leading dimension 是在描述矩阵 列主序或者是行主序 存储时的维度,
如果是列主序(col-major) 存储 ,那么它的Leading dimension 就是矩阵的行数 (nrows)
如果是行主序(row-major)存储,那么Leading dimension 就是矩阵的列数(ncols)

浙公网安备 33010602011771号