GPU的Fermi 架构与Kepler架构杂谈

Fermi 架构
Fermi架构是第一个完整的GPU架构,如图10-15所示。
图10-15 Fermi架构是第一个完整的GPU架构
Fermi架构逻辑图,如图10-15所示,具体数据如下:
1)512个加速核心,CUDA核
2)每个CUDA核心都有一个全流水线的整数算数逻辑单元ALU,和一个浮点数运算单元FPU
3)CUDA核被组织到16个SM上
4)6个384-bits的GDDR5 的内存接口
5)支持6G的全局机栽内存
6)GigaThread疫情,分配线程块到SM线程束调度器上
7)768KB的二级缓存,被所有SM共享
而SM则包括下面这些资源:
1)执行单元(CUDA核)
2)调度线程束的调度器和调度单元
3)共享内存,寄存器文件和一级缓存
每个多处理器SM有16个加载/存储单元,所以每个时钟周期内有16个线程(半个线程束)计算源地址和目的地址。
特殊功能单元SFU执行固有指令,如正弦,余弦,平方根和插值,SFU在每个时钟周期内的每个线程上执行一个固有指令。
    每个SM有两个线程束调度器,和两个指令调度单元,当一个线程块被指定给一个SM时,线程块内的所有线程被分成线程束,两个线程束选择其中两个线程束,在用指令调度器存储两个线程束要执行的指令(就像上面例子中分水果的水果一样,这里有两个班,两个班的老师各自控制的自己的水果,老师就是指令调度器)
    像第一张图上的显示一样,每16个CUDA核心为一个组,还有16个加载/存储单元或4个特殊功能单元。当某个线程块被分配到一个SM上的时候,会被分成多个线程束,线程束在SM上交替执行,如图10-16所示。
图10-16 warp指令与调度交替执行架构
每个线程束在同一时间执行同一指令,同一个块内的线程束互相切换是没有时间消耗的。
    Fermi上支持同时并发执行内核。并发执行内核允许执行一些小的内核程序来充分利用GPU,如图10-17所示。
图10-17 Fermi上支持同时并发执行内核架构
10.5.9 Kepler架构
Kepler架构作为Fermi架构的后代,有以下技术突破:
1)强化的SM
2)动态并行
3)Hyper-Q技术
技术参数也提高了不少,比如单个SM上CUDA核的数量,SFU的数量,LD/ST的数量等,如图10-18以及如图10-19所示。
图10-18 Kepler架构作为Fermi架构的后代,内存性能提升
图10-19 Kepler架构作为Fermi架构的后代,数据交互性能提升
kepler架构的最突出的一个特点就是内核可以启动内核了,这使得可以使用GPU完成简单的递归操作,流程如图10-20所示。
图10-20 kepler内核启动内核,使用GPU完成简单的递归操作
Hyper-Q技术主要是CPU和GPU之间的同步硬件连接,以确保CPU在GPU执行的同事做更多的工作。Fermi架构下CPU控制GPU只有一个队列,Kepler架构下可以通过Hyper-Q技术实现多个队列,如图10-21所示。
计算能力概览:

图10-21 Kepler架构下可以通过Hyper-Q技术实现多个队列

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/789061.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUDA编程结构、存储管理、线程管理杂谈

