CUDA学习(八十五)

简介:

计算能力5.x
Architecture:
多处理器由以下部分组成:

  • 用于算术运算的128个CUDA内核(请参见算术运算吞吐量的算术指令),
  • 32个用于单精度浮点超越函数的特殊功能单元,
  • 4个warp调度器

当多处理器被执行时,它首先在四个调度器中进行分配。 然后,在每个指令发布时间,每个调度程序为其分配的一个warp指令发出一条指令,如果有的话,该指令即可执行。

多处理器具有:

  • 一个由所有功能单元共享的只读常量高速缓存,可加速驻留在设备内存中的常量内存空间的读取速度,
  • 一个24 KB的统一L1 /纹理缓存,用于缓存全局内存中的读取,
  • 计算能力5.0或96 KB共享内存的设备共享内存的64 KB共享内存用于计算能力的设备5.2。

纹理单元也使用统一的L1 /纹理缓存,实现纹理和表面存储器中提到的各种寻址模式和数据过滤。
还有一个由所有多处理器共享的L2缓存,用于缓存对本地或全局内存的访问,包括临时寄存器溢出。 应用程序可以通过检查l2CacheSize设备属性来查询L2缓存大小。
高速缓存行为(例如,读取是否高速缓存在统一的L1 /纹理高速缓存和L2中或L2中)可以使用对加载指令的修饰符以逐访问为基础部分配置。
全局内存:
全局内存访问总是缓存在L2中,而L2中的缓存与计算功能3.x的设备(参见全局内存)的行为方式相同。
只读内核整个生命周期的数据也可以通过使用__ldg()函数(请参见只读数据高速缓存加载函数)读取,将其缓存在上一节所述的统一L1 /纹理高速缓存中。 当编译器检测到某些数据的只读条件满足时,它将使用__ldg()来读取它。 编译器可能无法始终检测到某些数据的只读条件满足。 使用const和__restrict__限定符标记用于加载此类数据的指针会增加编译器检测只读条件的可能性.
对于内核整个生命周期不是只读的数据不能缓存在计算能力为5.0的设备的统一L1 /纹理缓存中。 对于计算能力5.2的设备,默认情况下,它不会缓存在统一的L1 /纹理缓存中,但可以使用以下机制启用缓存:

  • 使用PTX参考手册中所述的相应修改器,使用内联汇编执行读取;
  • 使用-Xptxas -dlcm = ca编译标志进行编译,在这种情况下,所有读取都将被缓存,但使用内联汇编使用禁用缓存的修饰符执行的读取除外;
  • 使用-Xptxas -fscm = ca编译标志进行编译,在这种情况下,所有读取都将被缓存,包括使用内联汇编执行的读取,而不管所使用的修改器如何。

当使用上面列出的三种机制启用缓存时,计算能力5.2的设备将全局内存读取缓存到统一的L1 /纹理缓存中,用于所有内核启动,除了内核启动之外,其内的线程块消耗太多的多处理器资源。 这些异常由分析器报告。
共享内存:
共享内存有32个组织,这样连续的32位字映射到连续的组。 每个bank每个时钟周期的带宽为32位。
对于一个warp的共享内存请求不会在访问同一个32位字内的任何地址的两个线程之间产生bank冲突(即使这两个地址落在同一个bank中):在这种情况下,对于读取访问, 被广播到请求线程和写入访问,每个地址仅由其中一个线程写入(该线程执行写入操作是未定义的)
timg

目录
相关文章
|
机器学习/深度学习 数据采集 数据可视化
智能食品消费行为分析:基于Python与深度学习的实现
智能食品消费行为分析:基于Python与深度学习的实现
335 7
|
Java 测试技术 数据安全/隐私保护
🚀Java零基础-continue语句详解
【10月更文挑战第3天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
546 4
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
355 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
机器学习/深度学习 数据采集 人工智能
利用AI技术提升文本分类效率
【8月更文挑战第73天】在信息爆炸的时代,文本数据的快速增长使得文本分类成为数据处理的重要环节。本文将介绍如何利用AI技术提升文本分类的效率和准确性,包括数据预处理、模型选择与训练以及结果评估等关键环节。通过实际案例的代码示例,我们将展示如何实现一个高效的文本分类系统。
|
机器学习/深度学习 自然语言处理 算法
【NPL自然语言处理】带你迅速了解传统RNN模型
【NPL自然语言处理】带你迅速了解传统RNN模型
|
Java 关系型数据库 MySQL
1、Mybatis-Plus 创建SpringBoot项目
这篇文章是关于如何创建一个SpringBoot项目,包括在`pom.xml`文件中引入依赖、在`application.yml`文件中配置数据库连接,以及加入日志功能的详细步骤和示例代码。
|
机器学习/深度学习 数据采集 算法
大数据与机器学习:数字时代的强大动力
在当今数字化时代,数据已经成为了一项宝贵的资源,而大数据和机器学习则是将其转化为实际价值的关键工具。本文将探讨大数据与机器学习的关系,以及它们如何共同推动技术、企业和社会的发展。
987 0
|
机器学习/深度学习 分布式数据库
数据结构:二叉树经典例题(单选题)-->你真的掌握二叉树了吗?(第二弹)
数据结构:二叉树经典例题(单选题)-->你真的掌握二叉树了吗?(第二弹)
909 0
|
机器学习/深度学习 数据采集 人工智能
AI在戏剧与表演艺术中的应用
AI在戏剧与表演艺术中的应用
1440 0
通过bcftools合并不同种群的vcf文件
通过bcftools合并不同种群的vcf文件