2014-03-01 124 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; 
    } 
    } 
} 

爲同一經線中不同線程的完整的循環將被計算並行。但是每一個線程都會爲自己的循環順序計算這個值。