CUDA编程结构、存储管理、线程管理杂谈 CUDA编程结构 一个异构环境,通常有多个CPU多个GPU,他们都通过PCIe总线相互通信,也是通过PCIe总线分隔开的。所以要区分一下两种设备的内存: 1)主机:CPU及其内存 2)设备:GPU及其内存 这两个内存从硬件到软件都是隔离的(CUDA6.0 以…

Vue3实现excel文件预览和打印

预览excel 关于实现excel文档在线预览的做法,一种方式是通过讲文档里的数据处理成html,一种是将文档处理成图片进行预览。 首先我们先讲一下实现html这种方式预览的。Excel预览用的是xlsx这个库。 xlsx xlsx是一个优秀的表格处理库,是一款适用于浏览器和nodejs的开源电子表格…

计算机电源管理

在计算机电源管理中,S1, S2, S3, S4 代表不同的电源状态或睡眠状态。 了解这些状态,对计算机设备理解功耗及工作状态有很大帮助。最近公司开会,系统同事有讲S3状态功耗很低,我猜和电脑的睡眠、息屏有关。。。emmm,不懂就要学 以下是这些状态的详细说明:S1 状态(低电量等…

使用SRS实现了音视频通话,以及共享桌面的功能

引言在三年前,写智能小车的时候,当时小车上有一个摄像头需要采集,实现推拉流的操作,技术选型当时第一版用的是nginx的rtmp的推拉流,服务器的配置环境是centos,2H4G3M的一个配置,nginx的rtmp的延迟是20秒,超慢,后来研究了SRS以及ZLMediaKit这两个开源的推拉流服务器,没…

算法-动态规划-完全背包

LeetCode算法刷题 动态规划之完全背包0. 动态规划五部曲:确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组1. 完全背包问题 完全背包问题中,每个物品都有无数个,可以重复选择。二维dp数组int[][] dp = new int[n][totalWei…

Clion\+OpenCV(C\+\+版)开发环境配置教程Win/Mac

合集 - 环境配置(2)1.最全!嵌入式STM32单片机开发环境配置教学Win/Mac!!!08-282.最简最速!C++版OpenCV安装配置教程Win/Mac!!!08-28收起 Clion+OpenCV(C++版)开发环境配置教程Win/Mac 平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上…

开源活动预告|抖音集团专家聚焦电商、PB级实时场景带来数据技术分享

⌈ Apache Doris 城市行 Meetup ⌋ 第四站北京活动,正在火热报名。8 月 31 日 13:30,ApacheDoris x 字节跳动开源联合 Meetup 北京站即将开启。多位来自抖音集团的数据工程师,将聚焦电商场景、PB级实时场景,带来数据技术实战分享。现场参会名额有限,感兴趣的同学抓紧报名占…

TimeWheel算法介绍及在应用上的探索

作者:来自 vivo 互联网服务器团队- Li Fan本文从追溯时间轮算法的出现,介绍了时间轮算法未出现前,基于队列的定时任务实现,以及基于队列的定时任务实现所存在的缺陷。接着我们介绍了时间轮算法的算法思想及其数据结构,详细阐述了三种时间轮模型的数据结构和优劣性。 再次,…

再推2款底层源码调试工具ILSpy和dotPeek

ILSpy_binaries_8.2.0.7535-x64 https://github.com/icsharpcode/ILSpy/releases 和 JetBrains dotPeek 2024.2.2 https://www.jetbrains.com.cn/decompiler/ 都免费

模拟退火模型 —— 入门案例

简介 模拟退火算法(Simulated Annealing, SA) 是一种概率型全局优化算法,它受到物理退火过程的启发。在固体材料的退火过程中,材料被加热到一定温度后缓慢冷却,其内部结构逐渐趋于稳定,最终达到能量最低的平衡状态。模拟退火算法正是模仿这一过程,用于寻找数学问题中的全…

HarmonyOS SDK实况窗服务

HarmonyOS SDK实况窗服务(Live View Kit)作为一个实时呈现应用服务信息变化的小窗口,遍布于设备的各个使用界面,它的魅力在于将复杂的应用场景信息简洁提炼并实时刷新,在不影响当前其他应用操作的情况下,时刻向用户展示最新的信息动态,用户也可以点击实况窗卡片或胶囊进…

通讯协议

UART通用异步收发器,串行、全双工、异步通信总线。重点是异步,和同步相对应,意思是不需要同步的时钟,通信两端预先约定好波特率(每秒传多少bit),而不是由时钟触发的。波特率:用于描述UART通信时的通信速度,其单位为bps 即每秒钟传送的bit的数量。串口一次发送一个字节…