我知道当我在内核中声明一个共享内存数组时,所有线程都声明了相同大小的数组。像这样的代码
__shared__ int s[5];
将在每个线程中创建一个 20 字节的数组。我理解解决共享内存的方式是它在所有线程中都是通用的。所以,如果我按如下方式处理下标 10
s[10] = 1900;
它是所有线程中完全相同的内存位置。不同的线程不会为下标10访问不同的共享内存地址。这是正确的吗?编译器当然会抛出下标超出范围的警告。
我知道当我在内核中声明一个共享内存数组时,所有线程都声明了相同大小的数组。像这样的代码
__shared__ int s[5];
将在每个线程中创建一个 20 字节的数组。我理解解决共享内存的方式是它在所有线程中都是通用的。所以,如果我按如下方式处理下标 10
s[10] = 1900;
它是所有线程中完全相同的内存位置。不同的线程不会为下标10访问不同的共享内存地址。这是正确的吗?编译器当然会抛出下标超出范围的警告。