Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Crash with thrust::min_element on thrust::device_vector (CUDA Thrust)

Tags:

cuda

thrust

The following CUDA Thrust program crashes:

#include <thrust/device_vector.h>
#include <thrust/extrema.h>

int main(void)
{
  thrust::device_vector<int> vec;
  for (int i(0); i < 1000; ++i) {
    vec.push_back(i);
  }

  thrust::min_element(vec.begin(), vec.end());
}

The exception I get is:

Unhandled exception at 0x7650b9bc in test_thrust.exe: Microsoft C++
exception:thrust::system::system_error at memory location 0x0017f178..

In `checked_cudaMemcpy()` in `trivial_copy.inl`.

If I add #include <thrust/sort.h> and replace min_element with sort, it does not crash.

I'm using CUDA 4.1 on Windows 7 64-bit, compute_20,sm_20 (Fermi), Debug build. In a Release build, I am not getting the crash and min_element finds the correct element.

Am I doing something wrong, or is there a bug in Thrust?

like image 922
Roger Dahl Avatar asked Mar 23 '26 10:03

Roger Dahl


1 Answers

I can reproduce the error using debug mode targeting Compute Capability 2.0 (i.e nvcc -G0 -arch=sm_20). The bug does not reproduce in release mode or when targeting Compute Capability 1.x devices, which generally suggests a code-generation problem instead of a bug in the library. Wherever the fault lies, I'd encourage you to submit a bug report so this issue gets the attention it deserves. In the meantime, I'd suggest compiling in release mode, which is more rigorously tested.

like image 71
wnbell Avatar answered Mar 25 '26 01:03

wnbell



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!