1
當我運行這段代碼時,編譯器說我正在從設備調用一個主機函數。我不太明白如何。如何在cuda內核中調用推力函數
__global__ void kernel(thrust::device_vector<float*> d_V) {
float *var = d_V[0];
}
int main() {
thrust::host_vector<float*> V;
thrust::host_vector<float*> d_V;
float f[10];
for (int i = 0; i < 10; i++) {
f[i] = i;
}
V.push_back(f);
d_V = V;
kernel<<<1, 1>>>(d_V);
return 0;
}
此外,代碼還有各種其他問題。原始代碼將'd_V'聲明爲'host_vector',這可能只是一個簡單的錯誤。但更重要的是,原始代碼處理指針向量。這在設備代碼中處理肯定會有問題。 –