DTK 24.04.3的CUDA编译器不支持thrust库的调用吗? 卡是K100 报了如下错误
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include "thrust/reduce.h"
#include "thrust/device_vector.h"
#include <iostream>
__global__ void array_init(int N, double* a) {
int id = threadIdx.x + blockDim.x * blockIdx.x;
int gridStride = blockDim.x * gridDim.x;
for (int idx = id; idx < N; idx+= gridStride) {
a[idx] = (double)idx;
}
__global__ void array_add(int N, double* a) {
for (int idx = id; idx < N; idx += gridStride) {
a[idx] += 1.0;
int main()
{
int N = 10;
double* h_A, * d_A;
cudaMalloc((void**)&d_A, N * sizeof(double));
h_A = new double[N];
array_init<<<128,256>>>(N,d_A);
array_add<<<128,256>>>(N,d_A);
double sum_a_dev = thrust::reduce(
thrust::device_ptr <double>(d_A),
thrust::device_ptr <double>(d_A + N),
0.0,
thrust::plus<double>()
);
double min_a_dev = thrust::reduce(
1.0e35,
thrust::minimum<double>()
cudaMemcpy(h_A, d_A, N * sizeof(double), cudaMemcpyDeviceToHost);
int sum_a_hos(0.0), min_a_hos(1.0e35);
for (size_t i = 0; i < N; i++) {
sum_a_hos += h_A[i];
min_a_hos = fmin(h_A[i], min_a_hos);
std::cout
<< "sum on host: " << sum_a_hos << "\n"
<< "sum on device: " << sum_a_dev << "\n"
<< "min on host: " << min_a_hos << "\n"
<< "min on device: " << min_a_dev << "\n"
;
return 0;