NVIDIA GPU架构与原理分析(一)——GPU简介与主流Fermi、Kepler架构GPU概述
1 GPU简介
图形处理单元GPU英文全称Graphic Processing Unit,GPU是相对于CPU的一个概念,NVIDIA公司在1999年发布GeForce256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作(主要是并行计算部分)。GPU具有强大的浮点数编程和计算能力,在计算吞吐量和内存带宽上,现代的GPU远远超过CPU。
目前NVIDIA最新的CUDA图形计算架构主要是Fermi架构和Kepler架构。

2 Fermi架构概述

上图是Fermi架构的GPU的核心架构图。基于GPU的第一代Fermi 架构拥有30亿个晶体管,512个CUDA Core。一个CUDA Core在一个时钟周期内执行一个线程(或kernel)中的一个浮点数或整数指令。512个CUDA Core是按照16个含有32个Core的SM(流式多处理器,也叫Scalar Processor,标量处理器)进行组织的。GPU拥有6个64-bit的显存分区(DRAM),因此支持384-bit的显存接口。最大支持6GB的GDDR5类型的显存容量,GPU和CPU之间通过PCI-e总线连接,千兆线程管理器负责将线程块分发到SM(流式多处理器)中。
3 Kepler架构概述
Kepler GK110由71亿个晶体管组成,速度最快,是有史以来架构最复杂的微处理器,GK110新加了许多注重计算性能的创新功能。GK110提供超过每秒 1 万亿次双精度浮点计算的吞吐量,性能效率明显高于之前的 Fermi 架构。除大大提高的性能之外,Kepler 架构在电源效率方面有 3 次巨大的飞跃,使 Fermi 的性能/功率比提高了 3 倍。
完整Kepler GK110架构包括15个SMX单元和六个64位内存控制器。每个SMX单元包含192个单精度CUDA Core、64个双精度单元(DP Unit)、32个特殊功能单元(SFU)和32个加载/存储单元(LD/ST),4 warp调度单元,8个指令分发单元。不同的产品将使用 GK110 不同的配置。例如,某些产品可能部署 13 或 14 个 SMX。

