Сбой с толчком :: min_element на тяге :: device_vector (CUDA Thrust) - PullRequest
2 голосов
/ 30 января 2012

Сбой следующей программы CUDA Thrust:

#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());
}

Исключение, которое я получаю:

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`.

Если добавить #include <thrust/sort.h> и заменить min_element на sort,это не дает сбоя.

Я использую CUDA 4.1 на 64-битной Windows 7, compute_20, sm_20 (Fermi), Debug build.В сборке Release я не получаю сбой, и min_element находит правильный элемент.

Я что-то не так делаю или в Thrust есть ошибка?

1 Ответ

5 голосов
/ 31 января 2012

Я могу воспроизвести ошибку, используя режим отладки с настройкой Compute Capability 2.0 (т. Е. nvcc -G0 -arch=sm_20).Ошибка не воспроизводится в режиме выпуска или при настройке на устройства Compute Capability 1.x, что обычно предполагает проблему генерации кода вместо ошибки в библиотеке.Где бы ни лежала ошибка, я бы посоветовал вам отправить сообщение об ошибке , чтобы эта проблема привлекла внимание, которого она заслуживаетА пока я бы предложил компилировать в режиме релиза, который более тщательно протестирован.

...