热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

CUDA学习——Chapter3(2)两种经典的GPU计算架构——Fermi和Kepler

第三章什么是Fermi架构Fermi架构是第一代完整的GPU计算架构,具有512个CUDA核心。每个CUDA核心都有一个整数算术逻辑单元(ALU&#

第三章


什么是Fermi架构

Fermi架构是第一代完整的GPU计算架构,具有512个CUDA核心。每个CUDA核心都有一个整数算术逻辑单元(ALU)和一个浮点运算单元(FPU)。每个时钟周期可以执行一个整数或浮点数指令。512个CUDA核心被分到16个SM中,因此每个SM有32个CUDA核心。Fermi架构支持多达6GB的global memory,通过PCIe总线与CPU相连。GigaThread是一个全局调度器,用来分配线程块到SM线程束调度器上。
Fermi架构

Fermi架构的GPU有一个被16个SM共享的L2缓存,大小为768K。而在上篇文章中我们知道,一个SM的结构是这样的
Fermi架构下的SM结构
现在我们就来解释一下这些部件的作用:

LD/ST单元(加载/储存单元):每一个SM有16个加载/储存单元,允许每个cycle有16个线程(线程束的一半)计算源地址和目的地址。

SFU(特殊功能单元):执行固有指令,如正弦、余弦、平方根和插值,速度为:1指令/cycle

线程束调度器和指令调度单元:当一个线程块被指定给一个SM时,所有的线程会被分成线程束。一个SM有两个线程束调度器,它们会分别选择两个线程束,再把指令从线程束发送到一个组上。组是一个概念,指的是拥有16个CUDA核心,16个LD/ST单元和4个SFU单元的一个集合。因为我们知道,在硬件底层来说,核函数都是汇编语言代码,都是由一句句的指令顺序组成的。因此每一个CUDA核心都可以被分配到某一个线程的某一条指令并进行运算,如下图所示:
组的运算直观表示
Fermi架构还支持并发内核执行,如下图所示:
Fermi架构下的内核并发


使用Fermi架构的GPU有哪些

GF 100,GF 104,GF 106,GF 108等


什么是Kepler架构

Kepler架构是英伟达于2012年推出的新的GPU架构,其与Fermi架构的最大区别是:SM单元的结构有所变化。我们先来看看Kepler架构下的SM单元是怎么样的:
Kepler架构的SM单元

我们可以看到,一个Kepler架构下的SM单元有4个线程束调度器,8个调度器。192个单精度CUDA核心,64个DP Unit(双精度单元),32个特殊功能单元以及32个LD/ST单元。

那按照我们上面分析Fermi架构的SM单元的方法一样,我们也可以根据这些数量来分析一下Kepler架构的一些性能。

一个SM单元有4个线程束调度器,也就是说在一个SM上可以同时发送和执行4个线程束。而一个组有32个SFU,32个LD/ST单元,48个CUDA核心和16个DP Unit。

首先一点很大的突破就是,从Kepler架构开始,由于引入了DP Unit,在CUDA上使用double型变量成为了可能,这使得计算可以得到的精度更高。


Kepler架构的新特性


动态并行

Kepler架构允许GPU动态并行,也就是可以在一个内核中启动一个新的内核,也就是嵌套内核。此举可以减少GPU与CPU的通信,减小工作负载。
动态并行


Hyper-Q技术

Hyper-Q技术是Kepler架构开始拥有的新技术,它可以在主机与GPU之间提供32个硬件工作队列,以减少任务在队列中阻塞的可能性。这种技术可以保证在GPU上可以有更多的并发执行,更大程度上提升GPU的整体性能。
Hyper-Q技术


推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 技嘉秀高端B450主板:不再支持第七代APU,性价比高且兼容锐龙一代和二代
    在台北电脑展上,技嘉展示了一款高端的B450主板,型号为“b450 aorus pro wi-fi”。该主板具有10+1相供电、散热片覆盖的供电区域和芯片组,以及两个m.2插槽和背部IO挡板。虽然不支持第七代APU bristol ridge,但它兼容锐龙一代和二代,且具有较高的性价比。该主板还配备了音频声卡、Wi-Fi无线网卡等功能,是一款性能出色且设计精良的主板。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
author-avatar
mobiledu2502883683
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有