3、异构计算的典型应用
异构计算并不神秘,目前已渗透各个领域,不仅是PC领域,也包括了手持移动设备领域、行业领域,甚至是云计算、分布式计算领域。事实上,异构计算至少在应用端(前台)并不像它的名字这样生涩,很多应用里面,都有异构计算的身影。小到网页及视频加速,大到DNA计算、蛋白质计算、气象运算,都能和异构计算搭上关系。但都有一定的限制,如_global_函数类型限定符用于声明内核函数,只能在设备上执行,从主机调用。
3.1 AMD视频稳定技术
视频是和大家息息相关高频应用。而AMD、英特尔和NVIDIA在视频领域都有GPU加速/解码/转码技术------这一点大家都知道了。但还有些技术可能大家还不了解,比如图像稳定技术。
我们时常遇到抖动的视频,这种抖动可能源于拍摄者的手不稳,也可能是因为长焦拍摄。无论如何,AMD通过异构计算拿出了解决方案:2011年中,AMD 宣布了"Steady Video"技术,可以实时对抖动画面进行稳定化处理。不过由于缺乏播放软件的支持,该技术一直是"只闻其声,不见其形",真正的应用并不多。而在AFDS 2012上,这一技术的升级版再度出击------与去年不同的是,如今,你使用APU平台笔记本,抑或是使用带有AMD独显,就能实实在在地感受到这一技术带来的良好特性。
Steady Video是一个很典型的异构计算应用,因为它并非完全采用GPU而解放CPU资源,而是将实时的视频图像处理任务进行了智能分工,分别交给CPU 和GPU共同完成。
3.2 人脸识别
人脸识别是生物识别这个大范畴中的一类,目前广泛地运用在日常的娱乐生活中,相机拍照、摄像头人脸识别登录,甚至是目前很火的摄像头动作感应游戏,都是基于人脸识别系统的。那么,人脸识别怎么会和异构计算扯上关系的呢?
人脸识别系统后台有面部模型,而其识别工作方式可能是这样的(不同软件会有区别):先把画面分成若干区域,大家可理解为一个区域对应一个识别框。然后,针对识别框进行识别和判定。每个识别框不是完全独立的,而是有大量重复区域。也就是说,整个画面会被分成海量的区域(识别框)。工作量如此大的"重复简单劳动",让CPU来运算就很头疼了------因为它得一个一个地(特指单核CPU)比对、判定,就像跑马拉松;而GPU的核非常多,可同时对多个识别框进行比对和判定,效率大大提升。
或许有人会说:CPU速度快,可以弥补数量的不足。但人脸识别绝非图示那么简单。举例来说,如果识别框的大小设定不对(如下图),就无法正常识别到人脸。那么在完成一次全画面识别后,需让识别框变大点再从头开始------这样看来,就是恐怖的工作量了。一张1920×1080分辨率的静态图片若经多次识别框大小调整并最终找到人脸,识别(框)总量大概为4百万个!如果是动态视频(等同于人脸跟踪),每秒的运算量还要翻几十倍!很显然,这类工作是GPU的专长。同时,GPU还会引入新的算法,会将画面先分为若干独立区域,利用面部模型先排除掉完全无人脸特征的区域,然后对剩下的区域进行并行计算(识别),效率可大幅提升。
3.3星云计算
星云计算,这个词对于咱普通人可能觉得有些陌生,只知道通过各种太空望远镜和卫星拍摄的星云图、星系图好漂亮!不过宇宙中有数不清的星星,一个星系可能就有上万亿颗星星(银河系有400亿颗),而目前探知的星系就有1250亿个......
如果天文学家要演示和模拟星球的运行和分布,将一个星系图线性放大到星球图,会是多大的工作量呢!?很显然,内核不多的CPU干这个活儿是难以想象的。拥有上千流处理器的GPU干起来效率就高多了。通过GPU的加速,可以实现多至数百万个运算星体的的处理工作,图像缩放时可达60帧/秒,观看者完全感觉不到停顿。
当然,如果纯粹是GPU运算,CPU就闲着了,所以,如果能够动态结合CPU 极高的频率和GPU的并行运算能力,效率就能得到最大的提升。在这个应用中,节能不是第一要素,而是在固定的投入下发挥出最大工作效率,这也是异构计算的目的之一。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Pieces_thinking/article/details/122264574