Occupancy的定义:活动的warp数量与最大数量的比值。
意义:GPU的硬件利用率,利用率越高不一定性能就越高,但如果利用率很小,性能肯定不会好。这很好理解,一条马路,利用率太高了,如拥堵,说明车流量太大马路容量(承载能力)不足够了;利用率太低了,则没有充分利用到交通资源,此时无法体现马路的承载能力。

同一时刻,GPU的每个SM运行着若干个block,sm会根据block的线程数为其分配寄存器:
每个block分配到的寄存数量=每个线程所需的寄存器数量*线程数。
但是每个SM的寄存器数目是有限的,如果每个block的线程数越多(所需的寄存器数量也多),block的数量就会越少。block的数量减少,会导致SM的占用率降低!

举例说明:cc=1.1,SM的最大寄存器数量为8192,假设128-thread block,12-reg thread,此时只能运行5个block(8192/12/128 = 5.333),Occupancy=5*128/768=83.33%
注意:768是cc 1.1的每个SM的最大线程数
假设256-thread block,12-reg thread,此时只能运行2个block(8192/12/256=2.67),
Occupancy=2*256/768=66.67%

CUDA的toolkit提供了一个CUDA Occupancy Calculator工具,用于计算不同cc和block分配下的Occupancy
这是一个excel表格,放在\NVIDIA GPU Computing Toolkit\CUDA\v8.0\tools目录下

Occupancy只能是评估性能的一个方面,并不是所有情况下都是越高越好

CUDA总结:Occupancy相关推荐

  1. CUDA中Occupancy相关知识

    文章目录 occupancy初步理解 occupancy具体分析 occupany的推导流程 Occupancy实际运用 occupancy 有啥用 前言 本篇文章只适合稍微有一些cuda基础的朋友阅 ...

  2. CUDA的Occupancy和Achieved Occupancy概念

    官方原文 Occupancy is defined as the ratio of active warps on an SM to the maximum number of active warp ...

  3. cuda图像处理_CUDA随笔之图像直方图(优化历程)

    在忙忙碌碌许久之后,终于有时间写 "CUDA随笔" 系列的第二集了! 这次给大家带来了一个图像处理的应用例子:计算图片的直方图. 虽然使用CUDA可以很轻松地在性能上超越CPU,如 ...

  4. CUDA C 编程指南

    说明 最近在学习CUDA,感觉看完就忘,于是这里写一个导读,整理一下重点 主要内容来源于NVIDIA的官方文档<CUDA C Programming Guide>,结合了另一本书<C ...

  5. CUDA: Occupancy(占用率)详解

    #CUDA: Occupancy(占用率)详解 占用率是指每个多处理器(Streaming Multiprocessor,SM)的活动线程束(warps)数量与实际的活动warps数量的比率. 高的占 ...

  6. CUDA Samples目录

    简介 Simple Reference  基础CUDA示例,适用于初学者, 反映了运用CUDA和CUDA runtime APIs的一些基本概念. Utilities Reference  演示如何查 ...

  7. CUDA占用率计算方法

    通常认为:一个SM中所有的线程在同时工作,那么这个SM的效率或占用率就是100%,在这种情况下,处理程序的速度是最快的,效率是最高的.如果实际中由于资源的限制(如共享内存,寄存器),不是所有的线程都同 ...

  8. CUDA程序编写具体参数设置

    介绍了GPU的结构以及资源的控制要素(GPU硬件结构和程序具体参数设置_yu132563的专栏-CSDN博客)以及编程过程中的一些需要注意的问题(CUDA程序性能调优_yu132563的专栏-CSDN ...

  9. 推荐CUDA程序优化的15个策略

    推荐CUDA程序优化的15个策略 0条评论 2011-07-06 09:48   来源:潇湘学子岳麓生的博客 作者: 潇湘学子岳麓生 编辑: 王玉圆 [IT168 技术]在<CUDA程序优化策略 ...

最新文章

  1. xcode修改时间后就要重新编译_iOS 微信编译速度优化分享
  2. 从零开始入门 K8s | 调度器的调度流程和算法介绍
  3. Hadoop的改进实验(中文分词词频统计及英文词频统计)(1/4)
  4. android 添加广告用proguard混淆后不显示问题解决方法
  5. Spring MVC DispatcherServlet介绍(2)
  6. chrome remote desktop_无损音乐下载神器!洛雪音乐助手lx-music-desktop
  7. Judge Complex(判断-复杂)
  8. Xcode插件管理工具Alcatraz
  9. 软工专硕考研_2021考研人数将突破400万?录取率或成史低!
  10. Webpack4 学习笔记 - 02:loader 打包静态资源(图片)
  11. 利用抓包工具分析数据帧具体内容
  12. 淘宝/天猫api 添加收货地址 API接口
  13. 谷歌离开中国的三大原因四大后果
  14. 教程:如何使用Java以编程方式打印PDF文件?
  15. 实验一:Guass列选主元消去法之C语言代码
  16. 得物购买截图生成_iPhone12订单生成器网页版-iPhone12订单生成器网页版链接分享预约 v1.0...
  17. 基于python的文件加密传输_python 利用Crypto进行AES解密加密文件
  18. android系统是什么意思
  19. 非科班出身这么理解货币乘数
  20. 乘法运算中的有效数据位

热门文章

  1. Visual Studio 2015 Bowser Link的功能不停的向服务端发送请求
  2. php+矩阵,PHP实现简单矩阵算法
  3. 本人重装后的一些操作需求
  4. 国外一个免费的基于Java的PLC梯形图逻辑编辑与仿真软件
  5. mysql 存储类型文本最大长度longtext
  6. 阿里云RPA(机器人流程自动化)干货系列之五:业务流程梳理方法
  7. 使用ftp服务上传文件时553报错的解决(绝对有用)
  8. 求可以进行图片抽签的小程序
  9. 配置软路由-同时连接内网和外网
  10. 1024 致敬程序员