cuda grid block size
编译命令:nvcc hello.cu -o hello
运行:./hello
#include <stdio.h>
__global__ void helloWorldKernel() {
// 获取线程在 block 中的坐标
int tx = threadIdx.x;
int ty = threadIdx.y;
int tz = threadIdx.z;
// 获取 block 在 grid 中的坐标
int bx = blockIdx.x;
int by = blockIdx.y;
int bz = blockIdx.z;
// 打印 Hello World + 线程和块的坐标
printf("Hello World from thread (%2d, %2d, %2d) in block (%2d, %2d, %2d)\n",
tx, ty, tz, bx, by, bz);
}
int main() {
// 定义 grid 和 block 的维度
dim3 gridSize(2, 2, 1); // 整个 grid 有 2x2x2 = 8 个 block
dim3 blockSize(2, 2, 2); // 每个 block 有 2x2x2 = 8 个线程
// 启动 kernel
helloWorldKernel<<<gridSize, blockSize>>>();
// 等待 kernel 执行完成
cudaDeviceReset();
return 0;
}
输出:
Hello World from thread ( 0, 0, 0) in block ( 0, 0, 0)
Hello World from thread ( 0, 0, 1) in block ( 0, 0, 0)
Hello World from thread ( 0, 1, 0) in block ( 0, 0, 0)
Hello World from thread ( 0, 1, 1) in block ( 0, 0, 0)
Hello World from thread ( 1, 0, 0) in block ( 0, 0, 0)
Hello World from thread ( 1, 0, 1) in block ( 0, 0, 0)
Hello World from thread ( 1, 1, 0) in block ( 0, 0, 0)
Hello World from thread ( 1, 1, 1) in block ( 0, 0, 0)
Hello World from thread ( 0, 0, 0) in block ( 0, 1, 0)
Hello World from thread ( 1, 0, 0) in block ( 0, 1, 0)
Hello World from thread ( 0, 1, 0) in block ( 0, 1, 0)
Hello World from thread ( 1, 1, 0) in block ( 0, 1, 0)
Hello World from thread ( 0, 0, 1) in block ( 0, 1, 0)
Hello World from thread ( 1, 0, 1) in block ( 0, 1, 0)
Hello World from thread ( 0, 1, 1) in block ( 0, 1, 0)
Hello World from thread ( 1, 1, 1) in block ( 0, 1, 0)
Hello World from thread ( 0, 0, 0) in block ( 1, 1, 0)
Hello World from thread ( 1, 0, 0) in block ( 1, 1, 0)
Hello World from thread ( 0, 1, 0) in block ( 1, 1, 0)
Hello World from thread ( 1, 1, 0) in block ( 1, 1, 0)
Hello World from thread ( 0, 0, 1) in block ( 1, 1, 0)
Hello World from thread ( 1, 0, 1) in block ( 1, 1, 0)
Hello World from thread ( 0, 1, 1) in block ( 1, 1, 0)
Hello World from thread ( 1, 1, 1) in block ( 1, 1, 0)
Hello World from thread ( 0, 0, 0) in block ( 1, 0, 0)
Hello World from thread ( 1, 0, 0) in block ( 1, 0, 0)
Hello World from thread ( 0, 1, 0) in block ( 1, 0, 0)
Hello World from thread ( 1, 1, 0) in block ( 1, 0, 0)
Hello World from thread ( 0, 0, 1) in block ( 1, 0, 0)
Hello World from thread ( 1, 0, 1) in block ( 1, 0, 0)
Hello World from thread ( 0, 1, 1) in block ( 1, 0, 0)
Hello World from thread ( 1, 1, 1) in block ( 1, 0, 0)
未经作者同意请勿转载
本文来自博客园作者:aixueforever,原文链接:https://www.cnblogs.com/aslanvon/p/18875089

浙公网安备 33010602011771号