前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图解GPU

图解GPU

作者头像
虚拟化云计算
发布2021-03-25 16:30:09
2K0
发布2021-03-25 16:30:09
举报
文章被收录于专栏:虚拟化云计算虚拟化云计算

这是图解系列之GPU

关注阅读更多图解

要说GPU就绕不开CPU。

以前CPU要做所有的工作,但是后来发现有一类工作,它比较简单并且需要大量的重复性操作,各操作之间又没有关联性。

于是CPU就找了一堆GPU来干这些大量重复性的简单工作。

由于图形渲染任务具有高度的并行性,所以GPU一开始就是做图形渲染的工作。

GPU内部有数量众多的计算单元,每个计算单元内只有非常简单的控制逻辑。尽管每一个单元的计算能力不如CPU,但人多力量大呀。

CPU是顺序执行的:

GPU是并行执行的:

下面我们看一下GPU的工作原理。

GPU的工作都是CPU安排的,包括图形渲染。

GPU从CPU那里得到渲染命令后,会进行一系列操作,最终把图像渲染到屏幕上,这个过程被称之为图形流水线(Graphic Pipeline)。

这个图形流水线简单说主要有以下几个过程:

顶点处理(vertex shader)

3D图形的顶点都有一个三维空间的坐标,但是我们的屏幕是二维的,GPU的计算过程实际上就是将三维的坐标数据绘制到二维屏幕上。

所以GPU需要把这些顶点在三维空间里面的位置,转化到屏幕这个二维空间里面。这个转换的操作,就被叫作顶点处理。

这样的转化都是通过线性代数的计算来进行的。这里每一个顶点位置的转换,互相之间没有依赖,可以进行并行计算。

图元组装(primitive assembly)

定点坐标映射到二维空间后,在这一步,根据这些顶点的原始连接关系还原出网格结构。

然后进行剪裁,例如如果一个三角形超出屏幕以外,例如两个顶点在屏幕内,一个顶点在屏幕外,这时我们在屏幕上看到的就是一个四边形。

最后把图元处理完成之后多边形各个顶点连起来,形成三角形面片。

栅格化(Rasterization)

显示器显示的图像是由像素组成的,GPU要将前面图元组装后的点和线转换到相应的像素点。

把一个矢量图形转换为一系列像素点的过程就称为栅格化。例如,一条数学表示的斜线段,最终被转化成阶梯状的连续像素点。

片元着色(Fragment Shader)

计算每一个像素的颜色、透明度等信息,给像素点上色。

像素操作pixel operation

像素操作阶段主要是进行一些优化处理,例如:

消除遮挡面:图像背对着我们的那些面就可以直接删除不处理了。

纹理处理:根据像素的纹理坐标和光线,查询对应的纹理值,纹理化后的图像会更加真实。

混合处理:这个就是常见的alpha blending,根据目前已经画好的颜色,与正在计算的颜色的alpha值混合,形成新的颜色。

该阶段之后,像素的颜色值被写入帧缓存中进入显示器了。

图形API

对于游戏开发人员来讲,这部分知识会被常常提及,像OpenGL、Direct3D等。

起初的GPU不可编程,只能按照固定管线执行,直到像OpenGL这种着色语言出现。

这些着色语言接口向下调用GPU驱动接口,向上为应用开发者提供API,这就是我们所熟知的:

从CPU到GPGPU

GPU起初是用来处理图像的,但是后来人们发现其并行运算原理不仅可以用在图形渲染上,也可以推广到一般的运算中。

于是GPU的功能就进行了升级,可以进行稍微复杂的工作了,并且可编程,也是就有了GPGPU,即通用图形处理器。

GPGPU其实是对GPU的一种优化,让GPU更加的具有易用性和通用型,GPU应用于AI就是GPU通用属性的一个方向,类似的方向有很多:挖矿、AI训练、HPC高性能计算等。

如果想用GPU做通用的计算,就要有更通用的编程工具。为此,很多针对GPGPU的并行计算架构就产生了,主要有两个CUDA和OpenCL。

这是图解系列之GPU

关注阅读更多图解

本文参与?腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-19,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 虚拟化云计算 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com