missing argument in bb_segsort_run
Hi,
I am trying to build this software with GPU support:
make gpu_release
But I am getting these errors:
nvcc -arch=native -lineinfo --expt-relaxed-constexpr --extended-lambda -DGPU_MODE -std=c++14 -Xcompiler="-Wall -Wextra" -O3 -c src/gpu_hashmap.cu -o build_gpu_release/gpu_hashmap.o src/gpu_hashmap.cu(428): error: no instance of function template "bb_segsort_run" matches the argument list argument types are: (uint64_t *, uint64_t *, warpcore::index_t *, warpcore::index_t *, int, mc::loclist_size_t, int *, int *, cudaStream_t) detected during instantiation of "void mc::gpu_hashmap<Key, ValueT>::build_hash_table::retrieval_buffer::sort_values(int, mc::gpu_hashmap<Key, ValueT>::bucket_size_type) [with Key=mc::database::feature, ValueT=mc::database::location]" (490): here
I can see that the function contains a 10th event argument in bb_segsort_keys.cuh:
void bb_segsort_run(
K *keys_d, K *keysB_d,
const Offset *d_seg_begins, const Offset *d_seg_ends, const int num_segs,
int *d_bin_segs_id, int *h_bin_counter, int *d_bin_counter,
cudaStream_t stream, cudaEvent_t event)
but when it is called in src/gpu_hashmap.cu, it doesn't have the event argument:
428 bb_segsort_run(
429 reinterpret_cast<location_type_equivalent *>(d_values_),
430 reinterpret_cast<location_type_equivalent *>(d_valuesTmp_),
431 d_offsets_, d_offsets_+1, numSegs, maxLocationsPerFeature,
432 d_binnedSegIds_, d_segBinCounters_,
433 stream_);
/Pedro
You need to run git submodule update --init --recursive after cloning the github repository. This will pull in the correct versions of all external dependencies. See: GPU Version.
I just tried buiding it with CUDA 12.9.0 and it worked.
Note: CUDA 13 is not supported yet, as this requires a few refactorings and a switch to C++17.