(异步)SIMT 架构

在 CUDA 编程模型中,线程是进行计算或内存操作的最低抽象级别。 从基于 NVIDIA Ampere GPU 架构的设备开始,CUDA 编程模型通过异步编程模型为内存操作提供加速。 异步编程模型定义了与 CUDA 线程相关的异步操作的行为。

异步编程模型为 CUDA 线程之间的同步定义了 异步屏障 的行为。 该模型还解释并定义了如何使用 cuda::memcpy_async 在 GPU计算时从全局内存中异步移动数据。

异步操作

异步操作定义为由CUDA线程发起的操作,并且与其他线程一样异步执行。在结构良好的程序中,一个或多个CUDA线程与异步操作同步。发起异步操作的CUDA线程不需要在同步线程中.

这样的异步线程(as-if 线程)总是与发起异步操作的 CUDA 线程相关联。异步操作使用同步对象来同步操作的完成。这样的同步对象可以由用户显式管理(例如,cuda::memcpy_async)或在库中隐式管理(例如,cooperative_groups::memcpy_async)。

同步对象可以是 cuda::barriercuda::pipeline。这些对象在 Asynchronous Barrier 和 Asynchronous Data Copies using cuda::pipeline 中进行了详细说明。这些同步对象可以在不同的线程范围内使用。作用域定义了一组线程,这些线程可以使用同步对象与异步操作进行同步。

下表定义了CUDA c++中可用的线程作用域,以及可以与每个线程同步的线程。

Thread Scope Description
cuda::thread_scope::thread_scope_thread Only the CUDA thread which initiated asynchronous operations synchronizes.
cuda::thread_scope::thread_scope_block All or any CUDA threads within the same thread block as the initiating thread synchronizes.
cuda::thread_scope::thread_scope_device All or any CUDA threads in the same GPU device as the initiating thread synchronizes.
cuda::thread_scope::thread_scope_system All or any CUDA or CPU threads in the same system as the initiating thread synchronizes.

这些线程作用域是在CUDA 标准c++库 中作为标准c++的扩展实现的。

【笔记】CUDA(二) - (异步)SIMT 架构相关推荐

  1. 软考笔记(二)高级系统架构师/分析师:计算机网络基础与信息安全

    目录 软考官网 报名通道 软考架构师笔记(一):计算机系统基础 软考架构师笔记(二):计算机网络基础与信息安全 软考架构师笔记(三):操作系统基础 软考架构师笔记(四):企业信息化与系统规划 软考架构 ...

  2. MAC OS X 技术内幕 学习笔记之二 MAC OS系统架构

    MAC OS系统架构 苹果系统把其操作系统分为四个层次,分别为应用层,应用框架层.核心框架层,还有就是Darwin 1.应用层:包括用户能接触到的图形应用,如 Spotlight(系统自带搜索栏).A ...

  3. 响应式编程笔记(二):代码编写

    2019独角兽企业重金招聘Python工程师标准>>> 响应式编程笔记(二):代码编写 博客分类: 架构 原文:Notes on Reactive Programming Part ...

  4. 读书笔记之 大型网站技术架构(核心原理与案例分析)

    前言 坚持看了十几天的书,终于完成了毕业后第一次静下心来,利用业务时间看书并做笔记的成就了.废话不多说,这回看的是一直很膜拜的李智慧大神写的大型网站技术架构-核心原理与案例分析. 简短的读后感 极其推 ...

  5. 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)

    [Unity学习笔记]b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别) 自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难 ...

  6. 【阅读笔记】Java游戏服务器架构实战

    [阅读笔记]Java游戏服务器架构实战 书籍链接:Java游戏服务器架构实战 作者提供的源码链接:kebukeYi / book-code 这里对书籍中比较重要的知识点(精华部分)进行摘录(总结) 文 ...

  7. 【大厂面试】面试官看了赞不绝口的Redis笔记(二)

    文章目录 说明 四.Redis的其他功能 (一)慢查询 (二)pipeline (三)发布订阅 (四)Bitmap (五)HyperLogLog (六)GEO 五.Redis持久化的取舍和选择 (一) ...

  8. python标识符最大可能长度_Opencv-Python学习笔记(二)

    2. 使用OpenCV3处理图像 2.1 不同色彩空间的转换 OpenCV中有数百种关于在不同色彩空间之间转换的方法. 三种常用色彩空间:灰度.BGR.HSV(Hue色调,Saturation饱和度, ...

  9. 谷粒商城--秒杀服务--高级篇笔记十二

    谷粒商城–秒杀服务–高级篇笔记十二 1.后台添加秒杀商品 未配置秒杀服务相关网关 1.1 配置网关 - id: coupon_routeuri: lb://gulimall-couponpredica ...

最新文章

  1. OSPF有五种报文,hello,dd,lsr,lsu,lsack
  2. 4*4按键扫描程序c语言,【资料】单片机4*4矩阵键盘扫描程序(c语言+汇编语言2个版本)...
  3. MPLS服务采购面临哪些挑战?
  4. Wdows server 2003 ipv6下IP和 IIS的 WEB/ FTP设置
  5. python多线程多进程
  6. python list转换成array_一文掌握Python【不定期更新】
  7. Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)【Dalston版】
  8. SPOJ Problem 22:Triangle From Centroid
  9. 判断用户是否开启定位功能 / 判断用户是否为应用程序开启定位功能
  10. JDK动态代理执行过程分析
  11. 统计学怎么求加权指数_统计学课程作业(统计指数)
  12. 2的17次方java中表示什么,2的17次方(11的余数是多少)
  13. 2009-2019年五级(到村/居委会)行政区划代码数据
  14. Cousera- software security
  15. ITSM系统_CMDB设计_业务要件
  16. n11mysql表设计_n11(n11数据库管理工具)
  17. (十四)商品详情页实现
  18. Photoshop使用背景图层的方法
  19. 毕业设计论文选题系统系统用例图_毕业设计论文选题系统
  20. 窃密软件访问的文件和注册表

热门文章

  1. ai人工智能_药物发现中的人工智能
  2. Poemscape|Beta阶段事后诸葛亮
  3. 等待时间 single-task message
  4. 查看Linux版本,内核等信息
  5. Linux系统查看版本
  6. xxe漏洞浅谈以及复现
  7. 小米miui查看连接过已保存的密码方法
  8. node.js实现图片裁剪+获取图片大小+加logo水印
  9. matlab取矩阵元素的模,matlab – 提取矩阵元素
  10. C# AutoMapper的使用