1
我試圖使用推力:: copy_if壓縮到一個數組與正數謂詞檢查:推力copy_if:不完全類型是不允許
頭文件:file.h:
struct is_positive
{
__host__ __device__
bool operator()(const int x)
{
return (x >= 0);
}
};
和file.cu
#include "../headers/file.h"
#include <thrust/device_ptr.h>
#include <thrust/device_vector.h>
#include <thrust/copy.h>
void compact(int* d_inputArray, int* d_outputArray, const int size)
{
thrust::device_ptr<int> t_inputArray(d_inputArray);
thrust::device_ptr<int> t_outputArray(d_outputArray);
thrust::copy_if(t_inputArray, t_inputArray + size, d_outputArray, is_positive());
}
我收到錯誤消息的起始號碼:
/usr/local/cuda/include/thrust/system/detail/generic/memory.inl(40): error: incomplete type is not allowed
如果我只是用副本代替copy_if,代碼編譯好,所以我統治一切,除了謂語is_positive()出來。
預先感謝您的任何幫助或如何調試這樣的推力錯誤的一般技巧。
E:我使用CUDA 7.5
那真是令人尷尬。謝謝你,你是對的,就像一個魅力! – mimre