热门标签 | 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技术


推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • VPX611是北京青翼科技推出的一款采用6U VPX架构的高性能数据存储板。该板卡搭载两片Xilinx Kintex-7系列FPGA作为主控单元,内置RAID控制器,支持多达8个mSATA盘,最大存储容量可达8TB,持续写入带宽高达3.2GB/s。 ... [详细]
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社区 版权所有