[显卡GPU]GPU是如何工作的?GPU工作原理,什么是并行计算?

今天给各位讲一下显卡中的GPU GPU的工作原理,GPU为何那么强大

其实GPU就是显卡的核心部件,GPU的英文全称是Graphics Processing Unit

其实GPU和CPU差不多,都是通过成百上千个针脚连接到PCB电路板的

但就是这样一块小芯片,里面却集成了超过100亿个小晶体管

如果我们的肉眼可看见这种纳米级别的东西,那么这里面的风景就类似于高科技城市,高科技迷宫

与CPU只有少数核心不同,GPU的核心能达到几千个甚至上万个

虽然GPU的核心众多,但是GPU的核心只擅长做相对简单的运算,尤其是大规模的并行计算

图片[1]-[显卡GPU]GPU是如何工作的?GPU工作原理,什么是并行计算?

GPU的作用,GPU是什么,GPU的工作原理

那么什么是并行计算?

大家都知道,图片由很多的像素点组成,GPU在渲染图片的时候,像素并不是一个接一个按顺序计算的

因为顺序计算会导致其他GPU核心不工作,都跑一边看热闹去了,计算效率会变低

所以说GPU的策略就是,谁抢到资源谁计算,计算之间相互独立 反正后面只要将算好的图片组合在一起显示出来就可以了

GPU计算原理:

比如说我们有一百个任务需要GPU去处理,每个任务被称之为一个线程

那么比较理想的方案就是,一百个任务交给一百个GPU核心一次处理

问题是GPU处理的任务台庞大了,这还只是一百个线程,就要一百个GPU核心,那一百万个线程岂不是需要一百万个GPU核心,多少有些不现实了

所以说解决方案就是以线程为中心进行处理,这里有一百万个线程任务,对标一个拥有1000核心的GPU

处理任务时,我们需要将一百万个线程分别发送到核心的某个地方,分配的过程是比较复杂的

图片[2]-[显卡GPU]GPU是如何工作的?GPU工作原理,什么是并行计算?

GPU核心性能怎么样,GPU如何进行并行计算

所以说我们往下举例子模拟

现在我们将核心分成十个处理单元,每个单元里有一百个核心 然后进行任务分配,对吧 这样是不是简化了?但是对于一百万个线程 这还是复杂了

但是如果我们将一百万个线程任务也进行分组,每一千个任务一组  一共一千组,在进行分配的话就简单多了吧

但是每组的任务有一千个,但是每个处理器单元里面只有一百个核心

这样的效率还是不能一次处理掉这些任务,那咋办?

其实也很简单,在一千组任务再进行分组,每一百个任务打包在一起,分成十个包,一个包对应一个处理单元的一百个核心 就变成了一对一处理了

显卡GPU就是以包为单位来处理这些任务的

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享