CN102799416B - 面向gpu的细粒度并行应用映射方法 - Google Patents

面向gpu的细粒度并行应用映射方法 Download PDF

Info

Publication number
CN102799416B
CN102799416B CN201210244494.9A CN201210244494A CN102799416B CN 102799416 B CN102799416 B CN 102799416B CN 201210244494 A CN201210244494 A CN 201210244494A CN 102799416 B CN102799416 B CN 102799416B
Authority
CN
China
Prior art keywords
gpu
thread
turn
dimension
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210244494.9A
Other languages
English (en)
Other versions
CN102799416A (zh
Inventor
王志英
甘新标
沈立
黄立波
陆洪毅
朱琪
苏博
郑重
徐帆
魏雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210244494.9A priority Critical patent/CN102799416B/zh
Publication of CN102799416A publication Critical patent/CN102799416A/zh
Application granted granted Critical
Publication of CN102799416B publication Critical patent/CN102799416B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)

Abstract

本发明公开了一种面向GPU的细粒度并行应用映射方法,目的是解决现有映射方法计算粒度随机确定导致GPU+CPU组成的异构系统效能低和不能充分利用应用程序特征的缺陷。技术方案是构建由GPU+CPU组成的异构系统,安装GPU运行环境并启动GPU进行初始化工作,CPU负责将应用映射输入集读入内存,启动API函数将应用映射输入集传输至GPU显存,对于多维数据,先将多维数组转化成二维数组,再将二维数组像素化,最后采用GPU+CPU异构计算系统实现面向n维数据结构输入集的细粒度像素级并行应用映射。采用本发明能充分利用应用程序特征,任务划分明确,并行粒度小,能最大化CPU+GPU异构计算系统的效能,性能加速比显著。

Description

