CUDA - 并行 - 逻辑过程

时间:2015-07-24 14:08:22

标签: cuda parallel-processing nvcc

我是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];
    }
}

我要做的是不断递增一个数字,通过任意网格运行该数字,并且只关心递增的数字,这个数字会给我一个特定的答案。

因此,并行性将在递增的数字上运行相同的例程。

  1. 这样的事情可能吗?
  2. 什么是正确的逻辑?
  3. 是否仍需要将其置于阵列设置中?
  4. 思想范例:

    __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");
        }
    }
    

1 个答案:

答案 0 :(得分:1)

我想确保逻辑是合理的。感谢几位用户的回复,我得到了答案,逻辑是可以的。我想张贴这个,以便没有悬而未决的问题。