Xtra-Computing / thundergbm

ThunderGBM: Fast GBDTs and Random Forests on GPUs
Apache License 2.0
692 stars 87 forks source link

Building from source on ubuntu18.04 with CUDA11.0 #48

Closed sensharma closed 3 years ago

sensharma commented 3 years ago

Hi, I am trying to build thundergbm on ubuntu18.04 with CUDA 11.0 using the instructions here. While building the binary, I get a string of warnings about C++14 (from CUB and THRUST), but the build proceeds until it hits this error:

thundergbm/src/thundergbm/sparse_columns.cu(52): error: identifier "cusparseScsr2csc" is undefined 1 error detected in the compilation of "thundergbm/src/thundergbm/sparse_columns.cu". CMake Error at thundergbm_generated_sparse_columns.cu.o.Release.cmake:279 (message): Error generating file thundergbm/build/src/thundergbm/CMakeFiles/thundergbm.dir//./thundergbm_generated_sparse_columns.cu.o src/thundergbm/CMakeFiles/thundergbm.dir/build.make:9146: recipe for target 'src/thundergbm/CMakeFiles/thundergbm.dir/thundergbm_generated_sparse_columns.cu.o' failed make[2]: *** [src/thundergbm/CMakeFiles/thundergbm.dir/thundergbm_generated_sparse_columns.cu.o] Error 1 CMakeFiles/Makefile2:126: recipe for target 'src/thundergbm/CMakeFiles/thundergbm.dir/all' failed make[1]: *** [src/thundergbm/CMakeFiles/thundergbm.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

The line that is seemingly causing the problem (sparse_columns.cu(52)) is

usparseScsr2csc(handle, dataset.n_instances(), n_column, nnz, val.device_data(), row_ptr.device_data(), col_idx.device_data(), csc_val.device_data(), csc_row_idx.device_data(), csc_col_ptr.device_data(), CUSPARSE_ACTION_NUMERIC, CUSPARSE_INDEX_BASE_ZERO);

Any suggestions on how to get around this?

Thanks.

zeyiwen commented 3 years ago

Thanks. This is an issue on CUDA 11 support, similar to a solved issue in another library, ThunderSVM, of our group.

We will work on supporting CUDA 11, as soon as we can--currently working on paper deadlines :-(

sensharma commented 3 years ago

Thanks, I completely understand. Interesting you mention ThunderSVM, because I successfully built it with Cuda 11 before getting stuck in ThunderGBM :). Any rough ETA?

zeyiwen commented 3 years ago

ThunderSVM has used the latest matrix operation APIs provided by CUDA 11, while ThunderGBM hasn't.

Kurt-Liuhf commented 3 years ago

Hi @sensharma, a new branch is created to support CUDA 11. You can download it from this link. We will soon merge it to the master branch. Thank you.

mahi045 commented 3 years ago

Hi, I am getting this error after executing make -j:

/thundergbm/src/thundergbm/hist_cut.cu(142): error: a reference of type "SyncArray<float> &" (not const-qualified) cannot be initialized with a value of type "SyncArray<float_type>"

I am using the code of the support_cuda11 branch (as my CUDA version is 11).

Kurt-Liuhf commented 3 years ago

Issues have been fixed. So, I would like to close it. Thanks.