面向GPU的细粒度并行应用映射方法
技术领域
本发明涉及图形处理单元GPU(Graphics Processing Unit)体系结构领域应用映射方法,特别是一种面向GPU通用计算GPGPU(General Purposecomputing on Graphics Processing Units)的细粒度并行应用映射方法。
背景技术
所谓面向体系结构的应用映射,就是将具体的应用高效移植到特定目标体系结构的一种方法。如果不采用面向体系结构的应用映射方法,具体的应用可能不会高效运行在目标体系结构上,甚至根本就不能运行在目标体系结构上。因此,面向体系结构的应用映射方法是高性能计算体系结构研究和应用的基础。
随着科技的进步,科学应用的分支日益精细,对大规模计算的需求也日趋迫切。尽管当前高性能计算机的计算速度已达到千万亿次(PFlops,1015Flops)级别,但大量的高性能应用(如高精度气象预报和地球系统模拟研究)仍驱动着高性能计算机向着E级(EFlops,1018Flops)迈进。传统的处理器已无法满足应用对大规模计算的需求。当前GPGPU凭借其大规模并行计算能力和易编程性已成为高性能计算和科学计算应用重要的加速手段,并广泛应用于其它通用计算领域。
目前GPGPU已广泛应用于医学成像、气象预测、代数运算和分子动力学模拟等高性能计算领域。
医学成像领域:Hwu W领导的小组长期致力于通过GPGPU加速高级磁共振成像(MRI,Magnetic Resonance Imaging)重建速度以提高图像质量使得MRI技术更适用于临床应用,Hartley使用GPGPU集群来实现大规模医学成像计算,性能得到两个数量级的提升。
气象领域:由于局部地区的天气预报需要在细粒度网格上进行快速运算,Takashi等人使用GPGPU实现由日本气象局开发的下一代的天气预报模型ASUCA模型并且获得了大规模的加速比。
代数运算领域:马安国等人使用GPU+CPU异构系统加速高性能Linpack程序,通过分别采用Pinned存储模式和Pageable存储模式以对比两种存储模式对应用性能的影响。从系统的角度探索了在主机和设备上并行协作加速应用,Kerr实现了QR分解算法在GPGPU上的性能加速,Volkov等人利用GPGPU中的类向量执行部件对LU和QR分解算法实现了加速,在有限元分析方面,Komatitsch等人在NVIDIA GPGPU上实现了由地震造成的地震波传播的模拟。
分子动力学领域:Stone等人在GPGPU上实现分子轨道计算获得了125倍的性能加速,Van等人将分子动力学中的模拟计算问题映射到GPGPU上获得了一定的性能加速。
此外,GPU还广泛应用于超级计算机系统的加速处理器,2010年11月世界超级计算机TOP500排名前5位的机器中有3台机器采用CPU与GPU融合的体系结构。其中由国防科技大学计算机学院研制的采用CPU和GPU相结合的异构融合计算体系结构“天河-1A”超级计算机位列世界第一。天河-1A计算处理系统包含7168个计算结点和1024个服务结点,每个计算结点包含2路Intel CPU和一路NVIDIA GPU,每个服务结点包含2路飞腾CPU。全系统共计23552个微处理器,其中英特尔至强X5670CPU(2.93GHz、6核)14336个、飞腾-1000CPU(1.0GHz、8核)2048个、NVIDIA M2050GPU(1.15GHz、14核/448个CUDA核)7168个,CPU核共计102400个,GPU核共计100352个,峰值速度达4700TFlops,持续速度达2566TFlops。“天河-1A”已在国家超级计算天津中心投入业务运行,在石油勘探、高端装备制造、生物医药、动漫设计、新能源、新材料、工程设计与仿真分析、气象预报、遥感数据处理、金融风险分析等方面获得成功应用。
因此,面向GPU的应用映射方法就是如何将具体的应用高效移植到GPU体系结构上,以充分挖掘应用程序的并行,最大限度开发GPU强大的计算潜能。目前,被GPU编程人员广泛接受的面向GPU体系结构的应用映射方法是片段级并行。其具体步骤为:
第一步,构建由GPU+CPU组成的异构系统,具体方法为选择一款支持CUDA架构的GPU显卡(如NVidia公司的显卡),将其安装到计算机主板上的显卡PCI-E插槽,这样就完成了GPU+CPU组成的异构系统的构建,搭建成功后的GPU+CPU异构系统的微体系结构如图1所示。图1的右半部分为CPU+GPU异构系统的宏观示意图;左半部分为GPU的内部微体系结构示意图。其中CPU与GPU的数据交互通过PCI-E通道来完成。GPU的内部微体系结构主要包括GPU显存和K个流多处理器SM(Streaming Multiprocessor)处理单元,K为正整数;每个SM由m个流处理器(m为正整数)、共享存储器、常量Cache和纹理Cache组成;每个流处理器均包含多个寄存器。
第二步,安装GPU运行环境并启动GPU进行初始化工作,具体方法如下:
2.1安装对应操作系统下的GPU显卡驱动程序;
2.2安装支持对应操作系统下的NVidia GPU编程的cudatoolkit程序包;
2.3安装支持对应操作系统下的NVidia GPU编程的cudasdk程序包;
2.4将2.2和2.3安装的cudatoolkit和cudasdk程序安装路径下的include和lib文件夹路径添加到用户当前的path路径和library路径下;
2.5启动CUDA API cuInit()函数完成GPU启动并进行初始化。
第三步,CPU负责将应用映射输入集(通常是存放于磁盘等外部设备空间中的数据集)读入内存;
第四步,启动GPU数据传输应用编程接口API(Application ProgrammingInterface)函数将内存的应用映射输入集传输至GPU显存;
第五步,对传入GPU显存的应用映射输入集片段化,将应用映射输入集随机划分为多个零碎片段并尽量保持各个片段之间相互独立;假设输入集大小为size,每个零碎片段的大小为frag,则片段化后的零碎片段的总数为表示对size/frag取整,size由应用映射输入集的大小决定,frag和num由程序员随机选择。应用映射输入集的随机划分导致GPU+CPU组成的异构系统效能低。
第六步,GPU程序员负责将片段化后的零碎片段调度到GPU的一个流多处理器SM(Streaming Multiprocessor)上,GPU将不同的数据集片段以线程模式随机分派到每个流处理器上运行,一个流处理器运行一个线程,一个线程计算一个数据集片段,同一个SM内的线程组成一个线程块并共享该SM内的共享存储器。
然而,由于GPGPU体系结构的差异以及诸多高性能计算应用特征不尽相同,传统的片段级并行GPU应用映射方法虽然简单,但是在实际的工程实践中暴露出诸多缺陷,主要有:
1.片段级并行中,数据集片段大小由程序员随机选择,没有一种可遵循的规范,从而导致应用映射并行粒度过大或过小。并行粒度过大不能充分利用GPU计算资源;并行粒度过小则增加GPU计算线程之间的通信。因此,片段级并行会降低程序执行的速度,增加程序执行时间,导致GPU+CPU组成的异构系统效能低。
2.随着GPU广泛应用于医学成像、气象预测、代数运算和分子动力学模拟等高性能通用计算领域。片段级并行方法很难适应GPU应用映射呈现多样化和复杂化的特征。因此,片段级并行不能充分利用应用程序的特征,从而GPU不能充分发挥强大的计算潜能,导致GPU程序执行时间长。
发明内容
本发明要解决的技术问题是提出面向GPU的细粒度并行应用映射方法,以解决片段级并行方法计算粒度随机确定导致GPU+CPU组成的异构系统效能较低和不能充分利用应用程序特征的缺陷。
本发明的技术方案是:
第一步,构建由GPU+CPU异构计算系统,其方法与片段级并行映射方法构建GPU+CPU异构系统第一步一样;
第二步,安装GPU运行环境并启动GPU进行初始化工作,其方法与片段级并行映射方法第二步一样;
第三步,与片段级并行映射方法第三步一样,CPU负责将n维应用映射输入集Pn[M1][M2]...[Mi]...[Mn]读入内存,Pn[M1][M2]...[Mi]...[Mn]是一个n维数组,n为正整数,数组的第一维的维度(即该维的长度或该维包含元素的个数)为M1,第二维的维度为M2,……,第i维的维度为Mi……,第n维的维度为Mn;当n≥2时,n≥i≥2;
第四步,与片段级并行映射方法第四步一样,启动GPU数据传输应用编程接口API函数将内存的Pn[M1][M2]...[Mi]...[Mn]传输至GPU显存;
第五步,若n=1,转第七步;若n≥2,执行第六步;
第六步,对Pn[M1][M2]...[Mi]...[Mn]进行像素化,方法如下:
6.1n维数组归一化,即将n维数组Pn[M1][M2]...[Mi]...[Mn]转化为一个等价的二维数组。方法如下:
6.1.1计算n维数组Pn[M1][M2]...[Mi]...[Mn]包含的元素总数表示M1,M2,…,Mn连乘。
6.1.2将Pn[M1][M2]...[Mi]...[Mn]的total个元素依次赋值给二维数组P2[M1][total/M1],具体方法如下:
6.1.2.1定义循环变量m1,m2,…mn
6.1.2.2初始化m1=0;
6.1.2.3设置变量i,i≥2,按以下方法将n维数组的total个元素依次赋值给二维数组P2[M1][total/M1]:
6.1.2.3.1若m1<M1,则m2=0,转6.1.2.3.2;否则转6.1.2.3.n+1;
6.1.2.3.2若m2<M2,则m3=0,转6.1.2.3.3;否则m1加一,转6.1.2.3.1;
6.1.2.3.3若m3<M3,则m4=0,转6.1.2.3.4;否则m2加一,转6.1.2.3.2;
……
6.1.2.3.i-1若mi-1<Mi-1,则mi=0,转6.1.2.3.i;否则mi-2加一,转6.1.2.3.i-2;
6.1.2.3.i若mi<Mi,则mi+1=0,转6.1.2.3.i+1;否则mi-1加一,转6.1.2.3.i-1;
6.1.2.3.i+1若mi+1<Mi+1,则mi+2=0,转6.1.2.3.i+2;否则mi加一,转6.1.2.3.i;
……
6.1.2.3.n-1若mn-1<Mn-1,则mn=0,转6.1.2.3.n;否则mn-2加一,转6.1.2.3.n-2;
6.1.2.3.n若mn<Mn成立,则执行n维数组到二维数组的赋值操作,即循环变量mn加一,转6.1.2.3.n;否则mn-1加一,转6.1.2.3.n-1;
6.1.2.3.n+1完成n维数组到二维数组的赋值转换。
6.2对二维数组P2[M1][total/M1]进行像素化。方法如下:
假设p[s][r]表示二维数组P2[M1][total/M1]第s列第r行的元素,其中0≤s≤M1-1并且0≤r≤(total/M1)-1;对于高度为M1,宽度为total/M1的图像I,用I(s,r)表示图像第s列第r行的像素。
6.2.1初始化s=0,r=0;
6.2.2若s<M1并且r<total/M1,将二维数组第s列第r行的元素赋值给图像I第s列第r行的像素,即I(s,r)=p[s][r];
6.2.3循环变量s加一,即s=s+1;
6.2.4循环变量r加一,r=r+1;
第七步,采用GPU+CPU异构计算系统实现面向n维数据结构输入集的细粒度像素级并行应用映射,具体方法如下:
假设搭建的CPU+GPU异构系统包含K个流多处理器SM(StreamingMultiprocessor),每个SM包含m个流处理器。
7.1计算图像I的像素总数pixel,若n=1,则pixel=M1,执行7.2;若n≥2,则pixel=M1×(total/M1),执行7.2;
7.2计算异构系统包含处理器核心的总数core=m×K;
7.3若pixel≤core,启动pixel个独立的GPU线程,将每一个像素分派给一个独立的GPU线程,一个流处理器运行一个独立的GPU线程,GPU线程运行完后转7.9;若pixel>core,执行7.4;
7.4通过查询GPU属性(见GPU产品说明书)获取一个SM上可以同时运行的最大线程数tmax,通常tmax≥256;
7.5定义显然t≥m。其中min{a,b}表示取a,b中的最小者;
7.6将t个线程合并组成一个线程块,则线程块的总数为
7.7若block≤K,选中block个SM,将每个线程块分派到一个流多处理器SM上,由于t≥m,SM的m个流处理器并行启动m个线程,执行完成后再启动下一轮m个线程,直至块内的所有线程执行完(最后一轮可能是m'个线程,1≤m'≤m),执行7.9;
7.8若block>K,启动K个流多处理器SM运行K线程块,SM的m个流处理器并行启动m个线程,执行完成后再启动下一轮m个线程,直至块内的所有线程执行完(最后一轮可能是m'个线程,1≤m'≤m);然后再启动下一轮K个流多处理器SM运行K线程块,直至block个线程块全部运行完成(最后一轮可能是K'个线程块,1≤K'≤K)。
7.9GPU将处理结果返回给CPU,GPU结束运行。
采用本发明可以达到以下技术效果
1.本发明第六步对于多维数据,先将多维数组(n≥2)转化成二维数组,再将二维数组像素化,并行粒度小,GPU程序执行效率高。
2.本发明第七步每一个像素都分派给一个独立的线程去处理,任务划分简单高效,避免了传统任务划分不明确的缺陷。
3.本发明不仅实现简单,同时本发明充分利用应用程序特征(即n维应用映射输入集的特征)且将计算粒度明确为一个图像像素,所以本发明能够最大化CPU+GPU异构计算系统的效能,性能加速比显著。
附图说明
图1为背景技术所述GPU+CPU异构系统的微体系结构示意图;
图2为本发明总体流程图;
具体实施方式
采用本发明所述方法,能够实现面向n维数据结构输入集的细粒度像素级并行应用映射方法,其流程如图2所示。方法如下:
第一步,构建由GPU+CPU组成的异构系统,具体方法为选择一款支持CUDA架构的GPU显卡(如NVidia公司的显卡),将其安装到计算机主板上的显卡PCI-E插槽,这样就完成了GPU+CPU组成的异构系统的构建,搭建成功后的GPU+CPU异构系统的微体系结构如图1所示。图1的右半部分为CPU+GPU异构系统的宏观示意图;左半部分为GPU的内部微体系结构示意图。其中CPU与GPU的数据交互通过PCI-E通道来完成。GPU的内部微体系结构主要包括GPU显存和K个流多处理器SM(Streaming Multiprocessor)处理单元,K为正整数;每个SM由m个流处理器(m为正整数)、共享存储器、常量Cache和纹理Cache组成;每个流处理器均包含多个寄存器。
第二步,安装GPU运行环境并启动GPU进行初始化工作;
第三步,CPU负责将应用映射输入集(通常是存放于磁盘等外部设备空间中的数据集)读入内存;
第四步,启动GPU数据传输应用编程接口API(Application ProgrammingInterface)函数将内存的应用映射输入集传输至GPU显存;
第五步,若n=1,转第七步;若n≥2,执行第六步;
第六步,对Pn[M1][M2]...[Mi]...[Mn]进行像素化;
第七步,采用GPU+CPU异构计算系统实现面向n维数据结构输入集的细粒度像素级并行应用映射。

Claims (1)

1.一种面向GPU的细粒度并行应用映射方法,包括以下步骤:
第一步,构建由GPU+CPU组成的异构系统,其中CPU与GPU的数据交互通过PCI-E通道来完成,GPU包括GPU显存和K个流多处理器SM处理单元,每个SM由m个流处理器、共享存储器、常量Cache和纹理Cache组成;K为正整数,m为正整数;
第二步,安装GPU运行环境并启动GPU进行初始化工作;
第三步,CPU负责将n维应用映射输入集Pn[M1][M2]…[Mn]读入内存,Pn[M1][M2]...[Mi]...[Mn]是一个n维数组,n为正整数,数组的第一维的维度即该维包含元素的个数为M1,第二维的维度为M2,……,第i维的维度为Mi……,第n维的维度为Mn;当n≥2时,n≥i≥2;
第四步,启动GPU数据传输应用编程接口API函数将内存的Pn[M1][M2]...[Mi]...[Mn]传输至GPU显存;
其特征在于还包括以下步骤:
第五步,若n=1,转第七步;若n≥2,执行第六步;
第六步,对Pn[M1][M2]...[Mi]...[Mn]进行像素化,方法如下:
6.1n维数组归一化,即将Pn[M1][M2]...[Mi]...[Mn]转化为一个等价的二维数组,方法如下:
6.1.1计算Pn[M1][M2]...[Mi]...[Mn]包含的元素总数表示M1,M2,…,Mn连乘;
6.1.2将Pn[M1][M2]...[Mi]...[Mn]的total个元素依次赋值给二维数组P2[M1][total/M1],方法是:
6.1.2.1定义循环变量m1,m2,…mn
6.1.2.2初始化m1=0;
6.1.2.3设置变量i,i≥2,按以下方法将n维数组的total个元素依次赋值给二维数组P2[M1][total/M1]:
6.1.2.3.1若m1<M1,则m2=0,转6.1.2.3.2;否则转6.1.2.3.n+1;
6.1.2.3.2若m2<M2,则m3=0,转6.1.2.3.3;否则m1加一,转6.1.2.3.1;
6.1.2.3.3若m3<M3,则m4=0,转6.1.2.3.4;否则m2加一,转6.1.2.3.2;
……
6.1.2.3.i-1若mi-1<Mi-1,则mi=0,转6.1.2.3.i;否则mi-2加一,转6.1.2.3.i-2;
6.1.2.3.i若mi<Mi,则mi+1=0,转6.1.2.3.i+1;否则mi-1加一,转6.1.2.3.i-1;
6.1.2.3.i+1若mi+1<Mi+1,则mi+2=0,转6.1.2.3.i+2;否则mi加一,转6.1.2.3.i;
……
6.1.2.3.n-1若mn-1<Mn-1,则mn=0,转6.1.2.3.n;否则mn-2加一,转6.1.2.3.n-2;
6.1.2.3.n若mn<Mn成立,则执行n维数组到二维数组的赋值操作,即循环变量mn加一,转6.1.2.3.n;否则mn-1加一,转6.1.2.3.n-1;
6.1.2.3.n+1完成n维数组到二维数组的赋值转换;
6.2对二维数组P2[M1][total/M1]进行像素化,方法如下:
用p[s][r]表示二维数组P2[M1][total/M1]第s列第r行的元素,其中0≤s≤M1-1并且0≤r≤(total/M1)-1;对于高度为M1,宽度为total/M1的图像I,用I(s,r)表示图像第s列第r行的像素:
6.2.1初始化s=0,r=0;
6.2.2若s<M1并且r<total/M1,将二维数组第s列第r行的元素赋值给图像I第s列第r行的像素,即I(s,r)=p[s][r];
6.2.3循环变量s加一,即s=s+1;
6.2.4循环变量r加一,r=r+1;
第七步,采用GPU+CPU异构计算系统实现面向n维数据结构输入集的细粒度像素级并行应用映射,具体方法如下:
7.1计算图像I的像素总数pixel,若n=1,则pixel=M1,执行7.2;若n≥2,则pixel=M1×(total/M1),执行7.2;
7.2计算异构系统包含处理器核心的总数core=m×K;
7.3若pixel≤core,启动pixel个独立的GPU线程,将每一个像素分派给一个独立的GPU线程,一个流处理器运行一个独立的GPU线程,GPU线程运行完后转7.9;若pixel>core,执行7.4;
7.4通过查询GPU属性获取一个SM上可以同时运行的最大线程数tmax,tmax≥256;
7.5定义显然t≥m,其中min{a,b}表示取a,b中的最小者;
7.6将t个线程合并组成一个线程块,则线程块的总数为
7.7若block≤K,选中block个SM,将每个线程块分派到一个流多处理器SM上,由于t≥m,SM的m个流处理器并行启动m个线程,执行完成后再启动下一轮m个线程,直至块内的所有线程执行完,执行7.9;
7.8若block>K,启动K个流多处理器SM运行K线程块,SM的m个流处理器并行启动m个线程,执行完成后再启动下一轮m个线程,直至块内的所有线程执行完;然后再启动下一轮K个流多处理器SM运行K线程块,直至block个线程块全部运行完成;
7.9GPU将处理结果返回给CPU,GPU结束运行。
CN201210244494.9A 2012-07-16 2012-07-16 面向gpu的细粒度并行应用映射方法 Expired - Fee Related CN102799416B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210244494.9A CN102799416B (zh) 2012-07-16 2012-07-16 面向gpu的细粒度并行应用映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210244494.9A CN102799416B (zh) 2012-07-16 2012-07-16 面向gpu的细粒度并行应用映射方法

Publications (2)

Publication Number Publication Date
CN102799416A CN102799416A (zh) 2012-11-28
CN102799416B true CN102799416B (zh) 2014-09-17

Family

ID=47198533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210244494.9A Expired - Fee Related CN102799416B (zh) 2012-07-16 2012-07-16 面向gpu的细粒度并行应用映射方法

Country Status (1)

Country Link
CN (1) CN102799416B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020320B (zh) * 2013-01-11 2016-01-13 西安交通大学 一种基于动态搜索的运行时gpu显存级数据复用优化方法
CN103888771A (zh) * 2013-12-30 2014-06-25 中山大学深圳研究院 基于gpgpu技术的并行视频图像处理方法
CN104346318B (zh) * 2014-10-15 2017-03-15 中国人民解放军国防科学技术大学 面向通用多核dsp的矩阵乘加速方法
CN107066706B (zh) * 2017-03-27 2019-07-30 中国科学院计算技术研究所 Gpu ffma指令在双发射模式下的通量测试方法
US20190147296A1 (en) * 2017-11-15 2019-05-16 Nvidia Corporation Creating an image utilizing a map representing different classes of pixels
CN109859191B (zh) * 2019-01-31 2021-02-09 浙江工业大学 一种基于并行计算的像素筛查方法
CN111580848A (zh) * 2020-06-19 2020-08-25 上海眼控科技股份有限公司 基于wrf模式的gpu移植方法、装置、设备和存储介质
CN112084140B (zh) * 2020-09-03 2023-06-20 中国人民大学 一种异构系统中细粒度流数据处理方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814039A (zh) * 2010-02-02 2010-08-25 北京航空航天大学 一种基于GPU的Cache模拟器及其空间并行加速模拟方法
CN102541804A (zh) * 2011-12-26 2012-07-04 中国人民解放军信息工程大学 一种异构系统中多gpu互连体系结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225074B2 (en) * 2008-10-02 2012-07-17 Nec Laboratories America, Inc. Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814039A (zh) * 2010-02-02 2010-08-25 北京航空航天大学 一种基于GPU的Cache模拟器及其空间并行加速模拟方法
CN102541804A (zh) * 2011-12-26 2012-07-04 中国人民解放军信息工程大学 一种异构系统中多gpu互连体系结构

Also Published As

Publication number Publication date
CN102799416A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102799416B (zh) 面向gpu的细粒度并行应用映射方法
Zhou et al. Parallel ant colony optimization on multi-core SIMD CPUs
Tang et al. Collision-streams: Fast GPU-based collision detection for deformable models
Fang et al. Parallel data mining on graphics processors
US20140123147A1 (en) System, method, and computer program product for parallel reconstruction of a sampled suffix array
O'Neil et al. A parallel gpu version of the traveling salesman problem
CN104050706A (zh) 用于低功率图形渲染的像素着色器旁路
DE102013020966B4 (de) Leistungseffiziente Attribut-Handhabung für Parkettierungs- und Geometrie-Schattierungseinheiten
Weigel Connected-component identification and cluster update on graphics processing units
Liu Parallel and scalable sparse basic linear algebra subprograms
Weigel Monte Carlo methods for massively parallel computers
CN106971369B (zh) 一种基于gpu的地形可视域分析的数据调度与分发方法
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
Wu et al. Optimizing dynamic programming on graphics processing units via adaptive thread-level parallelism
Xu et al. Performance tuning and analysis for stencil-based applications on POWER8 processor
DE102020131666A1 (de) Skalierbare Multiplikationsbeschleunigung dünnbesetzter Matrizen unter Verwendung systolischer Arrays mit Rückkopplungseingaben
Wu et al. MIC acceleration of short-range molecular dynamics simulations
Zhou et al. A Parallel Scheme for Large‐scale Polygon Rasterization on CUDA‐enabled GPUs
Playne et al. Benchmarking GPU Devices with N-Body Simulations.
Wong et al. Efficient magnetohydrodynamic simulations on distributed multi-GPU systems using a novel GPU Direct–MPI hybrid approach
Liu et al. LSRB-CSR: A low overhead storage format for SpMV on the GPU systems
Feng et al. Accelerating Smith-Waterman alignment of species-based protein sequences on GPU
Kruliš et al. Optimizing sorting and top-k selection steps in permutation based indexing on GPUs
CN106504301A (zh) 一种通过多核cpu一一对应矢量数据的绘制方法
Siddiqui et al. Design Space Exploration of Embedded Applications on Heterogeneous CPU-GPU Platforms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140917

Termination date: 20150716

EXPY Termination of patent right or utility model