2014-03-01 85 views
0

在CUDA中,它如何管理GPU内核中的顺序代码?CUDA内核的并行性

如果我有一个循环内核,它在顺序模式下管理或存在一个逻辑并行?

回答

2

连续代码仍然会按顺序计算,唯一的变化是所有线程都会并行计算此代码。

假设下面这个简单的内核(蔻这里写下来,未测试):

__global__ void kernel(int *array, int N) 
{ 
    if (threadIdx.x < N) 
    { 
    // complete for loop is computed parallel for different threads 
    for (int i=0; i<1000; i++) 
    { 
     // every single thread perfomes this statement 1000 times 
     array[threadIdx.x] += i; 
    } 
    } 
} 

为同一经线中不同线程的完整的循环将被计算并行。但是每一个线程都会为自己的循环顺序计算这个值。