Hi:
I am triyng to understand the way of work of linear solver "magma_sgetrf_gpu"
I think (but I am not sure) that the solver uses any kind of padding technique
Am I right?
If I see the code in "testing_sgesv.gupu.cpp", I have some questions for
- allocating memory for matrix in GPU:
status = cublasAlloc((N+32)*(N+32) + 32*maxnb + lwork+2*maxnb*maxnb,
sizeof(float), (void**)&d_A ) ;
if (status != CUBLAS_STATUS_SUCCESS) {
- Sending the matrix to GPU
int dlda = (N/32)*32;
if (dlda<N) dlda+=32;
.....
cublasSetMatrix( N, N, sizeof( float ), A, N, d_A, dlda ) ;
This confuses to me a little because dlda is not N...What happens here?
- Solving the system:
magma_sgetrf_gpu(&N, &N, d_A, &dlda, IPIV, h_work_M_S, INFO);
Is this to make padding?
With many thanks in advance.
jpeinado
