GPU线程运行机制

///****测试在kernel里面交换全局内存的值
#include
#include
#include
#include
using namespace std;



const int N=300;
__global__ void show(int* a)
{
for(int i=blockIdx.x*blockDim.x+threadIdx.x;i i+=blockDim.x*gridDim.x)
{
if(i {
printf("%d  ",a[i]);
/*a[i]++;*/
if(i%60==0)
printf("\n\n\n");
}
}
}


int main(void)
{
int ha[N];
int *da;
cudaMalloc((void**)&da,N*sizeof(int));
for(int i=0;i ha[i]=i;
cudaMemcpy(da,ha,N*sizeof(int),cudaMemcpyHostToDevice);
show<<<3,20>>>(da);
cudaMemcpy(ha,da,N*sizeof(int),cudaMemcpyDeviceToHost);
//for(int i=0;i // cout< return 0;

}


GPU线程运行机制_第1张图片

GPU线程运行机制_第2张图片

从结果可以是有序执行

你可能感兴趣的:(cuda,GPU,gpu,kernel)