diff --git a/projects/hipsparse/clients/include/hipsparse_graph.hpp b/projects/hipsparse/clients/include/hipsparse_graph.hpp index 66eed3104d86..2889b062c4f8 100644 --- a/projects/hipsparse/clients/include/hipsparse_graph.hpp +++ b/projects/hipsparse/clients/include/hipsparse_graph.hpp @@ -120,4 +120,70 @@ namespace testing TESTING_TEMPLATE(SDDMM_bufferSize) TESTING_TEMPLATE(SDDMM_preprocess) #endif + + /* + * =========================================================================== + * conversion SPARSE + * =========================================================================== + */ + + // coo2csr and csr2coo are not templated on T + TESTING_TEMPLATE(Xcoo2csr) + TESTING_TEMPLATE(Xcsr2coo) + +#if(!defined(CUDART_VERSION) || CUDART_VERSION >= 10010) + // csr2csc_ex2 available from CUDA 10.1 + TESTING_TEMPLATE(Csr2cscEx2_bufferSize) + TESTING_TEMPLATE(Csr2cscEx2) +#endif + + // bsr2csr + TESTING_COMPUTE_TEMPLATE(bsr2csr) + + // csr2gebsr and gebsr2csr + TESTING_TEMPLATE(Xcsr2gebsrNnz) + TESTING_COMPUTE_TEMPLATE(csr2gebsr) + TESTING_COMPUTE_TEMPLATE(gebsr2csr) + + // gebsr2gebsr and gebsr2gebsc + TESTING_TEMPLATE(Xgebsr2gebsrNnz) + TESTING_COMPUTE_TEMPLATE(gebsr2gebsr) + TESTING_COMPUTE_TEMPLATE(gebsr2gebsc) + + // csr2csr_compress +#if(!defined(CUDART_VERSION) || CUDART_VERSION < 13000) + TESTING_COMPUTE_TEMPLATE(nnz_compress) +#endif + TESTING_COMPUTE_TEMPLATE(csr2csr_compress) + + // dense to sparse +#if(!defined(CUDART_VERSION) || CUDART_VERSION < 12000) + TESTING_COMPUTE_TEMPLATE(dense2csr) + TESTING_COMPUTE_TEMPLATE(dense2csc) + TESTING_COMPUTE_TEMPLATE(csr2dense) + TESTING_COMPUTE_TEMPLATE(csc2dense) +#endif + + // prune routines +#if(!defined(CUDART_VERSION) || CUDART_VERSION < 13000) + TESTING_COMPUTE_TEMPLATE(pruneDense2csr_bufferSize) + TESTING_COMPUTE_TEMPLATE(pruneDense2csrNnz) + TESTING_COMPUTE_TEMPLATE(pruneDense2csr) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csr_bufferSize) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csrNnz) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csr) + TESTING_COMPUTE_TEMPLATE(pruneDense2csr_bufferSizeExt) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csr_bufferSizeExt) + TESTING_COMPUTE_TEMPLATE(pruneDense2csrByPercentage_bufferSize) + TESTING_COMPUTE_TEMPLATE(pruneDense2csrByPercentage_bufferSizeExt) + TESTING_COMPUTE_TEMPLATE(pruneDense2csrNnzByPercentage) + TESTING_COMPUTE_TEMPLATE(pruneDense2csrByPercentage) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csrByPercentage_bufferSize) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csrByPercentage_bufferSizeExt) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csrNnzByPercentage) + TESTING_COMPUTE_TEMPLATE(pruneCsr2csrByPercentage) +#endif + + // nnz routines + TESTING_COMPUTE_TEMPLATE(nnz) } diff --git a/projects/hipsparse/clients/include/testing_bsr2csr.hpp b/projects/hipsparse/clients/include/testing_bsr2csr.hpp index 0dc05e754bfb..8b67a8d6cce0 100644 --- a/projects/hipsparse/clients/include/testing_bsr2csr.hpp +++ b/projects/hipsparse/clients/include/testing_bsr2csr.hpp @@ -30,6 +30,7 @@ #include "gbyte.hpp" #include "hipsparse.hpp" #include "hipsparse_arguments.hpp" +#include "hipsparse_graph.hpp" #include "hipsparse_test_unique_ptr.hpp" #include "unit.hpp" #include "utility.hpp" @@ -53,12 +54,11 @@ void testing_bsr2csr_bad_arg(const Arguments& argus) hipsparseIndexBase_t bsr_idx_base = HIPSPARSE_INDEX_BASE_ZERO; hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; - std::unique_ptr unique_ptr_csr_descr(new descr_struct); - hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; - std::unique_ptr unique_ptr_bsr_descr(new descr_struct); - hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; + hipsparseLocalHandle_t handle; + std::unique_ptr unique_ptr_csr_descr(new descr_struct); + hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; + std::unique_ptr unique_ptr_bsr_descr(new descr_struct); + hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; hipsparseSetMatIndexBase(csr_descr, csr_idx_base); hipsparseSetMatIndexBase(bsr_descr, bsr_idx_base); @@ -267,12 +267,11 @@ void testing_bsr2csr(Arguments argus) hipsparseDirection_t dir = argus.dirA; std::string filename = argus.filename; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; - std::unique_ptr unique_ptr_csr_descr(new descr_struct); - hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; - std::unique_ptr unique_ptr_bsr_descr(new descr_struct); - hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; + hipsparseLocalHandle_t handle(argus); + std::unique_ptr unique_ptr_csr_descr(new descr_struct); + hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; + std::unique_ptr unique_ptr_bsr_descr(new descr_struct); + hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; hipsparseSetMatIndexBase(csr_descr, csr_idx_base); hipsparseSetMatIndexBase(bsr_descr, bsr_idx_base); @@ -356,19 +355,19 @@ void testing_bsr2csr(Arguments argus) if(argus.unit_check) { - CHECK_HIPSPARSE_ERROR(hipsparseXbsr2csr(handle, - dir, - mb, - nb, - bsr_descr, - dbsr_val, - dbsr_row_ptr, - dbsr_col_ind, - block_dim, - csr_descr, - dcsr_val, - dcsr_row_ptr, - dcsr_col_ind)); + CHECK_HIPSPARSE_ERROR(testing::hipsparseXbsr2csr(handle, + dir, + mb, + nb, + bsr_descr, + dbsr_val, + dbsr_row_ptr, + dbsr_col_ind, + block_dim, + csr_descr, + dcsr_val, + dcsr_row_ptr, + dcsr_col_ind)); // Copy output from device to host CHECK_HIP_ERROR(hipMemcpy( @@ -417,19 +416,19 @@ void testing_bsr2csr(Arguments argus) // Warm up for(int iter = 0; iter < number_cold_calls; ++iter) { - CHECK_HIPSPARSE_ERROR(hipsparseXbsr2csr(handle, - dir, - mb, - nb, - bsr_descr, - dbsr_val, - dbsr_row_ptr, - dbsr_col_ind, - block_dim, - csr_descr, - dcsr_val, - dcsr_row_ptr, - dcsr_col_ind)); + CHECK_HIPSPARSE_ERROR(testing::hipsparseXbsr2csr(handle, + dir, + mb, + nb, + bsr_descr, + dbsr_val, + dbsr_row_ptr, + dbsr_col_ind, + block_dim, + csr_descr, + dcsr_val, + dcsr_row_ptr, + dcsr_col_ind)); } double gpu_time_used = get_time_us(); @@ -437,19 +436,19 @@ void testing_bsr2csr(Arguments argus) // Performance run for(int iter = 0; iter < number_hot_calls; ++iter) { - CHECK_HIPSPARSE_ERROR(hipsparseXbsr2csr(handle, - dir, - mb, - nb, - bsr_descr, - dbsr_val, - dbsr_row_ptr, - dbsr_col_ind, - block_dim, - csr_descr, - dcsr_val, - dcsr_row_ptr, - dcsr_col_ind)); + CHECK_HIPSPARSE_ERROR(testing::hipsparseXbsr2csr(handle, + dir, + mb, + nb, + bsr_descr, + dbsr_val, + dbsr_row_ptr, + dbsr_col_ind, + block_dim, + csr_descr, + dcsr_val, + dcsr_row_ptr, + dcsr_col_ind)); } gpu_time_used = (get_time_us() - gpu_time_used) / number_hot_calls; diff --git a/projects/hipsparse/clients/include/testing_coo2csr.hpp b/projects/hipsparse/clients/include/testing_coo2csr.hpp index 7991dac41fa9..f64bdf7a16fd 100644 --- a/projects/hipsparse/clients/include/testing_coo2csr.hpp +++ b/projects/hipsparse/clients/include/testing_coo2csr.hpp @@ -30,6 +30,7 @@ #include "gbyte.hpp" #include "hipsparse.hpp" #include "hipsparse_arguments.hpp" +#include "hipsparse_graph.hpp" #include "hipsparse_test_unique_ptr.hpp" #include "unit.hpp" #include "utility.hpp" @@ -50,8 +51,7 @@ void testing_coo2csr_bad_arg(const Arguments& argus) int safe_size = 100; hipsparseIndexBase_t idx_base = HIPSPARSE_INDEX_BASE_ZERO; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; + hipsparseLocalHandle_t handle; auto coo_row_ind_managed = hipsparse_unique_ptr{device_malloc(sizeof(int) * safe_size), device_free}; @@ -80,8 +80,7 @@ void testing_coo2csr(Arguments argus) hipsparseIndexBase_t idx_base = argus.baseA; std::string filename = argus.filename; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; + hipsparseLocalHandle_t handle(argus); srand(12345ULL); @@ -116,7 +115,7 @@ void testing_coo2csr(Arguments argus) if(argus.unit_check) { CHECK_HIPSPARSE_ERROR( - hipsparseXcoo2csr(handle, dcoo_row_ind, nnz, m, dcsr_row_ptr, idx_base)); + testing::hipsparseXcoo2csr(handle, dcoo_row_ind, nnz, m, dcsr_row_ptr, idx_base)); // Copy output from device to host CHECK_HIP_ERROR(hipMemcpy( @@ -148,7 +147,7 @@ void testing_coo2csr(Arguments argus) for(int iter = 0; iter < number_cold_calls; ++iter) { CHECK_HIPSPARSE_ERROR( - hipsparseXcoo2csr(handle, dcoo_row_ind, nnz, m, dcsr_row_ptr, idx_base)); + testing::hipsparseXcoo2csr(handle, dcoo_row_ind, nnz, m, dcsr_row_ptr, idx_base)); } double gpu_time_used = get_time_us(); @@ -157,7 +156,7 @@ void testing_coo2csr(Arguments argus) for(int iter = 0; iter < number_hot_calls; ++iter) { CHECK_HIPSPARSE_ERROR( - hipsparseXcoo2csr(handle, dcoo_row_ind, nnz, m, dcsr_row_ptr, idx_base)); + testing::hipsparseXcoo2csr(handle, dcoo_row_ind, nnz, m, dcsr_row_ptr, idx_base)); } gpu_time_used = (get_time_us() - gpu_time_used) / number_hot_calls; diff --git a/projects/hipsparse/clients/include/testing_csr2coo.hpp b/projects/hipsparse/clients/include/testing_csr2coo.hpp index 05e7ef6be200..3f6b0020a788 100644 --- a/projects/hipsparse/clients/include/testing_csr2coo.hpp +++ b/projects/hipsparse/clients/include/testing_csr2coo.hpp @@ -30,6 +30,7 @@ #include "gbyte.hpp" #include "hipsparse.hpp" #include "hipsparse_arguments.hpp" +#include "hipsparse_graph.hpp" #include "hipsparse_test_unique_ptr.hpp" #include "unit.hpp" #include "utility.hpp" @@ -50,8 +51,7 @@ void testing_csr2coo_bad_arg(const Arguments& argus) int safe_size = 100; hipsparseIndexBase_t idx_base = HIPSPARSE_INDEX_BASE_ZERO; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; + hipsparseLocalHandle_t handle; auto csr_row_ptr_managed = hipsparse_unique_ptr{device_malloc(sizeof(int) * safe_size), device_free}; @@ -80,8 +80,7 @@ void testing_csr2coo(Arguments argus) hipsparseIndexBase_t idx_base = argus.baseA; std::string filename = argus.filename; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; + hipsparseLocalHandle_t handle(argus); srand(12345ULL); @@ -110,7 +109,7 @@ void testing_csr2coo(Arguments argus) if(argus.unit_check) { CHECK_HIPSPARSE_ERROR( - hipsparseXcsr2coo(handle, dcsr_row_ptr, nnz, m, dcoo_row_ind, idx_base)); + testing::hipsparseXcsr2coo(handle, dcsr_row_ptr, nnz, m, dcoo_row_ind, idx_base)); // Copy output from device to host std::vector hcoo_row_ind(nnz); @@ -143,7 +142,7 @@ void testing_csr2coo(Arguments argus) for(int iter = 0; iter < number_cold_calls; ++iter) { CHECK_HIPSPARSE_ERROR( - hipsparseXcsr2coo(handle, dcsr_row_ptr, nnz, m, dcoo_row_ind, idx_base)); + testing::hipsparseXcsr2coo(handle, dcsr_row_ptr, nnz, m, dcoo_row_ind, idx_base)); } double gpu_time_used = get_time_us(); @@ -152,7 +151,7 @@ void testing_csr2coo(Arguments argus) for(int iter = 0; iter < number_hot_calls; ++iter) { CHECK_HIPSPARSE_ERROR( - hipsparseXcsr2coo(handle, dcsr_row_ptr, nnz, m, dcoo_row_ind, idx_base)); + testing::hipsparseXcsr2coo(handle, dcsr_row_ptr, nnz, m, dcoo_row_ind, idx_base)); } gpu_time_used = (get_time_us() - gpu_time_used) / number_hot_calls; diff --git a/projects/hipsparse/clients/include/testing_csr2csc_ex2.hpp b/projects/hipsparse/clients/include/testing_csr2csc_ex2.hpp index f91e65e8fefa..7af6c82f797e 100644 --- a/projects/hipsparse/clients/include/testing_csr2csc_ex2.hpp +++ b/projects/hipsparse/clients/include/testing_csr2csc_ex2.hpp @@ -30,6 +30,7 @@ #include "gbyte.hpp" #include "hipsparse.hpp" #include "hipsparse_arguments.hpp" +#include "hipsparse_graph.hpp" #include "hipsparse_test_unique_ptr.hpp" #include "unit.hpp" #include "utility.hpp" @@ -51,8 +52,7 @@ void testing_csr2csc_ex2_bad_arg(const Arguments& argus) int safe_size = 100; size_t buffer_size = 0; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; + hipsparseLocalHandle_t handle; auto csr_row_ptr_managed = hipsparse_unique_ptr{device_malloc(sizeof(int) * safe_size), device_free}; @@ -286,8 +286,7 @@ void testing_csr2csc_ex2(Arguments argus) hipDataType dataType = getDataType(); - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; + hipsparseLocalHandle_t handle(argus); srand(12345ULL); @@ -331,21 +330,21 @@ void testing_csr2csc_ex2(Arguments argus) CHECK_HIP_ERROR(hipMemcpy(dcsr_val, hcsr_val.data(), sizeof(T) * nnz, hipMemcpyHostToDevice)); size_t bufferSize; - CHECK_HIPSPARSE_ERROR(hipsparseCsr2cscEx2_bufferSize(handle, - m, - n, - nnz, - dcsr_val, - dcsr_row_ptr, - dcsr_col_ind, - dcsc_val, - dcsc_col_ptr, - dcsc_row_ind, - dataType, - action, - idx_base, - alg, - &bufferSize)); + CHECK_HIPSPARSE_ERROR(testing::hipsparseCsr2cscEx2_bufferSize(handle, + m, + n, + nnz, + dcsr_val, + dcsr_row_ptr, + dcsr_col_ind, + dcsc_val, + dcsc_col_ptr, + dcsc_row_ind, + dataType, + action, + idx_base, + alg, + &bufferSize)); // Allocate buffer on the device auto dbuffer_managed @@ -355,21 +354,21 @@ void testing_csr2csc_ex2(Arguments argus) if(argus.unit_check) { - CHECK_HIPSPARSE_ERROR(hipsparseCsr2cscEx2(handle, - m, - n, - nnz, - dcsr_val, - dcsr_row_ptr, - dcsr_col_ind, - dcsc_val, - dcsc_col_ptr, - dcsc_row_ind, - dataType, - action, - idx_base, - alg, - dbuffer)); + CHECK_HIPSPARSE_ERROR(testing::hipsparseCsr2cscEx2(handle, + m, + n, + nnz, + dcsr_val, + dcsr_row_ptr, + dcsr_col_ind, + dcsc_val, + dcsc_col_ptr, + dcsc_row_ind, + dataType, + action, + idx_base, + alg, + dbuffer)); // Copy output from device to host std::vector hcsc_row_ind(nnz); @@ -442,21 +441,21 @@ void testing_csr2csc_ex2(Arguments argus) // Warm up for(int iter = 0; iter < number_cold_calls; ++iter) { - CHECK_HIPSPARSE_ERROR(hipsparseCsr2cscEx2(handle, - m, - n, - nnz, - dcsr_val, - dcsr_row_ptr, - dcsr_col_ind, - dcsc_val, - dcsc_col_ptr, - dcsc_row_ind, - dataType, - action, - idx_base, - alg, - dbuffer)); + CHECK_HIPSPARSE_ERROR(testing::hipsparseCsr2cscEx2(handle, + m, + n, + nnz, + dcsr_val, + dcsr_row_ptr, + dcsr_col_ind, + dcsc_val, + dcsc_col_ptr, + dcsc_row_ind, + dataType, + action, + idx_base, + alg, + dbuffer)); } double gpu_time_used = get_time_us(); @@ -464,21 +463,21 @@ void testing_csr2csc_ex2(Arguments argus) // Performance run for(int iter = 0; iter < number_hot_calls; ++iter) { - CHECK_HIPSPARSE_ERROR(hipsparseCsr2cscEx2(handle, - m, - n, - nnz, - dcsr_val, - dcsr_row_ptr, - dcsr_col_ind, - dcsc_val, - dcsc_col_ptr, - dcsc_row_ind, - dataType, - action, - idx_base, - alg, - dbuffer)); + CHECK_HIPSPARSE_ERROR(testing::hipsparseCsr2cscEx2(handle, + m, + n, + nnz, + dcsr_val, + dcsr_row_ptr, + dcsr_col_ind, + dcsc_val, + dcsc_col_ptr, + dcsc_row_ind, + dataType, + action, + idx_base, + alg, + dbuffer)); } gpu_time_used = (get_time_us() - gpu_time_used) / number_hot_calls; diff --git a/projects/hipsparse/clients/include/testing_csr2gebsr.hpp b/projects/hipsparse/clients/include/testing_csr2gebsr.hpp index 1cbbe75a9607..7491fbf58f0c 100644 --- a/projects/hipsparse/clients/include/testing_csr2gebsr.hpp +++ b/projects/hipsparse/clients/include/testing_csr2gebsr.hpp @@ -30,6 +30,7 @@ #include "gbyte.hpp" #include "hipsparse.hpp" #include "hipsparse_arguments.hpp" +#include "hipsparse_graph.hpp" #include "hipsparse_test_unique_ptr.hpp" #include "unit.hpp" #include "utility.hpp" @@ -46,9 +47,8 @@ void testing_csr2gebsr_bad_arg(const Arguments& argus) { #if(!defined(CUDART_VERSION)) - hipsparseStatus_t status; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; + hipsparseStatus_t status; + hipsparseLocalHandle_t handle; hipsparseIndexBase_t csr_idx_base = HIPSPARSE_INDEX_BASE_ZERO; hipsparseIndexBase_t bsr_idx_base = HIPSPARSE_INDEX_BASE_ZERO; @@ -433,12 +433,11 @@ void testing_csr2gebsr(Arguments argus) int col_block_dim = argus.col_block_dimA; std::string filename = argus.filename; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; - std::unique_ptr unique_ptr_csr_descr(new descr_struct); - hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; - std::unique_ptr unique_ptr_bsr_descr(new descr_struct); - hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; + hipsparseLocalHandle_t handle(argus); + std::unique_ptr unique_ptr_csr_descr(new descr_struct); + hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; + std::unique_ptr unique_ptr_bsr_descr(new descr_struct); + hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; hipsparseSetMatIndexBase(csr_descr, csr_idx_base); hipsparseSetMatIndexBase(bsr_descr, bsr_idx_base); diff --git a/projects/hipsparse/clients/include/testing_gebsr2csr.hpp b/projects/hipsparse/clients/include/testing_gebsr2csr.hpp index 79e13a4b2eaf..491a3a9c986d 100644 --- a/projects/hipsparse/clients/include/testing_gebsr2csr.hpp +++ b/projects/hipsparse/clients/include/testing_gebsr2csr.hpp @@ -30,6 +30,7 @@ #include "gbyte.hpp" #include "hipsparse.hpp" #include "hipsparse_arguments.hpp" +#include "hipsparse_graph.hpp" #include "hipsparse_test_unique_ptr.hpp" #include "unit.hpp" #include "utility.hpp" @@ -54,12 +55,11 @@ void testing_gebsr2csr_bad_arg(const Arguments& argus) hipsparseIndexBase_t bsr_idx_base = HIPSPARSE_INDEX_BASE_ZERO; hipsparseDirection_t dir = HIPSPARSE_DIRECTION_ROW; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; - std::unique_ptr unique_ptr_csr_descr(new descr_struct); - hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; - std::unique_ptr unique_ptr_bsr_descr(new descr_struct); - hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; + hipsparseLocalHandle_t handle; + std::unique_ptr unique_ptr_csr_descr(new descr_struct); + hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; + std::unique_ptr unique_ptr_bsr_descr(new descr_struct); + hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; hipsparseSetMatIndexBase(csr_descr, csr_idx_base); hipsparseSetMatIndexBase(bsr_descr, bsr_idx_base); @@ -296,12 +296,11 @@ void testing_gebsr2csr(Arguments argus) hipsparseDirection_t dir = argus.dirA; std::string filename = argus.filename; - std::unique_ptr unique_ptr_handle(new handle_struct); - hipsparseHandle_t handle = unique_ptr_handle->handle; - std::unique_ptr unique_ptr_csr_descr(new descr_struct); - hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; - std::unique_ptr unique_ptr_bsr_descr(new descr_struct); - hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; + hipsparseLocalHandle_t handle(argus); + std::unique_ptr unique_ptr_csr_descr(new descr_struct); + hipsparseMatDescr_t csr_descr = unique_ptr_csr_descr->descr; + std::unique_ptr unique_ptr_bsr_descr(new descr_struct); + hipsparseMatDescr_t bsr_descr = unique_ptr_bsr_descr->descr; hipsparseSetMatIndexBase(csr_descr, csr_idx_base); hipsparseSetMatIndexBase(bsr_descr, bsr_idx_base); diff --git a/projects/hipsparse/clients/tests/rocm/test_bsr2csr.yaml b/projects/hipsparse/clients/tests/rocm/test_bsr2csr.yaml index e089460ab567..1d35d68ce115 100644 --- a/projects/hipsparse/clients/tests/rocm/test_bsr2csr.yaml +++ b/projects/hipsparse/clients/tests/rocm/test_bsr2csr.yaml @@ -73,3 +73,15 @@ Tests: rma10, scircuit, sme3Dc] + +- name: bsr2csr_graph_test + category: pre_checkin + function: bsr2csr + precision: *single_double_precisions_complex_real + M: [1472] + N: [1976] + block_dim: [4] + baseA: [HIPSPARSE_INDEX_BASE_ZERO] + baseB: [HIPSPARSE_INDEX_BASE_ZERO] + dirA: [HIPSPARSE_DIRECTION_ROW] + graph_test: true diff --git a/projects/hipsparse/clients/tests/rocm/test_coo2csr.yaml b/projects/hipsparse/clients/tests/rocm/test_coo2csr.yaml index c7f156d79ffe..69383d7b0d98 100644 --- a/projects/hipsparse/clients/tests/rocm/test_coo2csr.yaml +++ b/projects/hipsparse/clients/tests/rocm/test_coo2csr.yaml @@ -65,3 +65,12 @@ Tests: webbase-1M, shipsec1] +- name: coo2csr_graph_test + category: pre_checkin + function: coo2csr + precision: *single_double_precisions_complex + M: [1120] + N: [1987] + baseA: [HIPSPARSE_INDEX_BASE_ZERO] + graph_test: true + diff --git a/projects/hipsparse/clients/tests/rocm/test_csr2coo.yaml b/projects/hipsparse/clients/tests/rocm/test_csr2coo.yaml index 07f0eb4857e8..736ab171f2b7 100644 --- a/projects/hipsparse/clients/tests/rocm/test_csr2coo.yaml +++ b/projects/hipsparse/clients/tests/rocm/test_csr2coo.yaml @@ -65,3 +65,12 @@ Tests: webbase-1M, shipsec1] +- name: csr2coo_graph_test + category: pre_checkin + function: csr2coo + precision: *single_precision + M: [1327] + N: [325] + baseA: [HIPSPARSE_INDEX_BASE_ZERO] + graph_test: true + diff --git a/projects/hipsparse/clients/tests/rocm/test_csr2csc_ex2.yaml b/projects/hipsparse/clients/tests/rocm/test_csr2csc_ex2.yaml index 1129d64c0d48..653af0e6210b 100644 --- a/projects/hipsparse/clients/tests/rocm/test_csr2csc_ex2.yaml +++ b/projects/hipsparse/clients/tests/rocm/test_csr2csc_ex2.yaml @@ -71,3 +71,14 @@ Tests: webbase-1M, shipsec1] +- name: csr2csc_ex2_graph_test + category: pre_checkin + function: csr2csc_ex2 + precision: *single_double_precisions_complex_real + M: [1243] + N: [2876] + action: [HIPSPARSE_ACTION_NUMERIC] + baseA: [HIPSPARSE_INDEX_BASE_ZERO] + csr2csc_alg: [HIPSPARSE_CSR2CSC_ALG1] + graph_test: true + diff --git a/projects/hipsparse/clients/tests/rocm/test_csr2gebsr.yaml b/projects/hipsparse/clients/tests/rocm/test_csr2gebsr.yaml index b4bf7cfa7a02..cce6cc430e30 100644 --- a/projects/hipsparse/clients/tests/rocm/test_csr2gebsr.yaml +++ b/projects/hipsparse/clients/tests/rocm/test_csr2gebsr.yaml @@ -75,3 +75,16 @@ Tests: mac_econ_fwd500, scircuit, bmwcra_1] + +- name: csr2gebsr_graph_test + category: pre_checkin + function: csr2gebsr + precision: *single_double_precisions_complex_real + M: [1309] + N: [1276] + row_block_dimA: [3] + col_block_dimA: [3] + baseA: [HIPSPARSE_INDEX_BASE_ZERO] + baseB: [HIPSPARSE_INDEX_BASE_ZERO] + dirA: [HIPSPARSE_DIRECTION_ROW] + graph_test: true diff --git a/projects/hipsparse/clients/tests/rocm/test_gebsr2csr.yaml b/projects/hipsparse/clients/tests/rocm/test_gebsr2csr.yaml index dc2fcc045f71..ff8534fae38c 100644 --- a/projects/hipsparse/clients/tests/rocm/test_gebsr2csr.yaml +++ b/projects/hipsparse/clients/tests/rocm/test_gebsr2csr.yaml @@ -61,3 +61,16 @@ Tests: nos6, nos7] +- name: gebsr2csr_graph_test + category: pre_checkin + function: gebsr2csr + precision: *single_double_precisions_complex_real + M: [1572] + N: [1423] + row_block_dimA: [4] + col_block_dimA: [4] + baseA: [HIPSPARSE_INDEX_BASE_ZERO] + baseB: [HIPSPARSE_INDEX_BASE_ZERO] + dirA: [HIPSPARSE_DIRECTION_ROW] + graph_test: true + diff --git a/projects/hipsparse/clients/tests/test_bsr2csr.cpp b/projects/hipsparse/clients/tests/test_bsr2csr.cpp index 1eaf5311a968..74995274b4df 100644 --- a/projects/hipsparse/clients/tests/test_bsr2csr.cpp +++ b/projects/hipsparse/clients/tests/test_bsr2csr.cpp @@ -24,4 +24,12 @@ #include "test.hpp" #include "testing_bsr2csr.hpp" -TEST_ROUTINE(bsr2csr, conversion, arg.M, arg.N, arg.block_dim, arg.baseA, arg.baseB, arg.dirA); +TEST_ROUTINE(bsr2csr, + conversion, + arg.M, + arg.N, + arg.block_dim, + arg.baseA, + arg.baseB, + arg.dirA, + arg.graph_test); diff --git a/projects/hipsparse/clients/tests/test_coo2csr.cpp b/projects/hipsparse/clients/tests/test_coo2csr.cpp index 8f7fe13e4d3e..f920909e3bf7 100644 --- a/projects/hipsparse/clients/tests/test_coo2csr.cpp +++ b/projects/hipsparse/clients/tests/test_coo2csr.cpp @@ -24,4 +24,4 @@ #include "test.hpp" #include "testing_coo2csr.hpp" -TEST_ROUTINE(coo2csr, conversion, arg.M, arg.N, arg.baseA); +TEST_ROUTINE(coo2csr, conversion, arg.M, arg.N, arg.baseA, arg.graph_test); diff --git a/projects/hipsparse/clients/tests/test_csr2coo.cpp b/projects/hipsparse/clients/tests/test_csr2coo.cpp index 1a5ba9086cb7..340e68c12d55 100644 --- a/projects/hipsparse/clients/tests/test_csr2coo.cpp +++ b/projects/hipsparse/clients/tests/test_csr2coo.cpp @@ -24,4 +24,4 @@ #include "test.hpp" #include "testing_csr2coo.hpp" -TEST_ROUTINE(csr2coo, conversion, arg.M, arg.N, arg.baseA); +TEST_ROUTINE(csr2coo, conversion, arg.M, arg.N, arg.baseA, arg.graph_test); diff --git a/projects/hipsparse/clients/tests/test_csr2csc_ex2.cpp b/projects/hipsparse/clients/tests/test_csr2csc_ex2.cpp index 72aaeafad79c..edb48adaa949 100644 --- a/projects/hipsparse/clients/tests/test_csr2csc_ex2.cpp +++ b/projects/hipsparse/clients/tests/test_csr2csc_ex2.cpp @@ -24,4 +24,5 @@ #include "test.hpp" #include "testing_csr2csc_ex2.hpp" -TEST_ROUTINE(csr2csc_ex2, conversion, arg.M, arg.N, arg.action, arg.baseA, arg.csr2csc_alg); +TEST_ROUTINE( + csr2csc_ex2, conversion, arg.M, arg.N, arg.action, arg.baseA, arg.csr2csc_alg, arg.graph_test); diff --git a/projects/hipsparse/clients/tests/test_csr2gebsr.cpp b/projects/hipsparse/clients/tests/test_csr2gebsr.cpp index e2dd51e9896d..973319c7f414 100644 --- a/projects/hipsparse/clients/tests/test_csr2gebsr.cpp +++ b/projects/hipsparse/clients/tests/test_csr2gebsr.cpp @@ -32,4 +32,5 @@ TEST_ROUTINE(csr2gebsr, arg.col_block_dimA, arg.baseA, arg.baseB, - arg.dirA); + arg.dirA, + arg.graph_test); diff --git a/projects/hipsparse/clients/tests/test_gebsr2csr.cpp b/projects/hipsparse/clients/tests/test_gebsr2csr.cpp index 8f7eeacbd217..266b8fd0f1a8 100644 --- a/projects/hipsparse/clients/tests/test_gebsr2csr.cpp +++ b/projects/hipsparse/clients/tests/test_gebsr2csr.cpp @@ -32,4 +32,5 @@ TEST_ROUTINE(gebsr2csr, arg.col_block_dimA, arg.baseA, arg.baseB, - arg.dirA); + arg.dirA, + arg.graph_test);