title: 【CUDA 基础】6.3 重叠内和执行和数据传输

categories:

- CUDA

- Freshman

tags:

- 深度优先

- 广度优先

toc: true

date: 2018-06-20 20:10:09



Abstract: 本文介绍如何利用流的重叠来隐藏主机到设备的数据传输延迟

Keywords: 深度优先,广度优先

开篇废话

热烈庆祝上证跌破3000点。如果股市是一个国家经济最好的衡量标准之一的话,我们的中国梦该醒醒了。

前面一节我们主要研究多个内核在不同流中的不同行为,主要使用的工具是NVVP,NVVP是可视化的非常实用的工具,值得大家深入研究一下。

Fermi架构和Kepler架构下有两个复制引擎队列,也就是数据传输队列,一个从设备到主机,一个从主机到设备。所以读取和写入是不经过同一条队列的,这样的好处就是这两个操作可以重叠完成了,注意,只有方向不同的时候才能数据操作。同向的时候不能进行此操作。

应用程序中,还需要检查数据传输和内核执行之间的关系,分为以下两种:

  • 如果内核使用数据A,那么对A进行数据传输必须要安排在内核启动之前,且必须在同一个流中
  • 如果内核完全不使用数据A,那么内核执行和数据传输可以位于不同的流中重叠执行。

第二种情况就是重叠内核执行和数据传输的基本做法,当数据传输和内核执行被分配到不同的流中时,CUDA执行的时候默认这是安全的,也就是程序编写者要保证他们之间的依赖关系。

但是第一种情况也可以进行重叠,只要对核函数进行一定的分割,我们用向量加法来完成本文的研究。

使用深度优先调度重叠

完整内容 https://face2ai.com/CUDA-F-6-3-重叠内核执行和数据传输/

最新文章

  1. 实现代理设置proxy
  2. ubuntu升级内核后vmware-player启动失败
  3. php面向对象学习笔记
  4. objective-c系列-NSDictionary&NSMutableDictionary
  5. 关于EOF的种种。
  6. .NET Web开发总结(五)
  7. 转:Stack Overflow通过关注性能,实现单块应用架构的扩展能力
  8. Python Logging 模块研究
  9. 【android】修改android默认应用图标
  10. C#委托,事件,匿名委托
  11. High Context とLow Context文化
  12. mysql1130远程连接没有权限解决方法
  13. AIX系统开启ftp服务
  14. T9
  15. jQuery对表单元素的取值和赋值操作代码(转)
  16. Loadrunner11不能调用IE8解决方法大全
  17. zookeeper 四字命令
  18. hdu 2844 coins(多重背包 二进制拆分法)
  19. Linux用户名、用户组的相关命令
  20. 解决Android中,禁止ScrollView内的控件改变之后自动滚动 - 转

热门文章

  1. analysis_tools
  2. Your ApplicationContext is unlikely tostart due to a @ComponentScan of the defau
  3. UML学习(四)-----状态图
  4. Lua虚拟机中的数据结构与栈
  5. 【css】display:flex和display:box有什么区别
  6. Vue Elementui中的Tag与页面其它元素相互交互
  7. 12-factor应用和微服务架构应用的区别
  8. Spring7大模块
  9. 2.2 使用 JAXP 对XML文档进行SAX解析
  10. JComboBox实现时间控件