Umpire
Umpire copied to clipboard
Compilation broken with CUDA 13
When compiling with CUDA 13, I get the following error
Umpire/src/umpire/op/CudaAdviseOperation.cpp:24:66: error: could not convert 'device' from 'int' to 'cudaMemLocation'
24 | cudaError_t error = ::cudaMemAdvise(src_ptr, length, m_advice, device);
| ^~~~~~
This is due to a change in the CUDA API (to provide more information on the CPU NUMA location if I understand correctly).
Something in the following form would be needed:
#if CUDART_VERSION >= 13'00'0
cudaError_t error = ::cudaMemAdvise(src_ptr, length, m_advice, {.type = cudaMemLocationTypeDevice, .id = device});
#else
cudaError_t error = ::cudaMemAdvise(src_ptr, length, m_advice, device);
#endif
(though I am not sure about the .type argument might not be correct in this example).
seems compilation passed on my machine now with CUDA 13. (head@7d23b8b9314089f45430f817cba2a4341d2a3819)
Fixed in #1029