一、测试背景:
随着GPU技术在高性能计算领域愈加强劲的发展,GPU强大的运算速度也越来越受到软件开发商、科研人员的关注,越来越多的应用程序都对GPU并行运算提供支持。在这样CPU+GPU异构运算平台异军突起的时代,浪潮率先发布了业界首款万亿次桌面超级计算机——“倚天”(以下简称浪潮“倚天”)。
浪潮“倚天”桌面超级计算机采用CPU-GPU协同计算加速架构,在相当于普通PC服务器的体积上提供了万亿次的计算性能,为大量数据并行处理、计算密集型应用提供了一种全新的超高性价比的解决方案,为科学工作者提供了桌面级的绿色、环保的个人超级计算机。
继之前“办公桌上的‘万亿次超算中心’”一文,我们介绍了“倚天”的基本架构,及在分子动力学、天体物理学两个应用的实测情况。为了继续对浪潮“倚天”在高性能计算应用中的实际性能和产品特性进行评估,本次我们进行高性能数学计算软件——Matlab的测试,对比浪潮“倚天”与X86架构服务器在实际应用环境下的计算性能,以及“倚天”对单机服务器应用的加速比(这里的浪潮“倚天”按照一万亿次计算能力配置)。
二、测试软件:
Matlab是主流的数学计算软件,广泛应用于数学运算、工程作图、建模和仿真、图像处理、信号处理与通讯及金融建模设计与分析等领域,是基于Linux和Windows下的可视化软件。传统的Matlab应用都是基于CPU为核心,将大规模数值计算和复杂图形图像处理任务交给单机或大型并行计算集群系统完成。而在浪潮“倚天”上,通过Matlab基于GPU平台的插件Jacket Engine,就可以使用GPU的超强运算能力来运行Matlab计算任务。
其中,Jacket Engine是专门针对MATLAB软件可以在GPU平台下使用的插件。Jacket Engine为Matlab引入了新的数据类型,这使得数据能够移植到GPU上运算,Jacket Engine为开发人员带来了高层接口,忽略了底层硬件架构的复杂性,并给用户带来数倍于CPU的的计算性能与可视化的友好界面。
在此我们挑选了工程与科学绘图、图形图像处理以及数值运算等应用领域的7个Matlab算例分别进行测试,对比算例在“倚天”上和X86架构服务器上的计算性能,以及“倚天”相对传统X86服务器的加速比情况。
三、测试平台:
测试的对比平台为:浪潮“倚天”与X86架构服务器,X86架构服务器采用1U双路机架式服务器,下表是对比双方的配置:
|
浪潮“倚天” |
1U服务器 |
Cpu |
C-G协同计算架构 DDR3 SATA |
E5430 2.66GHz X2 DDR2 SAS |
内存 | ||
硬盘 | ||
测试平台 |
RHEL 5.1 |
RHEL 5.1 |
在软件的部署上,浪潮“倚天”同X86架构服务器同样都使用的是Matlab 2009a 版本,并在浪潮“倚天”上安装了Jacket Engine插件。
四、测试算例及测试结果:
1. gfx_raindrop_example (实时雨滴仿真)
此算例利用了Jacket的图形工具箱,实时模拟了雨滴下落情景。
图1. 1U服务器运行结果及效果图 图2. 倚天运行结果及效果图
测试结果:在实时雨滴仿真实验中,利用1U服务器进行模拟,图像效果不真实并且不流畅,FPS(每秒渲染的帧数)平均仅为4.280894;而利用Jacket Engine引擎在GPU上进行模拟,得到了非常有真实感的图像,画面流畅,并且FPS平均达到了551.9378。此129余倍的巨大差异,无疑显示了“倚天”超强的运算能力和图形显示能力。
2. gfx_vortex_example (涡流模拟)
此算例同样利用了Jacket图形工具箱进行了三维涡流模拟。
图3. 1U服务器运行结果及效果图 图4. 倚天运行结果及效果图
测试结果:在对涡流模拟的测试中,利用倚天的CPU进行模拟,FPS均值为6.28452;而利用Jacket Engine引擎在GPU上进行模拟,FPS均值达到了89.6,GPU相对于CPU的加速比为14,并且从图像的生成的质量、真实感和实时性上来讲,“倚天”相对于1U服务器的效果要好很多。
3. fdtd_example (电磁学和地质学应用)
此算例进行了FTDT算法的模拟,FTDT算法常用在电磁学和地质学研究上。
图5. 1U服务器运行结果及效果图 图6. 倚天运行结果及效果图
测试结果:经对平面波传播模拟算例的多次测试,在CPU上模拟的平均时间为46.69355秒,而在GPU上模拟的平均时间仅为3.919423秒,因此加速比为11.9 。
4. filter2_example(图像处理滤镜)
此算例常用在数字图像处理应用中,是利用filter2进行了图像平滑的操作。
图7. 1U服务器运行结果及效果图 图8. 倚天运行结果及效果图
测试结果:经过多次测试,平均CPU模拟计算时间为6473.22毫秒,平均GPU模拟计算时间为156.7883毫秒,加速比达到41.3 。由此显示了在图形图像处理的应用上,GPU拥有的超强计算、模拟能力。
5. pi_example (圆周率计算)
π的计算是经典的数值计算算例之一,此算例利用的是Monte-Carlo算法进行计算。
测试结果:
|
Test 1(s) |
Test 2(s) |
Test 3(s) |
Test 4(s) |
Test 5(s) |
Test 6(s) |
Average(s) |
1U服务器 run time (s) |
0.00897 |
0.006549 |
0.01171 |
0.012276 |
0.010167 |
0.006554 |
0.009371 |
倚天 run time (s) |
0.000373 |
0.000373 |
0.000375 |
0.000375 |
0.000381 |
0.000379 |
0.000376 |
Speedup (CPU time / GPU time) |
14.9062 |
14.8338 |
14.7387 |
16.136 |
14.21 |
14.7757 |
24.9229 |
在上面的表格中,列出了π的计算算例分别在1U服务器上和“倚天”上的计算时间,可以看出,利用“倚天”进行π的计算相对1U服务器的计算性能提升了约25倍 。因此“倚天”不仅在与图形相关的应用上性能优越,同样在数值计算方面也要比主流配置的X86架构服务器更胜一筹。
6. fft_example (傅里叶变换)
测试结果:如图9所示为1U服务器进行傅里叶变换的结果曲线,表示随矩阵规模的增大,计算时间也随之增加,在矩阵规模为1000时的计算时间约为15毫秒。
如图10所示为在“倚天”上进行傅里叶变换的结果曲线,其中红线为基于“倚天”CPU的运行时间曲线,绿线为基于“倚天”GPU的运行时间曲线,蓝线即为相应的矩阵规模下“倚天”GPU相对于“倚天”CPU的加速比曲线。从结果显示,在矩阵规模为1000阶时,“倚天”GPU的运行时间仅为1毫秒,相比1U服务器性能提高了15倍之多。
并且我们很容易发现,随着矩阵规模的增大,“倚天”GPU计算的优势变得更加明显,相对于CPU的加速比一直处于增加的趋势。
图9. 1U服务器运行结果及效果图 图10. 倚天运行结果及效果图
7. blas_example (线性代数运算)
测试结果:如图11所示为1U服务器进行线性代数运算的结果曲线,表示随矩阵规模的增大,计算时间也随之增加,在矩阵规模为2000时的计算时间约为140毫秒。
如图12所示为在“倚天”上进行线性代数运算的结果曲线,其中红线为基于“倚天”CPU的运行时间曲线,绿线为基于“倚天”GPU的运行时间曲线,蓝线即为相应的矩阵规模下“倚天”GPU相对于“倚天”CPU的加速比曲线。从结果显示,在矩阵规模为2000阶时,“倚天”GPU的运行时间仅为50毫秒,相比1U服务器性能提高了2.8倍。
可以看到,同傅里叶变换的测试类似,随着矩阵规模的增大,利用GPU进行线性代数运算的优势更加明显,相对于CPU的加速比一直处于上升的趋势。
图11. 1U服务器运行结果及效果图 图12. 倚天运行结果及效果图
五、测试结论:
由以上涉及工程与科学绘图、图形图像处理以及数值运算等应用领域的7个Matlab算例的测试结果可以看出,“倚天”无论在计算运行时间上,或是在图像模拟的质量、真实感和实时性上,都要相比主流配置的1U服务器性能优越很多,性能加速的倍数因应用算例不同而略有差异,在几倍到几十倍不等,个别算例甚至可以提高100多倍。这样的性能加速对于研究人员无疑是个好消息,在“倚天”这样拥有超强运算能力的平台上进行科学计算和模拟,再也不用因长时间等待计算结果而苦恼了。
目前,数以万计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业应用程序中的问题。浪潮“倚天”凭借创新的协同计算加速架构,在低成本的范围内实现了计算性能万亿次的突破,并且以优化的单机产品形态,破解了系统功耗、体积、噪音、便携性等一系列难题,进一步降低了HPC的应用门槛,为高性能计算的发展开辟了新的天地。
相信GPU高性能计算技术在生命科学、工程科学、石油天然气勘探、金融、医学成像以及视频与音频处理等高性能计算领域有着广阔的应用前景,浪潮“倚天”的普及将为广大科研机构及企业带来计算性能的巨大提升,同时也为我国高性能计算的普及开拓了新的路径。