GPU超能力分析!为何它的算力如此之牛
发布日期:
2024-05-17 10:08:51
本文链接
https://www.idcsp.com//industry/1414.html
本文关键词
显卡的原理看似复杂,
其实一点也不简单。
显卡里面最重要的就是这块GPU
GPU跟CPU类似,
都是通过成百上千个针脚连接到PCB电路板的。
但是就是这么一块小芯片,
里面却集成了超过100亿个晶体管。
如果将芯片放大到纳米级别,
可以看到里面是一座座的高科技迷宫。
每个任务被称为一个线程。
最理想的方法是这100个任务
分配给100个核心一次处理。
问题是GPU处理的任务太庞大了。
如果需要处理100万个线程,
就要使用100万个核心,
这是不现实的。
那么我们就以线程为中心进行处理。
这里有100万个线程任务,
对应一个拥有1000个核心的GPU。
处理时,
我们需要将100万个线程
分别发送到核心的某个地方,
分配过程异常复杂。
为了方便,
现在我们将1000核心分成10个处理单元,
每个单元里面100个核心,
然后再进行任务分配。
这样虽然简单了一些,
但是依旧还是很复杂。
可以这样,
我们将100万个线程任务也进行分组,
每1000个任务一组,
一共1000组,
再进行分配的话就简单多了。
但是有个问题,
这里的每组任务里面有1000个,
而每个处理单元里面只有100个核心,
还是不能一次处理掉每组任务,
那怎么办呢?
很简单,将1000组任务再进行分组,
每100个任务打包在一起分成十个包,
一个包对应一个处理单元里面的100个核心,
从而一对一进行处理。
GPU就是以“包”为单位来处理任务的。
目前市面上比较先进的显卡,
核心数量超过1万个。
这些核心每128个分为一组,
核心组的任务也是每128个任务打包在一起,
所以一个包可以分配给一组核心来执行。
那么问题来了,
当核心执行任务时需要从内存中读取数据,
这会产生一定的延迟。
CPU解决延迟问题是
通过增加高速缓存来解决的:
当核心组在执行一个任务包时,
如果出延延迟,它并不会等待,
而是立即执行下一个任务包。
如果继续出现延迟,
它又会立即跳到下一个。
也就是说GPU的核心会不停的进行运算。
只要有活干,任劳任怨。
GPU一开始主要是为了
加速图形渲染而设计的,
但是它大规模处理问题的能力
刚好与如今高速发展的人工智能不谋而合。
人工智能一个重要技术就是深度学习,
学习过程需要输入大量的数据,
然后对其进行并行运算得出预期结果值,
而这正是GPU所擅长的,
所以GPU常用来训练AI模型。
优选机房