我试图访问同一个块中的其他线程,我想返回一些。我想做这样的事情:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
__global__ void returnKernel()
{
if (blockIdx.x == threadIdx.x)
{
//exit/return thread 1
}
}
int main()
{
returnKernel<<<4, 4>>>();
return 0;
}
提前致谢!
答案 0 :(得分:1)
没有办法“杀死”其他正在运行的线程,他们需要“投降”自己。以下是您修改的问题的代码,以退出第1个主题:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
__global__ void returnKernel()
{
if (blockIdx.x < blockDim.x && threadIdx.x == 1)
{
return;
}
}
int main()
{
returnKernel<<<4, 4>>>();
return 0;
}