KeplerGK110的以下新功能提高GPU的利用率,简化了并行程序设计,并有助于GPU在各种计算环境中部署:
(1) Dynamic Parallelism——动态并行化
能够让 GPU 在无需 CPU 介入的情况下,通过专用加速硬件路径为自己创建新的线程,对结果同步,并控制这些线程的调度。
(2) Hyper-Q
Hyper - Q 允许多个CPU核同时在单一GPU上启动线程,从而大大提高了GPU的利用率并削减了CPU空闲时间。Hyper‐Q 增加了主机和 Kepler GK110 GPU 之间的连接总数(工作队列),允许32个并发、硬件管理的连接(与Fermi相比,Fermi 只允许单个连接)。Hyper - Q 是一种灵活的解决方案,允许来自多个 CUDA 流、多个消息传递接口(MPI)进程,甚至是进程内多个线程的单独连接。
(3) Grid Management Unit
使Dynamic Parallelism能够使用先进、灵活的GRID管理和调度控制系统。新 GK110 Grid Management Unit (GMU) 管理按优先顺序在 GPU上执行的Grid。GMU 可以暂停新 GRID 和等待队列的调度,并能中止 GRID,直到其能够执行时为止,为 Dynamic Parallelism 的运行提供了灵活性。GMU 确保CPU和GPU产生的工作负载得到妥善的管理和调度。
(4) 英伟达GPUDirect
英伟达GPUDirect能够使单个计算机内的GPU或位于网络内不同服务器内的GPU直接交换数据,无需进入CPU系统内存。GPUDirect 中的 RDMA 功能允许第三方设备,例如 SSD、NIC 和 IB 适配器,直接访问相同系统内多个 GPU 上的内存,大大降低 MPI 从 GPU 内存发送/接收信息的延迟。还降低了系统内存带宽的要求并释放其他 CUDA 任务使用的 GPU DMA 引擎。Kepler GK110还支持其他的GPUDirect功能,包括Peer-to-Peer和GPUDirect for Video。
NVIDIA GPU架构与原理分析(一)——GPU简介与主流Fermi、Kepler架构GPU概述的更多相关文章
- [转帖]万字详解Oracle架构、原理、进程,学会世间再无复杂架构
万字详解Oracle架构.原理.进程,学会世间再无复杂架构 http://www.itpub.net/2019/04/24/1694/ 里面的图特别好 数据和云 2019-04-24 09:11:59 ...
- Apache Flink:特性、概念、组件栈、架构及原理分析
2016-04-30 22:24:39 Yanjun Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtim ...
- CDN架构以及原理分析
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应 ...
- gsensor架构和原理分析【转】
本文转载自:http://blog.csdn.net/u012296694/article/details/48055491 本文主要描述了在android2.3平台G-sensor相关软硬件的体系架 ...
- Ceph 架构以及原理分析
一.架构 Ceph在一个统一的系统中独特地提供对象,块和文件存储. Ceph高度可靠,易于管理且免费. Ceph的强大功能可以改变您公司的IT基础架构以及管理大量数据的能力. Ceph提供了非凡的可扩 ...
- CPU GPU设计工作原理《转》
我知道这非常长,可是,我坚持看完了.希望有幸看到这文章并对图形方面有兴趣的朋友,也能坚持看完.一定大有收获.毕竟知道它们究竟是怎么"私下勾搭"的.会有利于我们用程序来指挥它们... ...
- GPU的工作原理
转:https://blog.csdn.net/p23onzq/article/details/79609629 在GPU出现以前,显卡和CPU的关系有点像“主仆”,简单地说这时的显卡就是画笔,根据各 ...
- 深度学习中GPU和显存分析
刚入门深度学习时,没有显存的概念,后来在实验中才渐渐建立了这个意识. 下面这篇文章很好的对GPU和显存总结了一番,于是我转载了过来. 作者:陈云 链接:https://zhuanlan.zhihu. ...
- dubbo源码解析五 --- 集群容错架构设计与原理分析
欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 博客园 Dubbo 入门之二 --- 项目结构解析 博客园 Dubbo 源码分析系列之 ...
随机推荐
- mongodb window安装学习
https://blog.csdn.net/u011692780/article/details/81223525 教程:http://www.runoob.com/mongodb/mongodb-t ...
- html css的简单学习(二)
html css的简单学习(二) <!Doctype html>告诉浏览器,这是一个html文档.lang="en" 默认是en,表示英语:zh-Hans 中文简体:z ...
- git 中遇到的问题
刚创建的github版本库,在push代码时出错: $ git push -u origin masterTo git@github.com:******/Demo.git ! [rejected] ...
- AC日记——Pupils Redistribution Codeforces 779a
A. Pupils Redistribution time limit per test 1 second memory limit per test 256 megabytes input stan ...
- Javascript 限制文本字节数
文本限制字数的问题,在实际开发中经常用到;主要问题出现在对中文的限制,下面代码就解决关于限制字节数的校验问题 以下是引用片段: /* value: 值: byteLength:数据库字节长度 titl ...
- 洛谷——P1331 海战
P1331 海战 题目描述 在峰会期间,武装部队得处于高度戒备.警察将监视每一条大街,军队将保卫建筑物,领空将布满了F-2003飞机.此外,巡洋船只和舰队将被派去保护海岸线.不幸的是因为种种原因,国防 ...
- bitShark对Android版本的支持
bitShark对Android版本的支持 bitShark是一款轻量级的Android数据抓包软件.使用该软件,可以随时随地抓取网络中的各种数据包,并进行各项分析.我们推出的bitShark手机 ...
- java三角形和菱形的打印
一.三角形的打印 package 向家康; import java.util.Scanner; public class Main { public void san(int num) { for(i ...
- mybatis ----SqlSessionManager
今天我们来看看这个类 有些写法还是很经典的 public class SqlSessionManager implements SqlSessionFactory, SqlSession { priv ...
- JDK/Java SE官方文档汇总
JDK一般是指Java SE. 1.5:https://docs.oracle.com/javase/1.5.0/docs/ 6:https://docs.oracle.com/javase/6/do ...