微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > GPU、CPU:不止一字之差那么简单

GPU、CPU:不止一字之差那么简单

时间:07-12 来源:互联网 点击:

1. 引言

  自1999年NVIDIA提出GPU的概念以来,GPU的高浮点运算能力引发了不少的话题,比如GPU将取代CPU。基于GPU的特殊性,研究人员正在从事相关方面的研究,以期充分地利用GPU高运算速度。

  随着计算机图形处理硬件的又一次升级,即计算机图形处理器的升级。图形处理器的应用已成为热门的课题。

  2. GPU的功能

  GPU(Graphic ProcessingUnit)即图形处理器。1999年NVIDIA公司发布GeForce 256图形处理芯片时,首先提出GPU的概念。一块标准的GPU主要包括2D单元、3D单元、视频处理单元、FSAA(Full Scene Anti—aliasing,全景抗锯齿)单元和显存管理单元等。

  它设计的宗旨是实现图形加速,现在最主要的是实现3D图形加速,因此它的设计基本上是为3D图形加速的相关运算来优化的,如消隐、纹理映射、图形的坐标位置变换与光照计算等等。这几年GPU发展迅猛,2007年NVIDIA甚至提出“重GPU核心,轻CPU频率”的论调。这是否意味着GPU时代的到来?

  3. GPU与CPU的比较

  GPU以其高速的浮点运算能力迅速地吸引了人们的眼球。

  其计算能力到底有多大?CPU的浮点运算能力一般在10 Gflops以下(每秒可进行10亿次浮点运算),而GeForce6系列的浮点运算能力已经在40 Gflops左右,GeForce7950GX2更是达到了384Gflops;在向量计算方面能够获得比CPU高出十倍的计算效率。

  这得益于它是对图形处理量身定制。GPU并行计算的能力更是强大,它内部具有快速存储系统,NVIDIA的8800有128个处理器,此外,GPU的硬件设计能够管理数千个并行线程,这数千个线程全部由GPU创建和管理而不需要开发人员进行任何编程与管理。然而,现在GPU还是协助CPU进行图形处理,着实浪费不少其运算能力。

  值得注意的是,如此强大的计算能力具有针对性———图形计算,如Z- buffering、纹理映射与光照计算等。这类计算都是针对大量的平行数据,运算的数据量大,但是运算的类型却并不复杂,还具有类似性,计算性强但是逻辑性不强,如矩阵运算就是图形运算的典型特征。而CPU是设计用来处理通用任务的处理、加工、运算以及系统核心控制等工作,CPU的微架构是为高效率处理数据相关性不大的计算类、复杂繁琐的非计算类等工作而优化的。所以现在CPU和GPU还在自己的轨道上各司其职。

  GPU特殊的硬件架构突出了对CPU的优势:拥有高带宽的独立显存;浮点运算性能高;几何处理能力强;适合处理并行计算任务;适合进行重复计算;适合图像或视频处理任务;能够大幅度降低系统成本。

 4. GPU的现状

  GPU引发了计算机可视化的革命。处理器巨头Intel感受到GPU带来的强大的冲击力,Intel专门开发了一套面向可编程的显示计算通用架构芯片的全新架构———Larrabee架构。它能带来的效果可从英特尔公司高级副总裁兼数字企业事业部总经理———帕特·基辛格在IDF峰会上的讲话得出答案。

  “可编程的显示计算通用架构芯片是一场革命,它将颠覆持续了几十年的显卡产业,可编程的显示计算通用架构芯片虽然不会马上替代显卡,但是在三四年之后,随着我们相关技术、产品的成熟上市,显卡产业将消亡。”

  按照英特尔的观点,随着可编程的显示计算通用架构芯片的成熟,它将逐步取代GPU的地位,显卡则会慢慢被集成取代,作为独立硬件生存的空间会越来越小。

  GPU如果只是作为显卡就太浪费了,因此NVIDIA推出CUDA(Compute Unified Device Architecture统一计算设备架构),让显卡可以用于图像计算以外的目的。并对GPU的功能进行了重新的定义,CUDA是一个革命性的计算架构和计算思路,能够让GPU在消费、商务、技术等应用方面大展拳脚,解决复杂的计算问题。CUDA能够更有效地使用性能日益提升的GPU性能,有效地利用GPU的高速运算能力,配合CPU进行高性能通用计算。

  GPU和高并行处理器都在同时间赛跑,快速的向前发展以抢占未来的市场,未来处理器的速度会在这次竞争中发展到什么地步值得我们期待。

  5. GPU的应用

  GPU应用的研究围绕着高浮点运算能力,可编程性和平行运算进行。到目前为止,GPU和CUDA的配合,主要应用于商业高端运算或者超级运算。如tesla高性能计算,GPU加速Matlab高性能计算,医疗图像的生成等。

由于GPU的汇编指令比较复杂,而且对于各种版本的硬件的支持存在不统一的问题,一些高级语言(例如GLSL、HLSL)已经被一些大厂商开发出来,加快了对GPU编程的应用研究。从系统架构上看,GPU是针对向量计算进行了优化的高度并行的数据流处理器,其中包括两种流处理单元:多指令多数据流(MIM

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top