47得票4回答
用户编写内核中的推力

我是Thrust的新手。我发现所有Thrust的演示和例子都只展示主机端代码。 我想知道是否可以将device_vector传递给自己的内核?如何实现? 如果可以,那么内核/设备端代码中允许进行哪些操作? 我是一名Thrust新手。我注意到所有的Thrust演示和例子都只展示主机端代码。 ...

43得票1回答
VexCL、Thrust和Boost.Compute之间的区别

对于这些库的初步了解,它们看起来非常相似。我知道VexCL和Boost.Compute使用OpenCL作为后端(虽然v1.0版本的VexCL也支持CUDA作为后端),而Thrust使用CUDA。除了不同的后端外,它们有什么区别。 具体来说,它们解决的问题空间是什么,为什么要选择其中之一。 ...

25得票1回答
如何将 thrust::device_vector<int> 转换为原始指针?

我有一个thrust的device_vector,我想将它强制转换为原始指针以便将其传递给内核。我该如何做?thrust::device_vector&lt;int&gt; dv(10); //CAST TO RAW kernel&lt;&lt;&lt;bl,tpb&gt;&gt;&gt;(p...

23得票1回答
CUDA向量类型(float2,float3,float4)的效率

我正在尝试理解CUDA示例中particles_kernel.cu中的integrate_functor。 struct integrate_functor { float deltaTime; //constructor for functor //... ...

22得票3回答
从 thrust::device_vector 转换为原始指针再转换回来?

我知道如何从向量转换为原始指针,但是我不知道如何反过来。// our host vector thrust::host_vector&lt;dbl2&gt; hVec; // pretend we put data in it here // get a device_vector thr...

17得票2回答
使用CUDA Thrust查找最大元素值及其位置

如何获得最大(最小)元素的值和位置(res.val和res.pos)? thrust::host_vector&lt;float&gt; h_vec(100); thrust::generate(h_vec.begin(), h_vec.end(), rand); thrust::devic...

14得票1回答
单个CUDA核心可以启动的最大线程数

我对Fermi型号的GPU可以启动的最大线程数感到困惑。 我的GTX 570设备查询显示如下信息。 Maximum number of threads per block: 1024 Maximum sizes of each dimension of a bloc...

13得票1回答
推力:如何从主机数组创建device_vector?

我从主机上的一个库中取得了一些数据,作为指向数组的指针。如何在设备上创建一个持有此数据的device_vector呢? 答案:我从主机上的一个库中取得了一些数据,作为指向数组的指针。如何在设备上创建一个持有此数据的device_vector呢?int* data; int num; get...

11得票2回答
CUDA下的大整数加法

我正在GPU上开发一种加密算法,目前卡在实现大整数加法的算法上。通常,大整数是按照一串32位字来表示的。 举个例子,我们可以使用一个线程来相加两个32位字。为了简单起见,假设要相加的数字具有相同的长度,并且每个块中的线程数等于字数。那么:__global__ void add_kernel(...

10得票3回答
解决推力/ CUDA 警告 "无法确定指针指向..."

我正在尝试使用Thrust / CUDA 4.0构建一个简单的应用程序,但是收到了很多警告“warning: Cannot tell what pointer points to, assuming global memory space”。 是否有其他人看到过这个问题,如何禁用它们或修复我...