获取设备内存指针并将其传递给推力函数

时间:2017-09-08 16:52:10

标签: c# pointers cuda thrust cudafy.net

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

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

我刚碰到过这些:

DevicePtrEx
gpu.GetDeviceMemoryPointer()

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

0 个答案:

没有答案