【发布时间】:2015-08-12 18:48:44
【问题描述】:
在 CUDA 中,它是如何管理 GPU 内核中的顺序代码的?
如果我在 for 循环中有一个内核,它以顺序模式管理还是存在逻辑并行性?
【问题讨论】:
在 CUDA 中,它是如何管理 GPU 内核中的顺序代码的?
如果我在 for 循环中有一个内核,它以顺序模式管理还是存在逻辑并行性?
【问题讨论】:
顺序代码仍将按顺序计算,唯一的变化是所有线程将并行计算此代码。
让我们假设以下简单内核(代码写在这里,未测试):
__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;
}
}
}
完整的 for 循环将针对同一 warp 中的不同线程并行计算。 但是每个线程都会为自己计算这个 for 循环顺序。
【讨论】: