GPU协同并行计算研究
基于GPU并行计算及在模式识别中的研究

C U 与 GP P U协 调 工 作 , 行 处 理 , 大 减 少 了整 并 大 个人 脸识 别过 程 的时 间 。
20 吴 恩 华 _ 等 人 发 表 了 一 篇 关 于 GP 04年 5 ] U
通用计算综述性 的文章, 文章里介绍 了 G U 的发 P 展历史、 硬件特 点, 及在矢量运算、 矩阵相乘 、 共扼
中才支持 , 二是 由于涉及到较低层次的编程而产生
困难 。随着 硬件 的近 一 步 发 展 和 各 领 域 研 究 的 深
力。
人们开始利用 T xuesae 结合 R gs rcr— 人 , U 在 通 用计 算 方 面将 会 有 着 巨 大 的 发 展 潜 etr h dr ei e o t n GP
中 图分 类 号
GPU. as d Par le mpu i nd Re e r h i te n Re o nii n b e a l lCo tng a s a c n Pa t r c g to
Ca io e g oX a p n
( ’n Un v r i fP s s a d Te e o Xi i e st o o t n l c mm u ia i n ,Xi n 7 0 2 ) a y nc t s o ’ 1 1 1 a
Ab t a t To a d e s t e c mp t t n le f in y o a t r e o n t n h s p p r u e a a llc mp t g m e h d s rc d r s h o u a i a fi e c f p t e n r c g i o ,t i a e s s a p r l o u i t o o c i e n
gpu 并行计算基本原理。

gpu 并行计算基本原理。
GPU并行计算基本原理GPU(Graphics Processing Unit)是一种专门用于图形处理的硬件设备,但是随着计算机技术的不断发展,GPU也被应用于一些需要大量计算的领域,如科学计算、机器学习、深度学习等。
GPU并行计算是指利用GPU的并行计算能力来加速计算任务的过程。
GPU并行计算的基本原理是利用GPU的大量计算核心(CUDA核心)来同时处理多个计算任务,从而提高计算效率。
与CPU不同,GPU的计算核心数量通常是CPU的几倍甚至几十倍,因此GPU可以同时处理更多的计算任务。
此外,GPU的计算核心还具有高度的并行性,可以同时执行多个指令,从而进一步提高计算效率。
GPU并行计算的实现需要使用特定的编程模型,如CUDA (Compute Unified Device Architecture)等。
CUDA是一种基于C 语言的并行计算框架,它提供了一系列的API和工具,使得开发者可以方便地利用GPU进行并行计算。
CUDA的编程模型基于线程和块的概念,每个线程可以执行一个计算任务,而每个块则包含多个线程,可以同时处理多个计算任务。
在GPU并行计算中,数据的传输也是一个重要的问题。
由于GPU 和CPU之间的数据传输速度相对较慢,因此需要尽可能地减少数据传输的次数和数据传输的量。
一种常用的方法是将计算任务分成多个小块,每个小块在GPU上进行计算,然后将计算结果传输回CPU 进行合并。
这样可以减少数据传输的量,提高计算效率。
GPU并行计算是一种利用GPU的并行计算能力来加速计算任务的方法。
它的基本原理是利用GPU的大量计算核心和高度的并行性来同时处理多个计算任务,从而提高计算效率。
在实现上,需要使用特定的编程模型和优化方法来充分利用GPU的计算能力。
并行计算与 GPU 编程

并行计算与 GPU 编程引言随着科学技术的快速发展,计算机科学领域的并行计算和GPU编程越来越受到关注。
并行计算是指同时执行多个计算任务的能力,而GPU编程则是使用图形处理器(GPU)来进行并行计算。
在本文中,我们将探讨并行计算和GPU编程的概念、原理、优势以及应用领域。
并行计算的概念与原理并行计算是指同时进行多个计算任务的能力。
它的实现依赖于并行计算系统的架构和编程模型。
常见的并行计算系统包括多核CPU和GPU。
在多核CPU中,每个核心都可以执行独立的计算任务,并通过并行化的方式提高计算速度。
而GPU 则是一种专门设计用于图形处理的硬件,它具有大量的小型处理单元(CUDA核心),能够同时执行大量的并行计算任务。
在并行计算中,需要使用并行编程模型来实现任务的分配和调度。
常见的并行编程模型有多线程编程、消息传递接口(MPI)、数据并行和任务并行等。
多线程编程是指通过创建多个线程来并行执行计算任务,线程之间可以共享内存,实现线程间的通信和同步。
MPI是一种用于编写并行程序的通信库,可以在多台计算机上实现进程之间的通信和同步。
数据并行是一种将大规模数据划分到不同的处理器上进行计算的并行模型。
任务并行是指将大型计算任务分解为多个子任务,并在多个处理器上并行执行。
GPU 编程的概念与优势GPU编程是指使用图形处理器(GPU)进行并行计算的编程技术。
与传统的CPU相比,GPU具有更多的计算核心和更高的内存带宽,能够支持更大规模的并行计算任务。
GPU编程可以利用GPU的并行计算能力,加速各种科学计算、图像处理、机器学习等任务。
GPU编程主要有两种编程模型:图形库和通用计算。
图形库编程是指使用图形库(如OpenGL和DirectX)来进行GPU编程,主要用于图形渲染和游戏开发。
通用计算编程则是使用通用计算平台(如CUDA和OpenCL)来进行GPU编程,可以进行各种通用计算任务。
GPU编程的主要优势包括:1.高性能:GPU具有大量的计算核心和高速的内存带宽,能够并行执行大规模计算任务,提供比CPU更快的计算速度。
高性能计算中的GPU编程模型与并行算法设计

高性能计算中的GPU编程模型与并行算法设计近年来,随着计算机技术的迅速发展,高性能计算成为科学研究和工程应用中不可或缺的一部分。
为了满足这种需求,图形处理器(GPU)的使用在高性能计算领域得到了广泛应用。
GPU编程模型以其强大的并行计算能力和高性能而备受关注。
本文将探讨GPU编程模型以及在高性能计算中的并行算法设计。
一、GPU编程模型1. CUDACUDA是由NVIDIA推出的一种并行计算平台和编程模型。
它允许开发者使用C/C++语言来编写并行算法,并在GPU上执行。
CUDA编程模型的主要特点包括:(1)线程层次并行:CUDA以线程为基本的执行单元,开发者可以在CUDA代码中创建大量的线程,这些线程可以在GPU上并行执行。
CUDA支持层次化的线程组织方式,允许开发者使用线程块、线程束和线程等层次进行并行计算。
(2)内存层次结构:CUDA提供了多种内存类型,包括全局内存、共享内存和常量内存等。
开发者可以根据算法的特点和需求来合理选择内存类型,在提高计算性能的同时减少访存延迟。
(3)异步任务调度与数据传输:CUDA可以同时进行计算和数据传输等任务,充分利用GPU的计算和存储资源。
开发者可以将不同的任务分配给不同的线程块,通过异步任务调度来提高整体的执行效率。
2. OpenCLOpenCL是一种开放的异构计算框架,与CUDA类似,它提供了一种统一的编程模型来进行并行计算。
与CUDA 不同的是,OpenCL可以用于GPU、多核CPU和FPGA等不同类型的处理器。
OpenCL编程模型的主要特点包括:(1)并行执行模型:OpenCL使用基于任务的模型,允许开发者将不同的任务分配给不同的设备进行并行执行。
这种模型可以充分利用异构计算资源,提高整体的计算性能。
(2)内存管理:OpenCL提供了全局内存、本地内存和常量内存等不同的内存类型,开发者可以根据算法的特点和需求来合理选择。
此外,OpenCL还支持内存缓冲区和内存对象等概念,方便数据的传输和处理。
理解电脑显卡的多GPU并行计算能力

理解电脑显卡的多GPU并行计算能力电脑显卡的多GPU并行计算能力是指通过多个GPU(图形处理器)同时协同工作来加速计算任务的能力。
随着计算机技术的不断发展,GPU不再仅仅用于图形渲染,而是成为了进行高性能计算的重要组成部分。
本文将介绍多GPU并行计算的原理、应用以及未来的发展趋势。
一、多GPU并行计算的原理多GPU并行计算利用多个GPU同时处理计算任务,从而实现计算能力的提升。
其原理基于并行计算的思想,即将一个计算任务分解为多个子任务,然后分配给不同的GPU进行计算。
各个GPU通过高速的数据通信来协同工作,最终将计算结果进行整合。
多GPU并行计算的优势在于通过并行化处理来提高计算效率,大大缩短了计算时间。
二、多GPU并行计算的应用多GPU并行计算广泛应用于科学计算、人工智能、数据分析等领域。
在科学计算方面,多GPU并行计算可以加速复杂的模拟和仿真计算。
例如在物理学领域,科学家可以利用多个GPU并行计算来模拟宇宙的演化过程。
在人工智能方面,多GPU并行计算可以加速深度学习模型的训练过程,提高模型的精度和效率。
在数据分析方面,多GPU并行计算可以加速大规模数据的处理和分析,帮助企业快速获得有价值的信息。
三、多GPU并行计算的发展趋势随着人工智能、大数据等领域的迅速发展,对计算能力的需求也越来越高。
因此,多GPU并行计算的发展仍具有巨大的潜力和机遇。
未来的发展趋势主要体现在以下几个方面:1. 更高性能的GPU:随着芯片技术的进步,GPU的性能将不断提升。
未来的GPU将具备更多的计算单元和更高的频率,进一步提升计算能力。
2. 更高效的数据通信:多GPU并行计算离不开高效的数据通信。
未来的发展将更加注重优化GPU之间的数据传输效率,减少数据传输的延迟。
3. 更好的编程模型:多GPU并行计算的编程模型目前仍存在一定的复杂性。
未来的发展将提供更加简化的编程模型,使得普通开发人员也能够轻松编写多GPU并行计算程序。
编程中的并行计算和GPU加速技术

编程中的并行计算和GPU加速技术并行计算是指在计算过程中同时执行多个计算任务,以提高计算效率和性能。
它是一种利用多个处理单元同时工作的计算方式,有助于加快计算速度和处理大规模数据。
GPU加速技术是一种利用图形处理器(GPU)来加速计算任务的技术。
GPU是一种高度并行计算的硬件设备,相对于传统的中央处理器(CPU)具有更多的计算单元和处理能力,可以同时处理多个任务,适合并行计算。
为什么需要并行计算和GPU加速技术呢?首先,随着数据量的不断增加和计算任务的复杂化,传统的串行计算方式已经无法满足计算需求。
而并行计算可以将一个大的计算任务划分成多个小任务,分别在多个处理单元上并行执行,加快计算速度和提高整体性能。
其次,GPU具有更多的计算单元和处理能力,相对于CPU可以更快地执行并行计算任务。
通过利用GPU加速技术,可以充分利用其并行计算的优势,加快计算速度,提高计算效率,从而加快数据处理和分析的速度。
另外,随着人工智能、深度学习、机器学习等领域的发展,对计算性能的要求也越来越高。
并行计算和GPU加速技术可以极大地提高这些领域的计算效率,加速模型训练和推理过程,提高算法的准确性和可靠性。
实际应用中,很多科学计算、数据处理、图像处理、人工智能等领域都可以受益于并行计算和GPU加速技术。
例如,在科学计算领域,大规模的计算模拟、数值计算、仿真等任务需要高性能计算资源,利用并行计算和GPU加速技术可以加快计算速度,提高计算效率,更快地获取计算结果。
在数据处理和分析领域,大规模的数据处理、数据挖掘、数据分析等任务需要高性能计算资源。
通过并行计算和GPU加速技术,可以加快数据处理和分析的速度,实时地获取数据结果,提高决策的准确性和时效性。
在人工智能领域,深度学习模型的训练和推理过程需要大量的计算资源。
通过利用GPU加速技术,可以加快模型训练的速度,提高模型的准确性和性能,实现更加智能的人工智能应用。
总的来说,并行计算和GPU加速技术在提高计算效率、加快数据处理速度、优化算法性能等方面具有重要的作用。
高性能计算使用GPU和多核CPU进行并行计算

高性能计算使用GPU和多核CPU进行并行计算随着时间的推移,计算机硬件和软件技术的迅速发展,高性能计算已经成为了科学研究和工业生产中的重要组成部分。
尤其是在大数据分析、人工智能、计算机视觉等领域,高性能计算的需求更是日益增长。
在高性能计算中,GPU和多核CPU作为并行计算的主要方式,其应用范围也越来越广泛。
GPU是图形处理器,其设计初衷是为了提高计算机在图形渲染方面的性能。
但是,由于其高并行计算的特点,GPU也被广泛用于科学计算、数据分析等领域。
与传统的CPU相比,GPU可以通过数据并行的方式同时执行多个指令。
这使得在某些应用场景下,GPU可以比CPU 提供更高的计算性能。
多核CPU也是并行计算的另一种方式。
与GPU相比,多核CPU通常拥有更高的时钟频率和更多的缓存,可以更好地支持单线程的应用程序。
但是,当需要执行多线程应用程序时,多核CPU的性能不如GPU。
GPU和多核CPU的并行计算方式各有优缺点。
在实际应用中,我们需要根据应用场景选择合适的并行计算方式。
例如,GPU适用于并行计算密集型任务,而多核CPU适用于更为通用的任务。
同时,我们还需要考虑如何有效地利用GPU和多核CPU的并行计算能力。
在使用GPU进行并行计算时,需要将计算任务分解成较小的任务,并将其分配到各个GPU核心上。
这可以通过诸如CUDA、OpenCL等GPU编程框架来实现。
而在使用多核CPU进行并行计算时,可以使用诸如OpenMP、MPI等多线程编程框架。
然而,并行计算也存在一些挑战。
例如,在并行计算中如何处理数据的一致性、如何避免死锁等问题都需要仔细地考虑。
此外,在使用GPU进行并行计算时,由于GPU通常拥有大量的核心,其能耗也相对较高。
因此,如何平衡性能和能耗也成为了一个需要解决的问题。
综上所述,GPU和多核CPU的并行计算技术在高性能计算中具有重要的作用。
在实际应用中,需要根据应用场景选择合适的并行计算方式,并且合理地利用并行计算技术,以便提高计算性能和效率。
GPU并行计算技术分析与应用

