编译命令: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. Windows下PostgreSQL设置远程连接以及备份和恢复数据库

    一.设置远程连接 修改安装路径下的postgresql.conf,定位到listen_address  = '*',确保其值为'*'(Windows下默认是这样的,可不用修改) 修改安装路径下的pg_ ...

  2. Linux SWAP交换分区应该设置多大?

    乾乾君子 2019-02-21 15:21:02 23370 收藏 34分类专栏: 杂记 文章标签: linux centos swap分区版权    Linux SWAP交换分区,就是我们课本说讲过 ...

  3. Oracle DB 关于CONNECT、RESOURCE 和DBA 角色权限

    授予角色的语法: grant <object/system privilege> to <role name>; 一般情况下,在新建数据库用户后,都会习惯性的给用户授权CONN ...

  4. Oracle UTL_HTTP

    Oracle 中可以通过包 UTL_HTTP 来获取访问 HTTP 的能力. declare req UTL_HTTP.REQ; resp UTL_HTTP.RESP; val varchar2(32 ...

  5. 面试题:Linux 系统基础 (二)

    Linux系统中的定时任务有哪些类型,它们是如何配置的? Linux系统中的定时任务主要有两种类型:Cron作业和at作业. 1.Cron作业: 使用crontab命令配置和管理. 配置周期性执行的任 ...

  6. Chrome谷歌浏览器常用快捷键、开发技巧

    谷歌浏览器作为常用的开发工具,熟悉常用的快捷键,不仅方便快捷,也能间接提高不少工作效率.以下是谷歌浏览器常用快捷键和开发技巧. 标签页和窗口快捷键 1. Ctrl + n 打开新窗口 2. Ctrl ...

  7. Unity/Auto Layout -- 理解Layout Elements(布局元素)

  8. 什么是 Java 中的常量池?

    Java 中的常量池 Java 中的常量池(Constant Pool)是用于存放程序中常量(如字符串.数字.类.方法等)的内存区域.常量池的主要作用是提高内存的使用效率和性能,避免重复创建相同的常量 ...

  9. 关于composer报错The openssl extension is required for SSL/TLS protection but is not available问题

    今天使用composer的时候得到了这个错误: The openssl extension is required for SSL/TLS protection but is not availabl ...

  10. symfony里实现resfull api并实现权限控制

    ---------------------------------------------------------- 1.restfull api部分 注:笔记,自己摸索出来的,路子野,仅供参考. - ...