我正在GPU上做一些计算,结果我有一个数组 . 我在Cudafy工作,我想使用推力库进行分类和减少 . 我能够在CUDA C中编写一个函数并将其作为DLL导入我的Cudafy代码中,以便使用推力库,因为它仅在CUDA C中可用 . 但推力函数只能从主机调用 . 我不想将整个数据从设备复制到主机以执行这些推力操作 . 我不知何故想要使用推力而不必复制数据 .

我知道可以从设备使用的 thrust::seqthrust::device 执行策略,但在Cudafy中这样做是不可能的 . 我现在要做的是从设备返回设备内存指针,然后使用该设备指针从主机调用推力函数,以便能够访问GPU上的数据 .

我刚碰到过这些:

DevicePtrEx
gpu.GetDeviceMemoryPointer()

但我找不到任何好的例子来实际看到它们是如何被使用的 . 如果可能,一个例子真的会有所帮助看起来上面提到的函数可能能够获得指针,但我真的不知道如何才能做到这一点 .