我是CUDA和并行新手。我希望得到一些理解。您应该熟悉标准SumArrayOnGPU:
__global__ void
vectorAdd(const float *A, const float *B, float *C, int numElements)
{
int i = blockDim.x * blockIdx.x + threadIdx.x;
if (i < numElements)
{
C[i] = A[i] + B[i];
}
}
我要做的是不断递增一个数字,通过任意网格运行该数字,并且只关心递增的数字,这个数字会给我一个特定的答案。
因此,并行性将在递增的数字上运行相同的例程。
思想范例:
__global__ void
vectorfind(long long unsigned *nbr, int numElements)
{
long long unsigned tnbr;
int i = blockDim.x * blockIdx.x + threadIdx.x;
if (i < numElements)
{
tnbr = nbr + i;
tnbr = hash(tnbr);
if (tnbr = arbitraryresult) { printf("found");
}
}
答案 0 :(得分:1)
我想确保逻辑是合理的。感谢几位用户的回复,我得到了答案,逻辑是可以的。我想张贴这个,以便没有悬而未决的问题。