GPU并行计算

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

IntelligentInformationProcessingandComputingLaboratory智能信息处理与计算实验室2011年12月3日GPU并行计算:Jacket&Matlab靖稳峰wfjing@mail.xjtu.edu.cn智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryGPU并行计算技术主要内容Jacket介绍Jacket实例智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory绍介一、GPU并行计算原理1CPU&GPUCentralProcessingUnit,CPU是一台计算机的运算核心和控制核心,由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory每18个月增加50-100%微处理器主频提高必然存在极限如今主频之路已经走到了拐点,桌面处理器的主频在2000年达到了1GHz,2001年达到2GHz,2002年达到了3GHz。但在11年之后,我们仍然没有看到4GHz处理器的出现。4044(1971年,1MHz)→PentiumV(2000年,1GHz;2005年,3GHz)追逐时钟频率的提高绍介一、GPU并行计算原理随着功率增大,散热问题也越来越成为一个无法逾越的障碍。据测算,主频每增加1G,功耗将上升25瓦,而在芯片功耗超过150瓦后,现有的风冷散热系统将无法满足散热的需要。3.4GHz的奔腾四至尊版,晶体管达1.78亿个,最高功耗已达135瓦。实际上,在奔腾四推出后不久,就在批评家那里获得了“电炉”的美称。时钟频率的追逐智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory多核CPU的产生面对主频之路走到尽头,Intel和AMD开始寻找其它方式用以在提升能力的同时保持住或者提升处理器的能效,而最具实际意义的方式是增加CPU内处理核心的数量。2010年,桌面CPU进入到多核心/多线程时代,传统的双核/双线程CPU已沦为入门产品。回顾2010年的CPU市场,Intel和AMD均发布了六核心CPU,开启了桌面六核心时代。Corei3/i5/i7是Intel今年的主力产品.随着主频的增加,处理器产生的热量很快会超过太阳表面。即便是没有热量问题,其性价比也令人难以接受,速度稍快的处理器价格要高很多。一、GPU并行计算技术智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory多核CPU的应用模式是一个程序采用了线程级并行编程,程序在运行时可以把并行的线程同时交付给多个核心分别处理,因而程序运行速度得到极大提高。例如专业图像处理程序、非线视频编缉程序、动画制作程序或科学计算程序等。日常应用程序,例如Office、IE等,同样也是采用线程级并行编程,可以在运行时同时调用多个线程协同工作,所以在多核处理器上的运行速度也会得到较大提升。多核并不能对高性能计算带来深刻的革命一、GPU并行计算技术智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory集群(Cluster):MPI(消息传递)并行计算需要专门环境,投资大,运行成本高P/CP/CP/C…定制/标准网络LMLMLMCluster,物理/逻辑上多地址空间一、GPU并行计算技术智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryOpenComputingLanguage1.Thread指的是一个线程,它是最基本的执行单位;2.Block指的是一组合作进程的**,它们可以通过sharedmemory通信;3.Grid指的是一个内核函数的线程总和,它由block块组成;4.Warp指硬件层的线程并行度,也就是说指令的并行宽度,NVIDIA为了上下兼容硬件因此一般取值为32;显卡图像编程DirectX11(微软)OpenGL2007CUDAOpenGL(OpenGraphicsLibaray,SGI,1992)2010OpenCLOpenComputingLanguage一、GPU并行计算技术智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryNVIDIATesla2050CUDA核心数量448个CUDA核心频率1.15GHz双精度浮点性能(峰值)515Gflops单精度浮点性能(峰值)1.03TFlops专用存储DDR53GB存储器接口384位存储器带宽144GB/s系统接口PCI-Ex16Gen2DDR3内存带宽22.5GHz/s一、GPU并行计算技术智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryNVIDIAC2050,C2075一、GPU并行计算技术智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory2CUDA&OpenCLCUDA,ComputeUnifiedDeviceArchitecture是显卡厂商NVidia推出的运算平台。一、GPU并行计算技术智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryCUDAC/C++,Fortran代码效率高,但算法实现太为复杂智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryJacket基于CUDA,与MATLAB无缝连接JACKET与MATLAB的用户接口整合,使用JACKET的方式与MATLAB一样。JACKET的数据类型与MATLAB同样多。GPU函数(单双精度的线性代数函数、信号处理、图像处理)直接使用。GPU数据的图形功能非常方便。二、JACKET智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory进程1(线程1)发送信息进程2(线程2)接收信息传统的串行计算,分为“指令”和“数据”两个部分,并在程序执行时“独立地申请和占有”内存空间,且所有计算均局限于该内存空间。并行计算将进程(线程)相对独立的分配于不同的处理器(核)上;进程间(线程)相互交换信息(通信、同步和聚集)。进程1进程2串行计算与与并行计算智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryGPU数据类型GFOR循环GCOMPILEJACKET的GPU函数(DLA,SLA,ImageProcessingLibrary,SignalProcessingLibrary,StatisticsLibrary,GraphicsLibrary)Jacket实现GPU并行计算的方法二、JACKET智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratory1GPU数据类型二、JACKET智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryOpenComputingLanguageOpenComputingLanguageOpenComputingLanguageclear;tic;n=2*5000;X=gdouble(rand(n));Y=gdouble(rand(n));Z=X*Y;F=fft2(Z);t=toct=13.7933clear;tic;n=2*5000;X=grand(n,'double');Y=grand(n,'double');Z=X*Y;F=fft2(Z);t=toct=8.5185clear;tic;n=2*5000;X=rand(n,'double');Y=rand(n,'double');Z=X*Y;F=fft2(Z);t=toct=27.0633实例1Fourier变换加速比=27.0633/13.7933=1.9621加速比=27.0633/8.5185=3.1770二、JACKET智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryOpenComputingLanguageOpenComputingLanguageclearall;tic;NSET=5000000;X=rand(1,NSET);Y=rand(1,NSET);distance_from_zero=sqrt(X.*X+Y.*Y);inside_circle=(distance_from_zero=1);tocpi=4*sum(inside_circle)/NSETElapsedtimeis0.275403seconds.pi=3.1411clearall;tic;NSET=5000000;X=grand(1,NSET);Y=grand(1,NSET);distance_from_zero=sqrt(X.*X+Y.*Y);inside_circle=(distance_from_zero=1);tocpi=4*sum(inside_circle)/NSETElapsedtimeis0.019453seconds.pi=3.1414实例2计算圆周率加速比=0.275403/0.019453=14.1574二、JACKET智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryOpenComputingLanguageOpenComputingLanguage2GFOR循环GFOR/GEND循环体内语句无先后顺序,各自独立地在GPU的流处理器上执行。尽量将M代码向量或矩阵化。GFORSupportedFunctions::GFORClear;n=1000000;x=grand(n,5);a=grand(1,5);d=gzeros(n,1);tic;gforii=1:nd(ii,1)=sum(abs(a-x(ii,:)).*abs(a-x(ii,:)));gend;TocElapsedtimeis0.069556seconds.clear;n=1000000;x=rand(n,5);a=rand(1,5);d=zeros(n,1);tic;forii=1:nd(ii,1)=sum(abs(a-x(ii,:)).*abs(a-x(ii,:)));end;tocElapsedtimeis2.115929seconds.加速比=2.115929/0.069556=30.4205智能信息处理与计算实验室IntelligentInformationprocessingandcomputingLaboratoryOpenC

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功