title: 【CUDA 基础】6.0 流和并发

categories:

- CUDA

- Freshman

tags:

- 流

- 事件

- 网格级并行

- 同步机制

- NVVP

toc: true

date: 2018-06-10 20:21:37



Abstract: 本文是第六章的概述,本章也是Freshman的最后一个章节。

Keywords: 流,事件,网格级并行,同步机制,NVVP

开篇废话

本文是Freshman系列的最后一篇,考虑到接下来要说的是比较高级的内容,所以把其划分到下个系列中,作为进阶内容介绍,所以本章是初级阶段的收尾。

本章内容

本章主要介绍下面内容:

  • 理解流和事件的本质
  • 理解网格级并发
  • 重叠内核执行和数据传输
  • 重叠CPU执行和GPU执行
  • 理解同步机制
  • 调整流的优先级
  • 注册设备回调函数
  • 通过NVIDIA可视化性能分析器显示应用程序执行时间轴

一般来说CUDA程序有两个几倍的并发:

  1. 内核级并行
  2. 网格级并行

我们前面说有都是在研究内核级别的并行,通过同一内核多线程的并行来完成并行计算,提高内核级别并行我们前面用了基本所有的篇幅介绍了以下三种途径:

  1. 编程模型
  2. 执行模型
  3. 内存模型

这三个角度是优化内核级并行的最主要也是最基础的方法,更高级的方法虽然高级但是提升效率幅度绝没有这三种基础角度来的更有效率。

本章我们在内核之上研究并行,也就是多个内核的并行,这在一个完整应用中是很常见的,实际中的应用程序多半都不是单个内核的,多个内核最大程度的并行也就是最大限度的使用GPU设备,是提高整个应用效率的关键。

总结

本章我们考虑只在一个设备上并行内核,使用CUDA流实现网格级并发,还会使用NVVP显示内核并行执行可视化。

完整内容 https://face2ai.com/CUDA-F-6-0-流和并发/

最新文章

  1. ubuntu-Linux系统读取USB摄像头数据(gspca)
  2. 有意思的Console
  3. Effective C++ 33 避免遮掩继承而来的名称
  4. composer 一些使用说明
  5. .NET文档生成工具ADB使用图文教程
  6. Jrebel是一套开发环境,用来实现热部署
  7. 仓库如何盘点 打印扫描一体PDA盘点机提升库存盘点效率
  8. 排序小结(C++版)
  9. EF学习笔记——通用增删改查方案
  10. Java基础 —— Java常用类
  11. logstash jdbc 各种数据库配置
  12. 调试技巧 —— 如何利用windbg + dump + map分析程序异常
  13. 那天有个小孩教我WCF[一][1/3]
  14. Android OpenGL ES(一)OpenGL ES介绍
  15. 【Android Developers Training】 73. 布局变化的动画
  16. C++指针的用法
  17. verilog实验3:AD转换后串口输出到PC端
  18. 利用Java生成UUID
  19. (一一五)利用NSKeyedArchiver实现任意对象转为二进制
  20. 使用tar解压的时候提示:gzip: stdin: not in gzip format

热门文章

  1. Pygame小游戏练习四
  2. 2.安装阿里yum源
  3. Class.getResources()和classLoader.getResources()区别
  4. 在生产环境中使用Compose 【翻译】
  5. LeetCode 899. Orderly Queue
  6. Django rest-framework框架-请求数据校验
  7. synchronized 底层实现原理
  8. jQuery 手写菜单(ing)
  9. tomcat 的配置文件server.xml 几个端口的作用
  10. Dedecms限制栏目列表生成的最大页数