C 你能在全局线程之外创建线程吗?

C 你能在全局线程之外创建线程吗?,c,cuda,C,Cuda,我可以在设备中创建线程吗 或者你只能在全局内核中生成线程 简短回答:以上代码行在\uu设备\uu功能中完全有效 但是,它不会“创建”线程。它只需使用当前线程的threadIdx.x、blockIdx.x和blockDim.x值,在idx中为当前线程计算索引 在CUDA中创建线程的唯一方法是使用语法启动内核,以使用块和网格尺寸指定线程的数量和分组: int blockSize = 128; int gridSize = (N + blockSize - 1) / blockSize; myKer

我可以在设备中创建线程吗

或者你只能在全局内核中生成线程

简短回答:以上代码行在
\uu设备\uu
功能中完全有效

但是,它不会“创建”线程。它只需使用当前线程的
threadIdx.x
blockIdx.x
blockDim.x
值,在
idx
中为当前线程计算索引

在CUDA中创建线程的唯一方法是使用
语法启动内核,以使用块和网格尺寸指定线程的数量和分组:

int blockSize = 128;
int gridSize = (N + blockSize - 1) / blockSize;

myKernel<<<gridSize, blockSize>>>();
int blockSize=128;
int gridSize=(N+blockSize-1)/blockSize;
myKernel();

返回浮动不是合法的C、C++或CUDA C/C++。
int idx = threadIdx.x + blockIdx.x * blockDim.x;
int blockSize = 128;
int gridSize = (N + blockSize - 1) / blockSize;

myKernel<<<gridSize, blockSize>>>();