编译命令: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)

cuda grid block size的更多相关文章

  1. CUDA中block和thread的合理划分配置

    CUDA并行编程的基本思路是把一个很大的任务划分成N个简单重复的操作,创建N个线程分别执行执行,每个网格(Grid)可以最多创建65535个线程块,每个线程块(Block)一般最多可以创建512个并行 ...

  2. Transport Block Size, Throughput and Code rate-----http://www.simpletechpost.com/2012/12/transport-block-size-code-rate-protocol.html

    Transport Block Size, Throughput and Code rate   Since the size of transport block is not fixed, oft ...

  3. Hadoop中如何查看文件的block size

    因为对控制文件的分片数目,进而控制文件的map个数非常感兴趣,因此有查找如下资料的需求.下面来看看我总结的吧:) 当向HDFS上写文件时,可以通过设置dfs.blocksize配置项来设置文件的blo ...

  4. 关于4K Block Size的Device和 Aligned IO

    背景:最近采购了一批新的服务器,底层的存储设备的默认physical sector size从原有的 512B 改为了 4K. 装完系统以后,在做数据库物理备份恢复时xtrabackup报了这么一个错 ...

  5. kdbchk: the amount of space used is not equal to block size

    一.对数据文件检查 注意:应该在关闭数据库模式下进行bbed的操作 [oracle@ora10 controlfile]$ dbv file=/u01/app/oracle/oradata/ORCL/ ...

  6. 4K Block Size的Device和 Aligned IO

    http://www.cnblogs.com/cenalulu/p/3587006.html   背景:最近采购了一批新的服务器,底层的存储设备的默认physical sector size从原有的 ...

  7. 解决Virtual Box 安装Mac OS X当出现“hfs: summary table not allowed on FS with block size of 2048”问题

    解决Virtual Box 安装Mac OS X当出现"hfs: summary table not allowed on FS with block size of 2048"问 ...

  8. 值得一提:关于 HDFS 的 file size 和 block size

    转 http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=referral ...

  9. 遇到502错误,invalid request block size 解决方法

    uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 因为业务需求,要最多输入350个汉字,在 ...

  10. uwsgi 服务 invalid request block size: 4161 (max 4096)...skip问题的解决

    问题报错: invalid request block size: 4161 (max 4096)...skip 问题原因:默认的uwsgi分配一个小的buffer(4k)来接收每个请求的头信息,如果 ...

随机推荐

  1. php处理跨域

    1.允许所有域名访问 header('Access-Control-Allow-Origin: *'); 2.允许单个域名访问 header('Access-Control-Allow-Origin: ...

  2. 什么是单点登录?什么是SSO?什么是CAS?

    目录 单点登录简介 SSO&CAS是什么 单点登录适合什么场景 单点登录的三种实现方式 CAS的几个重要知识点 CAS的实现过程 单点登录简介 单点登录(SingleSignOn,SSO),就 ...

  3. docker clean images

    docker ps | grep portal | awk '{print $2}' | cut -d ":" -f3 used=`docker ps | grep portal ...

  4. docx4j转换pdf样式问题~Java Libreoffice转换pdf

    背景 本篇文章主要是介绍我在使用docx4j过程中遇到的问题,并最终如何通过Libreoffice来实现pdf的转换. 问题 在使用docx4j转换pdf过程中发现word文档中表格.加粗样式无法实现 ...

  5. Delphi 非主窗体(即子窗体)在任务栏显示按钮

    type TForm2 = class(TForm) private { Private declarations } public { Public declarations } procedure ...

  6. 响应式编程之Project Reactor

    Project Reactor作为响应式编程范式的核心实现框架,严格遵循Reactive Streams规范体系,其架构设计完整包含了规范定义的四个核心组件:Publisher(数据源).Subscr ...

  7. VsCode写Markdown使用snippet

      文件->首选项->用户片段   输入markdown   输入代码片段 Ctrl+P,输入settings.json   加入下面个这个选项 "[markdown]" ...

  8. Mono GC

    1.虽然是stw但mark阶段可以concurrent 2.并行mark就需要写屏障 3.unity的gc也不是扫描整个堆内存 https://schani.wordpress.com/2012/12 ...

  9. zk源码—7.ZAB协议和数据存储

    大纲 1.两阶段提交Two-Phase Commit(2PC) 2.三阶段提交Three-Phase Commit(3PC) 3.ZAB协议算法 4.ZAB协议与Paxos算法 5.zk的数据存储原理 ...

  10. .NET 原生驾驭 AI 新基建实战系列(三):Chroma ── 轻松构建智能应用的向量数据库

    在人工智能AI和机器学习ML迅猛发展的今天,数据的存储和检索需求发生了巨大变化.传统的数据库擅长处理结构化数据,但在面对高维向量数据时往往力不从心.向量数据库作为一种新兴技术,专为AI应用设计,能够高 ...