Dcsrmv analysis (#458)

This PR (by @pbauman #430) is a hook to be able to call rocsparse_dcsrmv_analysis when using rocSPARSE on AMD GPUs. 

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
This commit is contained in:
Ruipeng Li 2021-09-08 13:59:17 -07:00 committed by GitHub
parent 16f9f3835c
commit dd9f1ea31c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 2 deletions

View File

@ -20,8 +20,6 @@ hypre_CsrsvData*
hypre_CsrsvDataCreate()
{
hypre_CsrsvData *data = hypre_CTAlloc(hypre_CsrsvData, 1, HYPRE_MEMORY_HOST);
hypre_CsrsvDataBufferSize(data) = 0;
hypre_CsrsvDataBuffer(data) = NULL;
return data;
}
@ -1991,3 +1989,20 @@ hypre_SortCSRRocsparse( HYPRE_Int n,
}
#endif // #if defined(HYPRE_USING_ROCSPARSE)
void hypre_CSRMatrixGpuSpMVAnalysis(hypre_CSRMatrix *matrix)
{
#if defined(HYPRE_USING_ROCSPARSE)
HYPRE_ROCSPARSE_CALL( rocsparse_dcsrmv_analysis(hypre_HandleCusparseHandle(hypre_handle()),
rocsparse_operation_none,
hypre_CSRMatrixNumRows(matrix),
hypre_CSRMatrixNumCols(matrix),
hypre_CSRMatrixNumNonzeros(matrix),
hypre_CSRMatrixGPUMatDescr(matrix),
hypre_CSRMatrixData(matrix),
hypre_CSRMatrixI(matrix),
hypre_CSRMatrixJ(matrix),
hypre_CSRMatrixGPUMatInfo(matrix)) );
#endif // #if defined(HYPRE_USING_ROCSPARSE)
}

View File

@ -234,3 +234,4 @@ hypre_GpuMatData* hypre_CSRMatrixGetGPUMatData(hypre_CSRMatrix *matrix);
#define hypre_CSRMatrixGPUMatDescr(matrix) ( hypre_GpuMatDataMatDecsr(hypre_CSRMatrixGetGPUMatData(matrix)) )
#define hypre_CSRMatrixGPUMatInfo(matrix) ( hypre_GpuMatDataMatInfo (hypre_CSRMatrixGetGPUMatData(matrix)) )
#endif
void hypre_CSRMatrixGpuSpMVAnalysis(hypre_CSRMatrix *matrix);

View File

@ -506,6 +506,7 @@ hypre_GpuMatData* hypre_CSRMatrixGetGPUMatData(hypre_CSRMatrix *matrix);
#define hypre_CSRMatrixGPUMatDescr(matrix) ( hypre_GpuMatDataMatDecsr(hypre_CSRMatrixGetGPUMatData(matrix)) )
#define hypre_CSRMatrixGPUMatInfo(matrix) ( hypre_GpuMatDataMatInfo (hypre_CSRMatrixGetGPUMatData(matrix)) )
#endif
void hypre_CSRMatrixGpuSpMVAnalysis(hypre_CSRMatrix *matrix);
#ifdef __cplusplus
}

View File

@ -2265,6 +2265,8 @@ main( hypre_int argc,
else if ( build_matrix_type == 4 )
{
BuildParLaplacian27pt(argc, argv, build_matrix_arg_index, &parcsr_A);
hypre_CSRMatrixGpuSpMVAnalysis(hypre_ParCSRMatrixDiag(parcsr_A));
}
else if ( build_matrix_type == 5 )
{