GPU并行计算技术分析与应用GPU并行计算技术是一种利用图形处理器(GPU)进行计算的技术。
由于GPU具有高度并行的结构和处理能力,它可以用于加速许多科学计算、数据分析和深度学习任务。
本文将对GPU并行计算技术进行分析,并探讨其在不同领域的应用。
GPU并行计算技术的原理是利用GPU的多个计算单元同时处理大规模数据,从而实现高效的并行计算。
在GPU中,计算单元被组织成多个线程块和线程,每个线程块包含多个线程,每个线程独立执行指定的计算任务。
这种并行计算的特点使得GPU在处理大规模数据时速度非常快,比传统的中央处理器(CPU)要快很多倍。
在GPU并行计算技术的应用中,最常见的领域是科学计算。
由于科学计算通常涉及大规模的矩阵运算和数值模拟,所以GPU并行计算技术非常适合用于加速科学计算任务。
例如,在物理模拟和计算流体力学中,GPU并行计算技术能够快速地处理大规模的方程组和模拟数据,从而提高计算效率和准确性。
此外,GPU并行计算技术还可以用于加速分子动力学模拟、量子化学计算和天体物理学等领域的计算任务。
另一个重要的应用领域是数据分析。
由于现代数据分析涉及大规模的数据处理和模式识别,GPU并行计算技术能够帮助加速数据处理和模式匹配任务。
例如,在机器学习和数据挖掘中,GPU并行计算技术可以用于训练和优化神经网络模型,从而提高模型的准确性和性能。
此外,GPU并行计算技术还可以用于加速图像和视频处理、自然语言处理和推荐系统等数据分析任务。
最后,GPU并行计算技术还在深度学习领域得到了广泛应用。
深度学习依赖于大规模的神经网络模型和大量的训练数据,因此需要进行密集的计算和训练。
GPU并行计算技术能够加速神经网络的训练和推理过程,从而提高深度学习模型的训练速度和准确性。
例如,现在许多深度学习框架(如TensorFlow和PyTorch)已经支持GPU并行计算技术,可以利用GPU的并行计算能力加速深度学习任务。
总之,GPU并行计算技术是一种高效的并行计算技术,可以用于加速科学计算、数据分析和深度学习任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第38卷第3期2011年3月计算机科学ComputerScienceVol.38No.3Mar2011到稿日期:2010-04-13返修日期:2010-07-15本文受国家自然科学基金(40505023)资助。
卢风顺(1982-),男,博士生,CCF会员,主要研究方向为新型体系结构下的并行算法研究、大型数值模拟等高性能计算应用,E-mail:lufengshun@nudt.edu.cn;宋君强(1962-),男,研究员,博士生导师,主要研究方向为数值天气预报、高性能计算等。
CPU/GPU协同并行计算研究综述卢风顺宋君强银福康张理论(国防科学技术大学计算机学院长沙410073)摘要CPU/GPU异构混合并行系统以其强劲计算能力、高性价比和低能耗等特点成为新型高性能计算平台,但其复杂体系结构为并行计算研究提出了巨大挑战。
CPU/GPU协同并行计算属于新兴研究领域,是一个开放的课题。
根据所用计算资源的规模将CPU/GPU协同并行计算研究划分为三类,尔后从立项依据、研究内容和研究方法等方面重点介绍了几个混合计算项目,并指出了可进一步研究的方向,以期为领域科学家进行协同并行计算研究提供一定参考。
关键词异构混合,协同并行计算,GPU计算,性能优化,可扩展中图法分类号TP301文献标识码ASurveyofCPU/GPUSynergeticParallelComputingLUFeng-shunSONGJun-qiangYINFu-kangZHANGLi-lun(CollegeofComputerScience,NationalUniversityofDefenseTechnology,Changsha410073,China)AbstractWiththefeaturesoftremendouscapability,highperformance/priceratioandlowpower,theheterogeneoushybridCPU/GPUparallelsystemshavebecomethenewhighperformancecomputingplatforms.However,thearchitecturecomplexityofthehybridsystemposesmanychallengesontheparallelalgorithmsdesignontheinfrastructure.Accordingtothescaleofcomputationalresourcesinvolvedinthesynergeticparallelcomputing,weclassifiedtherecentresearchesintothreecategories,detailedthemotivations,methodologiesandapplicationsofseveralprojects,anddiscussedsomeon-goingresearchissuesinthisdirectionintheend.Wehopethedomainexpertscangainusefulinformationaboutsynergeticparallelcomputingfromthiswork.KeywordsHeterogeneoushybrid,Synergetic€? parallelcomputing,GPUcomputing,Performanceoptimization1引言当前,高性能计算机体系结构正处于变革期,各种新型体系结构不断涌现。
采用通用多核微处理器与定制加速协处理器相结合的异构混合体系结构成为构造千万亿次计算机系统的一种可行途径。
甚至有专家预言,今后的高性能计算平台将会成为以异构混合体系结构为主的格局。
在众多异构混合平台中,基于CPU/GPU异构协同的计算平台具有很大的发展潜力。
正由于GPU所具有的强劲计算能力、高性能/价格比和高性能/能耗比,在当今追求绿色高性能计算的时代,GPU的计算优势受到越来越多的关注。
除专业图形应用外,GPU已用于大量的通用计算问题,并形成了GPU通用计算研究领域,即GPGPU(General-purposecomputingongraphicsprocessingunits),又称GP2U。
鉴于GPU在通用计算领域的优异表现,Macedonia[1]断言GPU将成为未来计算的主流,甚至还有人将GPU的概念解释为GeneralComputingUnit。
GPU和CPU在设计思路上存在很大差异:CPU为优化串行代码而设计,将大量的晶体管作为控制和缓存等非计算功能,注重低延迟地快速实现某个操作;GPU则将大量的晶体管用作ALU计算单元,适合高计算强度(计算/访存比)的应用[2]。
在协同并行计算时,CPU和GPU应各取所长,快速、高效协同地完成高性能计算任务。
另外,除管理GPU计算任务外,CPU也应当承担一部分科学计算任务。
以“天河一号”巨型机为例,其计算结点采用IntelXeonE5540/E5450通用CPU和AMDATIRadeonHD4870x2加速GPU,计算阵列的峰值性能为214.96万亿次,加速阵列的峰值性能为942.08万亿次。
如果不发挥CPU的计算能力,则相当于损失了一台200万亿次的高性能计算机。
因此,需要充分挖掘CPU和GPU的计算潜能,使其达到高效协同的计算效果。
新型异构混合体系结构对大规模并行算法研究提出了新的挑战,迫切需要深入研究与该体系结构相适应的并行算法。
针对CPU/GPU异构混合体系结构的高性能计算平台,研究相应的协同并行计算技术,设计并实现大型科学及工程计算问题的新型并行算法,具有重大的理论和实际意义。
2CPU/GPU协同并行计算研究进展自nVidia公司在1999年提出GPU概念以来[3],随着半·5·导体技术的不断发展,芯片上集成的集体管数目不断增加,GPU峰值性能一直以超过摩尔定律的速度增加,平均每6个月翻一番。
GPU具有浮点计算能力强、带宽高、性价比高、能耗低等优点,目前已被广泛用于图形处理以外的应用中,如数值天气预报[4]、地质勘探[5]、代数计算[6,7]、分子动力学模拟[8]、数据库操作[10]、频谱变换和滤波[11,12]等。
特别是统一渲染架构发布以来,越来越多的科研人员(包括无任何图形API编程经验的科研人员)开始GPU非图形应用的研究,逐渐形成了新的GPGPU研究领域。
对于GPGPU领域的研究工作,文献[2,13-14]等优秀的综述已从GPU的发展历史、体系结构、编程模型、软件环境和成功案例等方???面进行了系统阐述。
本文仅从CPU/GPU协同并行计算的角度对国内外的研究工作进行回顾和分析。
2.1协同计算概念及GPGPU研究分类CPU/GPU协同并行计算,其关键在于如何实现两者的高效“协同”。
从国内外大量的研究工作来看,“协同”分为两个层次:1)CPU仅负责管理GPU的工作,为GPU提供数据并接收GPU传回的数据,由GPU承担整个计算任务;2)除管理GPU外,CPU还负责一部分计算任务,与GPU共同完成计算。
第一层次的“协同”比较简单,CPU与GPU间分工明确,但浪费了宝贵的CPU计算资源。
如IBM的Power7处理器具有32个核心,因此CPU也具有强大的计算能力。
可见,第二层次的“协同”是未来协同并行计算的发展方向。
目前,“协同并行计算”还没有统一的定义。
鉴于许多文献[4,8,15-16]将GPU视为加速部件或协处理器,刘钦等[5]将其定义为CPPC(co-processingparallelcomputing)。
在异构混合并行系统中,CPU和GPU都是并行计算资源,只是体系结构及计算方式不同,无须区分两者的主从关系。
因此,本文将“协同并行计算”定义为“synergeticparallelcomputing”。
CPU/GPU异构机群的组织形式通常是将一定数量的多核CPU和GPU封装到一个节点内(如图1所示),继而由若干节点互联成异构机群。
将CPU/GPU异构机群的计算资源简单抽象为三元组PG=[NC,CC,GC],各分量分别表示节点数目、每个节点的CPU数目和GPU数目;如果该机群存在节点间异构特性,那么PG定义为[NC,CC[NC],GC[NC]],各分量分别表示节点数目、相应节点的CPU数目和GPU数目。
根据参与协同计算的CPU和GPU硬件资源规模,目前国内外GPGPU研究可以划分为三类:GPU通用计算研究(PG=[1,0,G>0])、CPU/GPU协同计算研究(PG=[1,C>0,C>0])以及CPU/GPU协同并行计算研究(PG=[N>1,C>0,G>0])。
图1节点内CPU/GPU组织形式2.2GPU通用计算研究GPU通用计算研究(PG=[1,0,G>0]),其计算规模限于单个节点,计算任务完全由GPU承担,因此该“协同”属于第一层次。
由于GPU硬件以及软件开发环境的限制,早期的GPGPU研究[7,17]必须紧密结合GPU硬件细节并借助图形API来实现GPGPU程序。
随着统一架构GPU及CUDA[18]和Brook+[19]等编程模型的出现,越来越多的领域专家利用GPU加速其具体应用问题。
Liu等[20]基于CUDA研究分子动力学模拟问题;Cevahir等[21]利用GPU求解稀疏对称线性系统,并实现了混合精度的多GPU共轭梯度求解器;Chen等[22]基于CUDA实现了可支持更多的元素类型的快速排序算法,并针对GPU体系结构进行了性能优化;Igual等[22]基于GPU研究了线性代数和图像处理问题,并总结出数值算法在GPU上获得高性能应具备的特点。
2.3CPU/GPU协同计算研究CPU/GPU协同计算研究(PG=[1,C>0,C>0]),其计算任务由CPU和GPU两者共同完成,属于第二层次的“协同”,但是协同计算规模较小,仅限于单节点。
方旭东[24]基于CPU/GPU异构平台,研究了矩阵乘、LU分解和Mygrid等科学计算程序的新型并行算法,提出了3种任务划分模型及4种GPGPU程序优化策略;在单节点规模下,CPU/GPU协同并行版本的矩阵乘、LU分解和Mygrid等分别获得了CPU版本133.8倍、88.86倍和15.06倍的性能加速。
刘钦等[5]实现了非对称走时Kirchhoff叠前时间偏移的CPU/GPU协同并行计算,使其运算速度提高到单核CPU版本的100~300倍,且基于此成果开发出油气勘探地震处理CPU/GPU协同并行计算商业系统。
2.4CPU/GPU协同并行计算研究CPU/GPU协同并行计算研究(PG=[N>1,C>0,G>0]),涉及到N个节点,每个节点的C颗CPU和G颗GPU协同完成计算任务。