Alien-XGBoost
view release on metacpan or search on metacpan
xgboost/cub/experimental/spmv_compare.cu view on Meta::CPAN
template <
typename ValueT,
typename OffsetT>
void RunTests(
bool rcm_relabel,
ValueT alpha,
ValueT beta,
const std::string& mtx_filename,
int grid2d,
int grid3d,
int wheel,
int dense,
int timing_iterations,
CommandLineArgs& args)
{
// Initialize matrix in COO form
CooMatrix<ValueT, OffsetT> coo_matrix;
if (!mtx_filename.empty())
{
// Parse matrix market file
printf("%s, ", mtx_filename.c_str()); fflush(stdout);
coo_matrix.InitMarket(mtx_filename, 1.0, !g_quiet);
if ((coo_matrix.num_rows == 1) || (coo_matrix.num_cols == 1) || (coo_matrix.num_nonzeros == 1))
{
if (!g_quiet) printf("Trivial dataset\n");
exit(0);
}
}
else if (grid2d > 0)
{
// Generate 2D lattice
printf("grid2d_%d, ", grid2d); fflush(stdout);
coo_matrix.InitGrid2d(grid2d, false);
}
else if (grid3d > 0)
{
// Generate 3D lattice
printf("grid3d_%d, ", grid3d); fflush(stdout);
coo_matrix.InitGrid3d(grid3d, false);
}
else if (wheel > 0)
{
// Generate wheel graph
printf("wheel_%d, ", grid2d); fflush(stdout);
coo_matrix.InitWheel(wheel);
}
else if (dense > 0)
{
// Generate dense graph
OffsetT size = 1 << 24; // 16M nnz
args.GetCmdLineArgument("size", size);
OffsetT rows = size / dense;
printf("dense_%d_x_%d, ", rows, dense); fflush(stdout);
coo_matrix.InitDense(rows, dense);
}
else
{
fprintf(stderr, "No graph type specified.\n");
exit(1);
}
RunTest(
rcm_relabel,
alpha,
beta,
coo_matrix,
timing_iterations,
args);
}
/**
* Main
*/
int main(int argc, char **argv)
{
// Initialize command line
CommandLineArgs args(argc, argv);
if (args.CheckCmdLineFlag("help"))
{
printf(
"%s "
"[--csrmv | --hybmv | --bsrmv ] "
"[--device=<device-id>] "
"[--quiet] "
"[--v] "
"[--i=<timing iterations>] "
"[--fp64] "
"[--rcm] "
"[--alpha=<alpha scalar (default: 1.0)>] "
"[--beta=<beta scalar (default: 0.0)>] "
"\n\t"
"--mtx=<matrix market file> "
"\n\t"
"--dense=<cols>"
"\n\t"
"--grid2d=<width>"
"\n\t"
"--grid3d=<width>"
"\n\t"
"--wheel=<spokes>"
"\n", argv[0]);
exit(0);
}
bool fp64;
bool rcm_relabel;
std::string mtx_filename;
int grid2d = -1;
int grid3d = -1;
int wheel = -1;
int dense = -1;
int timing_iterations = -1;
float alpha = 1.0;
float beta = 0.0;
g_verbose = args.CheckCmdLineFlag("v");
( run in 1.022 second using v1.01-cache-2.11-cpan-e1769b4cff6 )