CUDA-9.2 Ошибка компиляции тяги при попытке изменить размер_устройства_устройства thrust :: complex <float>? - PullRequest
0 голосов
/ 10 января 2019

Простой пример, в файле с названием test.cu:

#include <thrust/complex.h>
#include <thrust/device_vector.h>
#include <iostream>
int main(void) {
    thrust::device_vector<thrust::complex<float> > V1(10);
    V1.resize(20);
    printf("%d\n", V1.size());
}

Попытка построить вышеупомянутое с помощью nvcc не удалась, с кучей ошибок тяги, начиная с complex.inl (187): error: нет экземпляра перегруженной функции "thrust :: complex :: real [with T = float]" соответствует списку аргументов Однако я могу подтвердить, что заголовочный файл thrust / complex.h содержит шаблонный метод real (), которому предшествуют __host__, а также __device__.

Используя host_vector вместо device_vector, код компилируется и выполняется с ожидаемым результатом. Это просто неподдерживаемая функция в CUDA-9.2?

1 Ответ

0 голосов
/ 11 января 2019

Похоже, что эта проблема воспроизводима в CUDA-9, но решается в CUDA-10. Я просто обновлю

...