metacache icon indicating copy to clipboard operation
metacache copied to clipboard

missing argument in bb_segsort_run

Open pojeda opened this issue 3 months ago • 1 comments

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

pojeda avatar Sep 10 '25 11:09 pojeda

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.

muellan avatar Sep 10 '25 12:09 muellan