详解CUDA核函数及运行时参数

核函数是GPU每个thread上运行的程序。必须通过__gloabl__函数类型限定符定义。形式如下:

__global__ void kernel(param list){  }

核函数只能在主机端调用,调用时必须申明执行参数。调用形式如下:

Kernel<<<Dg,Db, Ns, S>>>(param list);

<<<>>>运算符内是核函数的执行参数,告诉编译器运行时如何启动核函数,用于说明内核函数中的线程数量,以及线程是如何组织的。

<<<>>>运算符对kernel函数完整的执行配置参数形式是<<<Dg, Db, Ns, S>>>

  • 参数Dg用于定义整个grid的维度和尺寸,即一个grid有多少个block。为dim3类型。Dim3 Dg(Dg.x, Dg.y, 1)表示grid中每行有Dg.x个block,每列有Dg.y个block,第三维恒为1(目前一个核函数只有一个grid)。整个grid中共有Dg.x*Dg.y个block,其中Dg.x和Dg.y最大值为65535。
  • 参数Db用于定义一个block的维度和尺寸,即一个block有多少个thread。为dim3类型。Dim3 Db(Db.x, Db.y, Db.z)表示整个block中每行有Db.x个thread,每列有Db.y个thread,高度为Db.z。Db.x和Db.y最大值为512,Db.z最大值为62。 一个block中共有Db.x*Db.y*Db.z个thread。计算能力为1.0,1.1的硬件该乘积的最大值为768,计算能力为1.2,1.3的硬件支持的最大值为1024。
  • 参数Ns是一个可选参数,用于设置每个block除了静态分配的shared Memory以外,最多能动态分配的shared memory大小,单位为byte。不需要动态分配时该值为0或省略不写。
  • 参数S是一个cudaStream_t类型的可选参数,初始值为零,表示该核函数处在哪个流之中。

详解CUDA核函数及运行时参数相关推荐

  1. 运行时常量池在哪里_Java虚拟机详解(二)------运行时内存结构

    首先通过一张图了解 Java程序的执行流程: 我们编写好的Java源代码程序,通过Java编译器javac编译成Java虚拟机识别的class文件(字节码文件),然后由 JVM 中的类加载器加载编译生 ...

  2. 【图文详解】IDEA控制台运行时出现乱码:淇℃伅...

    问题展示: 解决方案: 找到自己电脑中tomcat – conf 文件夹,修改logging.properties文件 找到java.util.logging.ConsoleHandler.encod ...

  3. linux命令优先级设置,linux renice命令参数及用法详解(linux修改程序运行优先级命令)...

    linux renice命令参数及用法详解(linux修改程序运行优先级命令) 发布时间:2012-07-21 12:45:32   作者:佚名   我要评论 renice指令可重新调整程序执行的优先 ...

  4. python中什么是可变参数_详解Python的三种可变参数

    详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...

  5. tomcat7修改内存 win_详解Windows下调整Tomcat启动参数的实现方法

    Windows下调整Tomcat启动参数 Tomcat默认可以使用的内存为128MB,对于访问数比较多.比较吃内存的应用来说,这是不够的.我们可以通过调整Java虚拟机的启动参数来增加Tomcat可使 ...

  6. 详解Windows开机自动运行

    详解Windows开机自动运行 一.经典的启动--"启动"文件夹 单击"开始→程序",你会发现一个"启动"菜单,这就是最经典的Windows ...

  7. qpython能使用json吗l_[python] 详解Python在使用JSON时需要注意的编码问题

    Python 中的字符编码 在 Python3 中, 字符 在内存中是使用 Unicode 存储的, 常规的字符使用 两个字节 表示, 一些很生僻的字符就需要 四个字节. 默认使用 Unicode 存 ...

  8. 一文详解自动驾驶的运行设计域(ODD)| 自动驾驶系列 1

    一文详解自动驾驶的运行设计域(ODD)| \n 自动驾驶系列 2021年4月30日,SAE发布了第四版J3016<驾驶自动化分级>,这是即2014年1月16日.2016年9月30日.201 ...

  9. 详解XMLHTTP中setRequestHeader方法和参数

    详解XMLHTTP中setRequestHeader方法和参数 setRequestHeader("Content-type", "application/x-www-f ...

最新文章

  1. c语言菱形花圃,一种便于自动修剪花圃的电锯支架的制作方法
  2. vue路由 routers的写法:require用与不用
  3. Boost:使用 type <>语法测试功能
  4. 最短路径——Floyd算法HDU Today(hdu2112)
  5. cmake编译安装MySQL5.5.32
  6. 【windows核心编程】第二章 字符和字符串处理
  7. Android之notificaction使用
  8. SparkSQL错误:Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider...
  9. AXURE中SVG矢量图标的使用方法,以及图标颜色的改变方法
  10. SQL 比较全的银行列表、带名称缩写、带银行logo
  11. 微信小程序中的倒计时
  12. 【Word】word2010中如何去掉标题前面的小黑点
  13. Android打码函数,Android 马赛克(Mosaics)效果
  14. 软件开发流程中的测试及测试方法简介
  15. 《项目管理知识体系指南》(PMBOK®指南)第3 版
  16. 微信开发------------公众号支付统一下单整个流程
  17. LAZADA上传产品,“Seller is not verified”没有通过.产品审核是什么原因?怎么办?
  18. vue字符云-------把老婆放到云端
  19. 成功卸载norton antivirus企业版
  20. keyshot怎么批量渲染_如何提高KeyShot的输出渲染速度

热门文章

  1. Macbook m1 install Homebrew
  2. 剑桥MPhil Industrial Systems, Manufacture and Management录取率
  3. 居家学习的核心操作准则:45分钟的专注
  4. sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中...
  5. 全民学python(01)
  6. 关于StreamReader的构造函数
  7. 飞机大作战游戏 1----(运用H5和Js制作)
  8. GridView导出到Excel或Word文件
  9. 互联网IP路由的逐跳全局最优化原则-Dijkstra算法证明
  10. HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据