CUDA-9.2尝试调整推力::: complex <float>的device_vector大小时,推力编译失败?

时间:2019-01-10 01:54:19

标签: cuda thrust

简单示例,位于名为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)开始:错误:没有重载函数“ thrust :: complex :: real [with T = float]的实例”匹配参数列表。但是,我可以确认推力/complex.h头文件包含模板化的real()方法,该方法以__host____device__开头。

使用host_vector而不是device_vector,代码将编译并以预期的结果运行。从CUDA-9.2开始,这仅仅是不受支持的功能吗?

1 个答案:

答案 0 :(得分:0)

听起来这个问题在CUDA-9中是可重现的,但在CUDA-10中已解决。我会升级