Skip to content

Commit

Permalink
Merge pull request #51 from ntrost57/develop
Browse files Browse the repository at this point in the history
major update
  • Loading branch information
ntrost57 authored Sep 18, 2018
2 parents c49c556 + 967c38d commit 7dd6624
Show file tree
Hide file tree
Showing 53 changed files with 6,317 additions and 1,285 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ list(APPEND CMAKE_MODULE_PATH
include(cmake/SetToolchain.cmake)

# rocSPARSE project
project(rocsparse VERSION 0.1.2.0 LANGUAGES CXX)
project(rocsparse VERSION 0.1.3.0 LANGUAGES CXX)
set(rocsparse_SOVERSION 0)

# Set a default build type if none was specified
Expand Down Expand Up @@ -50,7 +50,7 @@ option(BUILD_VERBOSE "Output additional build information" OFF)
include(cmake/Dependencies.cmake)

# AMD targets
set(AMDGPU_TARGETS gfx803;gfx900 CACHE STRING "List of specific machine types for library to target")
set(AMDGPU_TARGETS gfx803;gfx900;gfx906 CACHE STRING "List of specific machine types for library to target")

# rocSPARSE library
add_subdirectory(library)
Expand Down
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ rocm_ubuntu:
node( 'docker && rocm && dkms')
{
def hcc_docker_args = new docker_data(
from_image:'rocm/dev-ubuntu-16.04:1.7.1',
from_image:'rocm/dev-ubuntu-16.04:1.9.0',
build_docker_file:'dockerfile-build-ubuntu',
install_docker_file:'dockerfile-install-ubuntu',
docker_run_args:'--device=/dev/kfd --device=/dev/dri --group-add=video',
Expand Down
32 changes: 31 additions & 1 deletion clients/benchmarks/client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,16 @@
// Level2
#include "testing_coomv.hpp"
#include "testing_csrmv.hpp"
#include "testing_csrsv.hpp"
#include "testing_ellmv.hpp"
#include "testing_hybmv.hpp"

// Level3
#include "testing_csrmm.hpp"

// Preconditioner
#include "testing_csrilu0.hpp"

// Conversion
#include "testing_csr2coo.hpp"
#include "testing_csr2csc.hpp"
Expand Down Expand Up @@ -85,7 +92,9 @@ int main(int argc, char* argv[])
po::value<std::string>(&function)->default_value("axpyi"),
"SPARSE function to test. Options:\n"
" Level1: axpyi, doti, gthr, gthrz, roti, sctr\n"
" Level2: coomv, csrmv, ellmv, hybmv\n"
" Level2: coomv, csrmv, csrsv, ellmv, hybmv\n"
" Level3: csrmm\n"
" Preconditioner: csrilu0\n"
" Conversion: csr2coo, csr2csc, csr2ell,\n"
" csr2hyb, coo2csr, ell2csr\n"
" Sorting: csrsort, coosort\n"
Expand Down Expand Up @@ -201,6 +210,13 @@ int main(int argc, char* argv[])
else if(precision == 'd')
testing_csrmv<double>(argus);
}
else if(function == "csrsv")
{
if(precision == 's')
testing_csrsv<float>(argus);
else if(precision == 'd')
testing_csrsv<double>(argus);
}
else if(function == "ellmv")
{
if(precision == 's')
Expand All @@ -215,6 +231,20 @@ int main(int argc, char* argv[])
else if(precision == 'd')
testing_hybmv<double>(argus);
}
else if(function == "csrmm")
{
if(precision == 's')
testing_csrmm<float>(argus);
else if(precision == 'd')
testing_csrmm<double>(argus);
}
else if(function == "csrilu0")
{
if(precision == 's')
testing_csrilu0<float>(argus);
else if(precision == 'd')
testing_csrilu0<double>(argus);
}
else if(function == "csr2coo")
{
testing_csr2coo(argus);
Expand Down
13 changes: 13 additions & 0 deletions clients/common/arg_check.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,19 @@ void verify_rocsparse_status_invalid_value(rocsparse_status status, const char*
#endif
}

void verify_rocsparse_status_zero_pivot(rocsparse_status status, const char* message)
{
#ifdef GOOGLE_TEST
ASSERT_EQ(status, rocsparse_status_zero_pivot);
#else
if(status != rocsparse_status_zero_pivot)
{
std::cerr << "rocSPARSE TEST ERROR: status != rocsparse_status_zero_pivot, ";
std::cerr << message << std::endl;
}
#endif
}

void verify_rocsparse_status_invalid_handle(rocsparse_status status)
{
#ifdef GOOGLE_TEST
Expand Down
266 changes: 266 additions & 0 deletions clients/common/rocsparse_template_specialization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,158 @@ rocsparse_status rocsparse_csrmv(rocsparse_handle handle,
y);
}

template <>
rocsparse_status rocsparse_csrsv_buffer_size(rocsparse_handle handle,
rocsparse_operation trans,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const float* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
size_t* buffer_size)
{
return rocsparse_scsrsv_buffer_size(
handle, trans, m, nnz, descr, csr_val, csr_row_ptr, csr_col_ind, info, buffer_size);
}

template <>
rocsparse_status rocsparse_csrsv_buffer_size(rocsparse_handle handle,
rocsparse_operation trans,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const double* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
size_t* buffer_size)
{
return rocsparse_dcsrsv_buffer_size(
handle, trans, m, nnz, descr, csr_val, csr_row_ptr, csr_col_ind, info, buffer_size);
}

template <>
rocsparse_status rocsparse_csrsv_analysis(rocsparse_handle handle,
rocsparse_operation trans,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const float* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
rocsparse_analysis_policy analysis,
rocsparse_solve_policy solve,
void* temp_buffer)
{
return rocsparse_scsrsv_analysis(handle,
trans,
m,
nnz,
descr,
csr_val,
csr_row_ptr,
csr_col_ind,
info,
analysis,
solve,
temp_buffer);
}

template <>
rocsparse_status rocsparse_csrsv_analysis(rocsparse_handle handle,
rocsparse_operation trans,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const double* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
rocsparse_analysis_policy analysis,
rocsparse_solve_policy solve,
void* temp_buffer)
{
return rocsparse_dcsrsv_analysis(handle,
trans,
m,
nnz,
descr,
csr_val,
csr_row_ptr,
csr_col_ind,
info,
analysis,
solve,
temp_buffer);
}

template <>
rocsparse_status rocsparse_csrsv_solve(rocsparse_handle handle,
rocsparse_operation trans,
rocsparse_int m,
rocsparse_int nnz,
const float* alpha,
const rocsparse_mat_descr descr,
const float* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
const float* x,
float* y,
rocsparse_solve_policy policy,
void* temp_buffer)
{
return rocsparse_scsrsv_solve(handle,
trans,
m,
nnz,
alpha,
descr,
csr_val,
csr_row_ptr,
csr_col_ind,
info,
x,
y,
policy,
temp_buffer);
}

template <>
rocsparse_status rocsparse_csrsv_solve(rocsparse_handle handle,
rocsparse_operation trans,
rocsparse_int m,
rocsparse_int nnz,
const double* alpha,
const rocsparse_mat_descr descr,
const double* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
const double* x,
double* y,
rocsparse_solve_policy policy,
void* temp_buffer)
{
return rocsparse_dcsrsv_solve(handle,
trans,
m,
nnz,
alpha,
descr,
csr_val,
csr_row_ptr,
csr_col_ind,
info,
x,
y,
policy,
temp_buffer);
}

template <>
rocsparse_status rocsparse_ellmv(rocsparse_handle handle,
rocsparse_operation trans,
Expand Down Expand Up @@ -388,6 +540,120 @@ rocsparse_status rocsparse_csrmm(rocsparse_handle handle,
ldc);
}

template <>
rocsparse_status rocsparse_csrilu0_buffer_size(rocsparse_handle handle,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const float* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
size_t* buffer_size)
{
return rocsparse_scsrilu0_buffer_size(
handle, m, nnz, descr, csr_val, csr_row_ptr, csr_col_ind, info, buffer_size);
}

template <>
rocsparse_status rocsparse_csrilu0_buffer_size(rocsparse_handle handle,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const double* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
size_t* buffer_size)
{
return rocsparse_dcsrilu0_buffer_size(
handle, m, nnz, descr, csr_val, csr_row_ptr, csr_col_ind, info, buffer_size);
}

template <>
rocsparse_status rocsparse_csrilu0_analysis(rocsparse_handle handle,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const float* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
rocsparse_analysis_policy analysis,
rocsparse_solve_policy solve,
void* temp_buffer)
{
return rocsparse_scsrilu0_analysis(handle,
m,
nnz,
descr,
csr_val,
csr_row_ptr,
csr_col_ind,
info,
analysis,
solve,
temp_buffer);
}

template <>
rocsparse_status rocsparse_csrilu0_analysis(rocsparse_handle handle,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
const double* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
rocsparse_analysis_policy analysis,
rocsparse_solve_policy solve,
void* temp_buffer)
{
return rocsparse_dcsrilu0_analysis(handle,
m,
nnz,
descr,
csr_val,
csr_row_ptr,
csr_col_ind,
info,
analysis,
solve,
temp_buffer);
}

template <>
rocsparse_status rocsparse_csrilu0(rocsparse_handle handle,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
float* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
rocsparse_solve_policy policy,
void* temp_buffer)
{
return rocsparse_scsrilu0(
handle, m, nnz, descr, csr_val, csr_row_ptr, csr_col_ind, info, policy, temp_buffer);
}

template <>
rocsparse_status rocsparse_csrilu0(rocsparse_handle handle,
rocsparse_int m,
rocsparse_int nnz,
const rocsparse_mat_descr descr,
double* csr_val,
const rocsparse_int* csr_row_ptr,
const rocsparse_int* csr_col_ind,
rocsparse_mat_info info,
rocsparse_solve_policy policy,
void* temp_buffer)
{
return rocsparse_dcsrilu0(
handle, m, nnz, descr, csr_val, csr_row_ptr, csr_col_ind, info, policy, temp_buffer);
}

template <>
rocsparse_status rocsparse_csr2csc(rocsparse_handle handle,
rocsparse_int m,
Expand Down
Loading

0 comments on commit 7dd6624

Please sign in to comment.