Clarification of the leading dimension in CUBLAS when transposing

12,415

Solution 1

Nothing changes. The leading dimension always refers to the length of the first dimension of the array. The data order flags (normal, transpose, conjugate) only indicate to BLAS how the data within the array is stored. They have no effect on the array itself, which is always column major ordered and requires an LDA value for indexing in 2D.

So whether the matrix data is stored in transposed form or not, an m x n array always has LDA>=m.

Solution 2

If you are using row-major representation then the number of "columns" will be leading dimension and vice versa in column-major representation number of "rows".

Share:
12,415

Related videos on Youtube

mchen
Author by

mchen

Updated on October 01, 2020

Comments

  • mchen
    mchen over 3 years

    For a matrix A, the documentation only states that the corresponding leading dimension parameter lda refers to the:

    leading dimension of two-dimensional array used to store the matrix A

    Thus I presume this is just the number of rows of A given CUBLAS' column major storage format. However, when we consider Op(A), what does the leading dimension refer to now?

  • gsamaras
    gsamaras almost 9 years
    From your answer, I was ready to conclude that LDA = m. Why the > sign there? :/ +1 btw. Maybe this answer the question after all: icl.cs.utk.edu/lapack-forum/viewtopic.php?t=217
  • talonmies
    talonmies almost 9 years
    @gsamaras: Think about when a BLAS call operates on a submatrix, or when hardware works better when the pitch of the matrix matches a memory controller page size, or cache line size or whatever. See stackoverflow.com/q/8206563/681865
  • gsamaras
    gsamaras almost 9 years
    Thanks! Your answer should be the accepted one there IMHO. "The LDA parameter in BLAS is effectively the stride of the matrix as it is laid out in linear memory." ||| Now, I want to jump on to the distributed case, so if you have some time, maybe you can take a looo at this question: stackoverflow.com/questions/30937544/…