Matrix dimensions and cublas kernels

Dear PyFR team,

I am trying to use cublas in PyFR and I am using the Euler vortex case for testing. However, I am confused because when I print the matrix that is input to cublas, I found that it is three-dimensional (64, 4, 400). I am using the print function print(A.get()) to print the matrix. Shouldn’t the input matrix to cublas be two-dimensional? And I also noticed that A.ncol is 1664. How is this number calculated? I am having a hard time understanding this.

I would greatly appreciate it if you could provide some clarification on this issue.

Best regards,

I know the reason now, in file backend.base.type , pyfr reshape the 3D matrix. And I found a parameter soasz =32 , is this number related to the hardware arch? How to get this number?

We use an AoSoA data layout with variable width. On GPUs it makes sense to set this to 32 as there are typically 32 threads in a warp, so you can get efficient memory access with this width.