看cuda初级教程视频笔记-GPU体系架构概述

GPU是一个异构的多处理器芯片,为从图形图像处理优化

shader core 是个渲染器

work Distributer是个管理器

Execute shader执行单元就是一个完整的小处理器,有自己的取值译码单元,alu处理核心和执行上下文

CPU-style cores多了个很大数据缓存,out of order控制逻辑,分支预测,存储器的控制单元,但是这些却花了绝大部分的芯片面积和价钱

思路1:精简,减肥slimming down 

Idea#1 Remove components that help single instruction stream run fast

two cores(two fragments in parallel) 这就是双核嘛,既然两个可以做,我们也可以做四个,十六个,同事执行十六个程序片元

16 simultaneous insturctions stream 

but many fragments should be able to share an instruction stream!指令流共享,多个程序片共享指令流

思路2:增加ALU ,SIMD ,改进的处理单元,我们就可以执行向量的操作

后来两种合并,有128个程序片元同时执行(ALU),并发16路指令流

这样带来些问题,分支处理如何办?就是ifelse语句的时候,很多语句并发执行,有true和false,所以并不是每个alu在做有效的工作

SIMD处理并不总是需要显式的SIMD指令

stall停滞,怎么办,数据过来缓慢:大量的独立片元相互切换,通过片元切换换来掩藏延迟

hiding shader stalls 分配四个任务,在一个任务停滞的时候,去干些变得,这样获得较高的吞吐率,必须是独立的工作,占满等待的时间

上下文存储空间storing contexts,这个变多,变的很多,就会有好的延迟掩藏的效果

上下文切换可以软件也可以硬件管理或者同时管理

有人就这样设计出了这样个处理器,有16个核,每个核有八个ALU,一共可以有128个计算单元,理论上可以同时计算128组数据

16个核就可以承载16路指令流,每一个核就有四个上下文空间,一共就可以加载64路指令流(可以调度,不是说可以同时执行)

所以整个处理器可以执行512个程序片元


NVIDIA GeForce FTX480(fermi)有两组16SIMD的执行单元,有十五个核,分成两组,有存储空间

开普勒架构的GTX680

讲里面有多少核,多少cuda核什么的,没听很清楚


带宽是非常宝贵的资源,高端的gpu的计算能力非常强了已经,但是数据跟不上处理速度

gpu为了适应这样高的处理能力,增加了很高的带宽,虽然对计算能力来说还是有点不足,但是比cpu高了很多

做一个简单的矩阵运算呢,由于带宽的限制,计算能力是低于百分之一的,但是运行时候的时间也是高于cpu的,计算是高于cpu6倍的

所以带宽很重要,怎么在带宽上做工作,增加计算效率呢?

减少宽带需求。什么什么的

现代gpu的储存器层次结构,L1,L2,内存和上下文缓存(只读)

总结下gpu是异构的众核处理器,针对吞吐优化

高效的gpu任务具备的条件,具有成千上万的独立工作,尽量利用大量的ALU单元,大量的片元切换掩藏延迟。可以共享指令流,适用于SIMD处理。还有就是最好是计算密集的任务,通讯和计算开销比例合适,不要受制于访存带宽






















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值