算法内存优化大师

内存优化大师  时间:2021-01-20  阅读:()

1中国科学院软件研究所杰出青年人才发展专项计划中期考核报告姓名张云泉课题名称并行算法与并行软件资助金额160万支持周期2009.
9-2013.
9资助类别应用基础所在部门并行软件与计算科学实验室研究工作进展总体情况(内容包括:已完成的科研目标、成果及其在该领域的应用和所处地位)专项计划启动2年多以来,本人在任务书确定的几个研究方向上,带领课题组成员开展了卓有成效的研究开发工作,总体进展情况如下:在国际会议和期刊上发表文章19篇,第一作者翻译译著一本.
其中在本领域著名国际会议IEEECluster2012、EuroPar2011和2012,ICPP2011和2012,IEEEICPADS2009和2011,IEEEICA3PP2012等上各发表文章一篇.
国际期刊FrontierofComputerScienceinChina(SCI)发表文章一篇.
拟投稿本领域著名国际会议CGO2013和PPoPP2013文章各一篇.
2012年2月,应美国SIAM学会邀请和全额资助,赴美国出席SIAMPP2012大会,并做大会特邀报告一次.
ISC2011和GTCAsia2011大会特邀报告各一次.
担任IEEECSE2010程序委员会共同主席.
担任本领域著名国际会议ICS2010,CSE2011,SC2011,ICPADS2012,PDCAT2012,IPDPS2012,CCGrid2012,e-Science2012,Cluster2012,CGO2013等的程序委员会委员.
担任ISC国际会议SteeringCommitteeMember.
在《计算机研究与发展》、《数值计算与计算机应用》、《软件学报》、《计算机科学》和《计算机工程》等国内一级学报、核心期刊和国内会议共发表文章29篇,申请发明专利3项,申请软件著作权8项.
申请成功国家自然科学基金重点基金一项(子课题负责人),主持国家重大专项核高基课题子课题一项,主持863高性能重大专项课题子课题3项,国防军工课题1项,对外争取总经费额达1600余万元.
主持的国家863子课题,开展地球外核热流动的大规模可扩展并行数值模拟软件平台的研究,在国产千万亿次平台天河一号A上实现了超过数万处理器核的可扩展性:从3072至24576核,并行效率达到87%,且成功尝试了120亿网格的运算规模,超过课题验收指标一个数量级,受到863重点项目专家组的好评.
在申请成功的国家重大专项核高基子课题的资助下,研制成功龙芯3新一代国产多核高性能扩展数学库CLeXMLV1.
0版和针对X86平台的国产高性能扩展数学库CASIMLV1.
0版,并取得软件著作权.
基于该课题的关键技术研发的OpenBLAS软件包已经成为国际上比较活跃的开源项目,https://github.
com/xianyi/OpenBLAS,下载量达到1676次,有若干国际知名公司开始资助该项目,逐渐取代国际知名的GotoBLAS软件包的位置.
在AMD公司的资助下开发的OpenCL版OpenCV可视化算法库,已被OpenCV官方网站接纳并合并成为开源代码的一个分支.
2本人被聘为国家自然科学基金委第十四届信息科学部专家评审组成员(2012.
6-2014.
6),中国计算机学会理事,中国软件行业协会常务理事,中国计算机学会高性能计算专业委员会秘书长,担任中国计算机学会青年计算机科技论坛学术委员会主席(2010-2011)和荣誉委员.
被中国科技大学聘为兼职教授,中国传媒大学和华南理工大学聘为兼职教授和博导.

在本人的努力下,与AMD公司成立中科院软件所与AMD"APU软件联合研究开发中心",任联合实验室主任;与美国Argonne国家实验室数学与计算机科学部(MCS)成立PPCT联合实验室(aJOINTLABFORParallelPROcessingandcomputingtechniquesResearch),任联合实验室执行主任;本课题支持毕业硕士生10名,博士研究生一名,其中一名硕士生获得优秀毕业生,本人获得优秀导师.
正指导硕士研究生八名,博士研究生六名,联合指导博士研究生两名(中科大,中国海洋大学各一名).
详细的研究进展如下:1.
基于层次存储和层次并行的新并行计算模型和并行编程模型研究1)调研国际上基于层次存储或层次并行的计算模型和编程模型研究进展,对主流并行程序设计语言的局部性设计机制进行了深入的分析和分类,总结了其优缺点,通过调研综述,把握了国内国际基于层次存储或层次并行的并行计算模型和并行编程模型的研究进展,指出了新一代并行编程语言所应具有的若干语言特点,重点提出了应综合考虑横向局部性和纵向局部性支持的设计机制的研究的观点.
图1为主流并行编程语言和面向高生产率并行编程语言在地址空间以及横向局部性的位置图,图2为Cell编程模型的横向和纵向局部性位置图.
相关研究工作整理出综述技术报告一篇.
图1编程语言的横向局部性及地址空间图2Cell编程模型的横向和纵向局部性2)提出一个新的基于延迟隐藏因子的GPU并行计算模型:针对GPU上编程和调优过程的繁琐和GPU低延迟高带宽的特性,提出了基于延迟隐藏因子的GPU计算模型,图3是GPU模型计算流程图.
图4是GPU上的Volkov矩阵乘算法在不同规模下的预测结果和实测结果图,实验结果表明了模型的正确性.
相关工作在《软件学报》发表文章一篇[11].
3图3GPU计算模型计算流程图图4模型预测值与实测数值3)提出一个新的面向层次化通信的LogGPH模型:由于大规模集群系统网络拓扑结构复杂,通信具有层次性,在分析已有BSP、LogP、DRAM(h)、Memory-LogP和HPM等并行计算模型的基础上,根据魔方等的高效能计算系统的并行体系结构特点,提出了新的带描述通信层次性参数H的LogGPH并行通信模型,用以描述大规模集群系统的通信层次性,进一步提高并行计算模型的分析精度.
用点对点和集合通信分别做了测试,图5是用LogGP和LogGPH模型在魔方上对MPI_Allgather邻居交换算法在不同配置下的预测值和实测值,结果表明引入层次性比原始模型更准确.
通过考虑通信层次,点对点的平均预测误差由原始LogGP模型的30%降低到13%.
通过考虑通信层次,Allgather的平均预测误差由原始LogGP模型的36%下降到12%.
相关工作发表在IEEECSE2010国际会议上[6].
图5魔方上对邻居交换算法采用LogGP和LogGPH模型的预测和实测值对比4)提出一个新的基于横向局部性的多核计算模型MRAM(h)RAM(h)模型扩展RAM中单层存储层次为多层,但是其存储复杂度只描述了存储层次间的数据重用,并没有考虑多核共享缓存所带来的线程间共享存储的数据共享,我们在多核上对RAM(h)进行横向扩展,同时考虑数据重用和数据共享.
RAM(h)和MRAM(h)模型的主要目的都是在实现算法时要充分考虑数据所在存储层次,尽量考虑数据重用,以提高算法的性能,MRAM(h)还要求考虑并行计算任务之间的数据共享率,尽量使得共享数据较多的任务分配的更近,也就是在更高的存储层次共享数据,此外,还要保证共享数据的访问时间相离的较近.
相关工作发表在HPCChina2011和计算机科学上.
4图6.
平台1上共享LLC横向局部性图7.
平台2上共享LLC横向局部性5)GPURoofline—一个GPU性能优化指导模型GPU程序性能优化的本质是将算法特性向底层硬件架构特征映射的过程.
因此,GPU程序的优化不仅要考虑具体算法的算法特性,还需要考虑底层硬件平台的架构特征.
GPU性能优化的这种复杂性以及底层硬件平台的日益多样性,大大提高了GPU编程,特别是实现跨平台性能移植的难度.
为此,我们将Roofline模型引入到GPU编程中,并结合GPU编程的特点,为不同的GPU硬件平台分别建立和完善了其性能优化指导模型----GPURoofline.
GPURoofline性能指导模型的主要功能是通过提供性能信息确定具体GPU程序的性能瓶颈,并给出性能优化方案:性能优化方法以及其应用次序.
为此,我们引入计算密度的概念,提出了硬件计算密度和GPUkernel计算密度的计算方法,并通过这两个计算密度的比较,将kernel分为访存密集型和计算密集型两大类.
不同类型的kernel,优化的重点不同.
同时提出,提高片访存带宽和计算资源的利用率以及数据本地化是提高GPU程序性能的主要途径.
并结合具体的硬件平台,对影响性能的主要因素进行建模,并通过Micro-Benchmark的性能测试,确定了不同硬件平台的优化空间以及不同优化方法在特定硬件平台上对性能的影响.
最后,将这些性能信息以可视化的形式表现出来,如图1所示,我们为NVIDIAC2050GPU和AMDHD5850GPU分别建立了GPURoofline模型.
图8GPURoofline模型为验证模型的有效性,我们优化了具有不同计算密度的三个算法:矩阵转置、图形拉普拉斯变换以及图像积分函数.
实现结果表明,与其初级实现版本相比,在GPURoofline模型的指导下,这些函数的性能无论是在NVIDIAC2050GPU上还是在AMDHD5850GPU上都达到了7.
8~42.
4的性能加速比.
图2展示了这三个算法在GPURoofline模型指导下,性能优化过程及加速比.
相关成果已经在本领域的著名国际会议EuroPar2012和ICA3PP2012上发表.
5图9不同算法在不同平台上的性能计算比6)图遍历中的局部性模型图算法是非规则计算的典型模式,其中图遍历是大量图论算法的基础.
由于图遍历访存模式与图结构密切相关,因此传统的,面向规则计算的重用距离预测方法并不能有效到扩展到图算法中,我们通过实验发现,对于同样大小但不同结构的图,图遍历所产生的重用距离签名有很大不同,如图所示,左边显示3个大小相同,结点度数分布相同的图,然而其图遍历的重用距离签名(右侧3个子图)却有很大不同.
这就促使我们将图的结构引入到预测模型中去.
图10三种大小相同但结构不同的图以及图遍历的重用距离我们发现,在图遍历算法中,可以提取一个我们称为结点生产序列的概念,在此序列中每个结点都只出现一次,但出现排序根据图的不同结构而不同.
例如在广度优先遍历中,结点生产序列的顺序即为按每个结点第一次被访的时间排序.
基于结点生产序列,我们提出一种结点距离的概念,为每个内存访问对应一个结点生成序列中的元素,为了获得每个内存访问的重用距离,利用经典的球箱模型将结点序列中的结点距离转化为实际内存访问的重用距离,此转换过程中将图的结构转化为球箱模型的参数,从而将图结构融入重用距离的计算中.
如下所示,式1是将结点距离VD通过球箱模型P转化为重用距离RD,而在球箱模型的计算中用到图的参数,例如式2和式3中的图边数e,结点数n.
(1)6(2)(3)实验结果如图所示,对不同规模的图,预测的重用距离与实际测试结果相近,说明模型很好的描述了图的结构.
图11模型预测是实测结果此外,我们还研究了若干扩展模型,例如结点距离分布预测,结果如图12所示;预测图遍历层数,结果如图13所示.
图12结点距离分布预测和实测结果图13图遍历层数预测和实测结果相关工作发表在本领域的著名国际会议ICPP2012上.
7)基于局部性的并行计算模型针对近几年在编程模型,算法优化,数据结构以及体系结构设计中出现的"load-and-compute"的计算模式,提出了一种局部性函数的概念,亦算法在一部分输入上能进行的最大计算次数,例如矩阵乘法的局部性函数为L(n)=2(n/3)3/2,基于局部性函数的计算模型如下:7表1并行计算模型以及基于模型的设计所用到的参数基于此计算模型,我们研究了经典的双缓冲优化方法,证明了若干定理获得了最优缓冲划分方法.
我们发现传统的等分双缓冲设计在cache较小时并不能获得最优性能,而最优的划分大小应为满足L(C/k)/(P*F)=(C-C/k)/B的k,其中k为cache划分比例.
此外,面向多核体系架构中复杂cache结构,基于并行计算模型定量地研究了共享cache和私有cache的优势,得出,结果如图1所示.
通常多核均包含多层次cache,为了研究两层cache设计,将硬件架构映射到并行计算模型得到如公式(1)所示,利用拉格朗日乘数法获得若干等式(2),表示在基于局部性的计算模型下cache体系结构的最优平衡设计.
(1)(2)图14私有cache和共享cache比较相关工作发表在本领域的著名国际会议IEEECLUSTER2012上.
2.
百万亿次高效能计算平台高可扩展基础并行算法研究;1)地球外核热流动的大规模可扩展并行数值模拟软件平台研究主持的国家863子课题,开展地球外核热流动的大规模可扩展并行数值模拟软件平台的研究,在国产千万亿次平台天河一号A上实现了超过数万处理器核的可扩展性:从3072至24576核,并行效率达到87%,且成功尝试了120亿网格的运算规模,超过8课题验收指标一个数量级,受到863重点项目专家组的好评.
2)基于GPU的Scan算法的研究.
Scan(也称Prefixsum)算法是一种简单但非常常用的基础并行算法,是并行压缩,并行基数排序,并行快速排序,并行内存分配,并行SpMV,并行BFS等其他基础算法中的重要组成部分.
现有的基于GPU的大规模Scan算法,均是分三阶段进行,各个阶段之间需要进行全局同步.
创新性的设计了一种基于GPU的无全局同步的大规模Scan算法,相较于现有算法,对于规模为N的数组,我们将Scan算法的全局内存读写从3N降到了2N.
我们设计了一种基于GPU的新型Stream-Scan算法,首先对需要Scan的数组进行分段,然后启动固定数量的Block(Work-Group)依次对每一段进行Scan,各Block内部分三阶段进行,第一阶段Reduce,第二阶段等待前一个Block的Reduce结果,第三阶段Propagate.
该算法无需全局同步,仅启动一次Kernel,不同Block之间Reduce和Scan可以同时进行,能充分利用计算单元.
同时各段数据在同一个Block中处理的时候,均存储在SharedMemory(LocalMemory)和寄存器中,无需重复从全局内存读取,将全局内存读写从3N降到了2N.
我们将算法(OpenCL实现)在NVIDIA和AMDGPU上分别进行了测试,在NVIDIATeslaC2050上,相较于开源库Cudpp(CUDA实现)最高获得了1.
74倍加速比,相较于开源库B40C(CUDA实现)最高获得了1.
26倍加速比,相较于MatrixScan(ICS'08)(OpenCL实现)最高获得了1.
54倍加速比.
在AMDHD5850上,相较于MatrixScan最高获得了1.
67倍kernel加速比,1.
9倍program(kerneltime+launchtime)加速比.
在AMDHD7970上,相较于MatrixScan最高获得了1.
51倍kernel加速比,2.
38倍program加速比.
相关工作正在撰写高水平国际会议文章,拟投稿本领域的著名国际会议PPOPP2013.
图15程序在NVIDIATeslaC2050上运行时间(关闭ECC)9图16程序在NVIDIATeslaC2050上加速比(关闭ECC)图17程序在AMDHD5850上运行时间图18程序在AMDHD5850上加速比10图19程序在AMDHD7970上运行时间图20程序在AMDHD7970上加速比3)OpenCV算法库优化OpenCV于1999年由Intel公司建立,2006年以后由著名的机器人研究实验室和技术孵化器WillowGarage提供支持.
它是一个基于BSD许可证授权发行的跨平台计算机视觉库,包括图像处理和计算机视觉方面的很多通用算法的实现.
OpenCV有C、C++和Python三个版本,支持Windows、Linux、Android和Mac系统,源代码中包含大概500个函数以及一系列使用这些函数实现的应用.
从2.
2版本开始OpenCV库中增添了gpu部分,该部分基于CUDA实现了对部分函数的GPU加速.
从2010年12月OpenCV2.
2版本发布至今,GPU(CUDA)部分不断有新的函数加入,目前为止大概有90个函数.
我们的工作是使用OpenCL将OpenCV(OpenSourceComputerVisionLibrary)库进行加速.
目前为止我们已经优化超过60个基础函数,两个典型应用Facedetection和FFT,相对于CUDA版本OpenCV,我们开发的OpenCV版本(OpenCVCL)最高达到了6.
25倍,平均1.
2倍Kernel加速比.
相较于CPU版本OpenCV,最高达到了410倍,平均74倍Kernel加速比.
我们总体上将OpenCV库中的函数划分为三类:1)基本的矩阵运算函数,如四则运算、逻辑运算、最大值最小值、矩阵求和等;2)基本图像处理函数,如图像滤波、图像缩放、图像分析等;3)复杂的图像处理算法,如运动分析与对象跟踪、模式识别等.
OpenCV中基本图像处理操作包括去噪、边缘检测、角点检测、采样与插值、色彩变换、形态学处理、直方图和图像金字塔结构等.
目前已经实现的函数中第一类34个,第二类26个,第三类2个.
其中基本图像处理函数,我们也将其分为三类:数据无关、11数据共享和数据相关.
表2展示了17个典型图像处理函数的分类.
表2典型图像处理函数分类(17个)类别函数名功能数据共享blur图像模糊Sobel使用Sobel算子计算图像差分Scharr使用Scharr算子进行图像差分GaussianBlur高斯卷积Laplacian拉普拉斯变换erode腐蚀dilate膨胀morphologyEX基于erode和dilate的高级形态变换cornerHarrisHarris角点检测cornerMinEigenVal计算梯度矩阵的最小特征值进行角点检测数据无关Threshold对图像元素进行固定阈值操作copyMakeBorder复制图像并制作边界warpAffine对图像做仿射变换warpPerspective对图像进行透视变换Resize图像大小变换数据相关integral计算积分图像equalizeHist灰度图像直方图均衡化数据无关函数Threshold,Resize优化:Threshold函数对单通道图像应用固定阈值操作,将源图像中(x,y)位置的像素点与固定阈值进行比较,根据不同的阈值类型,目标图像(x,y)位置的像素点分别取相应的值.
函数的典型应用是对灰度图像进行阈值操作得到二值图像,或者是去掉噪声,例如过滤很小或很大象素值的图像点.
优化主要通过访存对齐和向量化写回来进行,下图展示了优化结果.
图21Threshold优化结果Resize函数对图像进行大小变化,即进行图像缩放操作.
缩放操作常用的插值方法有三种:最近邻插值(INTER_NEAREST)、双线性插值(INTER_LINEAR)和立方插值(INTER_CUBIC).
主要通过向量化插值和图像对象插值两种方法进行优化.
图22和图23展示了优化结果.
12(a)最近邻插值两种方法性能对比(b)双线性插值两种方法性能对比图22向量化和图像对象两种方法性能比较(a)最近邻插值两种方法Cache命中率对比(b)双线性插值两种方法Cache命中率对比图23向量化和图像对象两种方法Cache命中率比较数据共享函数优化:Blur算法是图像滤波中最基本的一种,其作用是对图像进行模糊处理,算法的基本原理是把图像中某点的值用该点周围一块区域的平均值来替代.

主要优化方法为利用localmemory实现数据重用.
(a)相对CPU版blur的加速比(b)相对NVIDIANPP版blur函数的加速比图24Blur函数加速比数据相关函数Integral优化:Integral函数用于计算图像积分,我们主要采取了三个方法对该函数进行了优化:(1)对列实施前缀和操作,按行写回存储.
(2)一个线程组计算一整列.
(3)一个线程组同时计算两列.
通过这些方法的优化,我们取得了较好的加速比,相对于CPU版本函数最多获得了11.
6倍加速,相对于CUDA函数,最佳获得了1.
5倍加速.
4)Viola-Jones人脸检测算法的研究.
13该算法是当前最高效和应用最为广泛的人脸检测算法.
其算法本质就是首先由Haar特征值组成弱分类器,然后由一系列的弱分类器构成一个级联分类器,探测窗口利用这个级联分类器对图片中的人脸进行检测,通过每一级分类器的检测,将图片中最可能不是人脸的部分去除,而将主要计算都集中在最有可能是人脸的地方,从而大大减少了算法的总计算量.
图25说明了这个算法的过程:图25Viola-Jones人脸检测算法从算法上看,Viola-Jones算法非常适合运行在GPU上,因为这个算法体现了良好的并行性.
因为没有数据相关性,每一个Haar特征值的计算以及每一个探测窗口的检测都可以并行执行.
另外,为了能检测到图片中不同大小的人脸,图片会按照一定的比例进行放缩,而对这些放缩图片的检测也可以并行执行.
然而,仅仅根据这些并行性将人脸检测算法移植到GPU,并不能达到期望的加速比.
因为这个算法有一个非常不适合在GPU运行的特征---线程间的负载不均衡.
如图2所示,我们假设有9个探测窗口,每一个GPU线程负责处理一个窗口,经过4级级联分类器的检测,最终只有一个窗口检测到人脸.
如图所示:在进行第一级检测时,9个线程都处于忙碌状态.
然而,在完成第一级检测后,探测窗口(0,0),(1,1)检测为不是人脸.
那么在进行第二级检测时,负责这两个窗口的线程将处于空闲状态,其他七个线程依然是忙碌状态.
这就造成了线程间的负载不均衡.
最为严重的是,在最后一级检测中,只有一个线程处于忙碌状态,其他8个线程都空闲.
这样就大大降低了GPU上计算资源的利用率,从而大大影响了该算法在GPU上性能.
图26人脸检测中线程间的负载不均衡我们对这种会引起线程间负载不均衡的算法称之为不规则算法.
而对不规则算法在GPU上的优化,我们提出了5种优化策略:(1)粗工作粒度(warp/wave-front)传统GPU编程模型采用work-item作为最小并行执行单元,在本算法中我们采用warp/wavefront作为最小并行执行单元.
其实现方法就是每一个work-group只包含一个warp/wavefront.
采用这种方法的好处就是可以消除本地同步,从而减少本地同步操作的开销.
同时这也是后面即将介绍得本地队列的基础.
(2)UberKernel因为要检测图片中不同大小的人脸,我们需要对图片按照一定的比例进行放缩,然14后再对这些放缩图片进行一一检测.
然而,这么做的一个最大的缺点就是增加了全局同步开销.
因此,我们引入了UberKernel的概念.
其原理就是将这些放缩图片放在同一块全局内存上,由同一个kernel对这些图片进行统一处理,如图27所示:图27UberKernel采用UberKernel,主要有3点好处:一是消除了全局同步开销;二是减少了kernel的启动时间;三是减少了计算资源的浪费.
(1)Persistentthread图28说明了在GPU程序中,普通线程和Persistentthread的区别:对于普通线程,其生命周期为启动;获取数据、计算并返回计算结果;然后退出.
而对于Persistentthread来说,当计算完第一次数据后,并没有退出,而是判断当前程序中,是否还有未处理的数据,如有,则继续执行,没有则退出.
这也是后面介绍得本地队列的基础.

图28普通线程和Persistentthread的区别(2)本地队列在该算法中,我们采用本地队列,消除warp/wavefront中线程的负载不均衡,如图29所示:图29本地队列我们为每一个warp/wavefront在本地内存中建立一个队列,用于存储该warp/wavefront中线程所要处理的探测窗口,并将这些窗口按照一定的粒度(2,4,8或16)进行分组.
每次从队列中取出一组,由warp/wavefront内的线程统一处理.
如果该窗口检测为不是人脸,直接丢弃;否则进入队列,等待下一级分类器的处理.
这样,经过N15级分类器处理后,队列中剩余的窗口几位人脸.
(1)全局队列本地队列仅仅解决了warp/wavefront内部的线程负载不平衡问题.
我们引入全局队列解决warp/wavefront间的负载不平衡问题.
目前全局队列的实现仅仅是一个初级的实现,即:首先将所有的探测窗口放入一个全局队列中,并按照32或者64进行分组;其次将这些分组平均分配给所有的warp/wavefront;最后,每个warp/wavefront独立处理所分配的探测窗口.
全局队列的初级实现并没有采用负载均衡的方法,采用作业偷取(taskstealing)或者作业给予(taskdonation)方法实现最终的负载平衡将是下一步的工作.
通过采用这五种优化方法,我们在3个GPU平台上都达到了较高的加速比.
图6说明了人脸检测函数在不同平台上对不同图片的加速比.

我们选取了9张不同大小、不同背景、不同人脸数目的图片作为我们的测试库.
如图30所示,我们选用Intel(R)Xeon(R)X55504核CPU和AMDPhenomⅡX49404核CPU作为我们的CPU测试平台.
选用AMDHD5850,AMDHD7970和NVIDIAC2050作为我们的GPU测试平台.
实现结果表明,我们在AMDHD5850平台上达到了5.
193~35.
08times(平均16.
91)的加速比;在AMDHD7970平台上,性能比AMDHD5850提高了17.
62%~51.
35%;在NVIDIAC2050平台上达到了5.
85~32.
641times(平均17.
535)的加速比.
该算法成果已经发布在IEEEHPCC2012国际会议上了.
图30facedetection函数在不同平台上的加速比3.
大规模可扩展非阻塞集合消息传递算法的研究;1)基于新的LogGPH模型设计了新的MPI_Allgather映射算法,平衡了MPI_Allgather邻居交换映射算法中偶数步通信层次,在魔方单节点上测试效果平均加速比为6%.
图为魔方上新旧映射方法对比的加速比.
16图31邻居交换算法新进程映射模式图32魔方上新映射方法加速比2)在魔方上,采用MPICH进程绑定工具hydra测试分析了6种不同进程绑定策略对点集合通信(IMB3.
2)性能的影响,并分析了Broadcast,Gather/Scatter,Allgather,Alltoall,Allreduce算法在不同消息长度的实际运行程序[性能可以提高的空间.
图33显示,长消息ring算法的Allgather性能至少可以提升27%(性能最优的CASE5相对于性能最坏的CASE3).
图34,中短消息Bcast性能至少可以提升31%.
图331024进程不同绑定策略的Allgather图341024进程不同绑定策略的Bcast图351024进程不同绑定策略的Allgather模拟图361024进程不同绑定策略的Bcast模拟通过分析不同进程绑定策略下CPU内、CPU间、结点间通信的次数和消息大小,计算模拟了集合通信的实际运行时间,图35为1024进程6种不同进程映射策略下长消息的ring算法的Allgathe模拟时间,图36为短消息的Bcast的模拟时间.
相关工作的初步成果在国内核心期刊发表文章一篇,进一步的工作正在撰写国际会议文章.
3)利用节点内的通信延迟差异优化MPI集合通信的性能得研究.
我们设计了一个节点内NUMA-aware的集合通信性能分析模型,分别在Intel和AMD两种多路多核平台上评估了不同进程映射对MPI集合通信的影响,依据该分析模型,为各集合通信算法设计了较优的通信模式.
试验表明新通信模式可明显提高MPI集合通信的性能.
如短消息的MPI_Bcast在Intel和AMD平台上可分别提高76.
5%和14%.
我们通过穷举分析所有进程-核映射模式的方法证实理论分析结果,中短消息Bcast性能至少可以提升31%.
相关研究成果与美国阿岗实验室PavanBalaji博士联合撰写文章一篇,并投稿至IEEE/ACMInternationalSymposiumonCluster,Cloud,and17GridComputing(CCGrid2012).
图37Intel平台不同进程映射下MPI_Bcast()性能实测(左图)模拟(右图)图38AMD平台不同进程映射下MPI_Bcast()性能实测(左图)模拟(右图)假设一个双路四核共8个核的节点,进程-核映射就有8!
=40320种,其中每个CPU内4!
种映射是一样的,因为CPU内的4个核是一样的,两个CPU交换位置对性能无影响,因此8!
中映射被分为8!
/(4!
*4!
*2)=35个不同的组,每组以其中一个CPU的4个进程号表示如[0123]表示进程0,1,2,3在一个CPU,4,5,6,7在另一个CPU的4!
*4!
*2种同构情况,表2中较小的标准差最小值百分比证实了每组中同构情况的性能几乎相同.
同时,性能最优的三组和最劣的三组证实了模型分析的最优/最劣映射,CASE1是[0123]中的一个,CASE5是[0576]中的一个.
表3消息长度为4Byte的MPI_Bcast进程映射穷举测试结果组名最小值最大值平均值方差标准差/最小值Top3bestgroup[0123]0.
65us0.
85us0.
70us0.
008844.
57%[0127]0.
66us0.
89us0.
75us0.
016576.
17%[0123]0.
69us1.
01us0.
80us0.
028847.
78%Top3worstgroup[0256]1.
05us1.
49us1.
21us0.
0080658.
55%[0576]1.
01us1.
42us1.
22us0.
0063977.
92%[0256]1.
05us1.
47us1.
24us0.
0074418.
63%4.
面向多核国产处理器性能优化国产高性能数学库研究开发1)研制成功龙芯3多核CPU的新一代国产高性能扩展数学库CLeXMLV1.
0版和针对X86平台的国产高性能扩展数学库CASIMLV1.
0版.
在核高基国家重大专项(软件类)的资助下,作为课题负责人,带领团队研制成功针对龙芯3多核CPU的新一代国产高性能扩展数学库CLeXMLV1.
0版和针对X8618平台的国产高性能扩展数学库CASIMLV1.
0版,并取得软件著作权.
两个软件包都包含BLAS、LAPACK、FFT、直接解法器和迭代解法器等5个模块,采用了自适应性能优化、地址交错和多核并行化等技术进行性能优化.
已经完成计算机软件著作权登记:X86CPU多核高性能数学库软件(登记号:2011SR092896)并与Intel公司开发的MKL10.
1版做了对比测试.
在X86平台,CASIML库5个模块单线程和8线程相对于Intel公司开发的MKL10.
1版本的平均加速比达到了1.
08和1.
46.
CLeXML是我国自主开发的一款面向国产处理器的多核版高性能数学库,拥有自主知识产权、掌握源代码,且与Intel公司开发的MKL数学库性能相当.
该数学库的开发,打破国外高性能计算机厂商在高性能数学库方面的长期垄断,填补国内无国产高性能数学库的空白,也大大降低了我国国产CPU的普及和应用难度.
2)基于RAM(h)层次存储计算模型的理论分析结果,创新性的提出CRSD新稀疏矩阵存储格式.
该工作的论文已在本领域著名的国际会议Euro-Par2011上发表.
SpMV是求解PDE的一个核心算法,根据应用矩阵非零元的对角线式的分布特点创新性地提出了CRSD矩阵存储格式.
该存储格式针对同一应用对角线格式在不同问题规模下,对角线分布具有相似性进行优化.
通过对角线格式表示对角线分布.
并通过自适应优化方法基于具体运行平台选择最优的SpMV实现.
测试结果表明,所提出的新存储格式针对不同问题规模的矩阵,在不同线程下均优于MKL中基于CSR的SpMV实现,测试的性能与加速比结果如下图6所示.
可以看出CRSD在单线程下,相对经典存储格式CSR运行效率,加速比平均为3.
05倍,最高可以到达4.
38倍;相对于MKL的DIA存储格式,对于不适合DIA存储格式的矩阵,CRSD同样有很好的加速效果,如图中编号为4和5的矩阵,加速比可以达到90倍以上,除此之外,其余最高加速比为2.
02,平均加速比为1.
74.
在多核情况下,CRSD的加速效果在相同处理器下,是CSR存储格式的2.
16倍,最高可以达到4.
61倍.
图39不同矩阵存储格式的性能比较3)基于CRSD格式的SpMV算法在GPU上的性能优化方法和技术研究,相关文章已在本领域著名的国际会议IEEEICPP2011上发表.
在将基于CRSD存储结构的SpMV算法实现移植到GPU上的过程中,根据GPU硬件结构特点开展了如下优化技术研究:a)有效利用局部存储器.
CRSD存储结构能够将SpMV处理相邻对角线时的公共x元素存放到局部存储器中,减少对延迟较大的全局存储器的访问次数.
b)将离散点的存储方式由CPU上的CSR存储格式修改为ELL存储格式.
由于GPU处理CSR存储格式的跳转操作时效率很低.
c)CRSD存储格式对矩阵进行分割时,分段大小是wavefront的整数倍,每个work-group处理一个对角线格式,避免threaddivergence以及在访问全局内存时能够进行访问合并的优化方法.
d)利用代码生成器,在运行时根据矩阵的对角线格式自动生成可执行代码,并采用全局展开等优化策略.
与经典GPUSpMV实现(BellandGarland,19SC2009)的四种矩阵存储格式(DIA、ELL、CSR及HYB四种存储格)的单双精度进行对比,实验结果如图6所示.
相对经典实现四种存储格式的最优实现,CRSD在处理双精度浮点的运行效率加速比为1.
52X,单精度为1.
94.
a)双精度b)单精度图40CRSD在GPU上的性能加速4)龙芯3上BLAS的性能优化工作,相关工作被推荐到《软件学报》发表.
所研制的OpenBLAS软件包已经成为国际开源项目,https://github.
com/xianyi/OpenBLAS,下载量达到1676次,有若干国际知名公司开始资助该项目,逐渐取代国际知名的GotoBLAS软件包的位置.
BLAS(BasicLinearAlgebraSubprograms)是一个基本线性代数核心子程序集,主要包括向量和矩阵的基本操作.
OpenBLAS是我们在GotoBLAS2-1.
13BSD版基础上发展起来的BLAS库开源项目,当前主要工作是为龙芯3ACPU提供高性能的BLAS库实现.
该项目针对龙芯3ACPU的结构特点,通过分块选择,手工优化汇编,应用128bit访存指令,指令重排等技术对BLAS三级函数GEMM(矩阵乘法)函数进行实现与优化.
图2GEMM核心汇编代码片断在双精度和双精度复数情况下,OpenBLAS优势明显,平均性能超过ATLAS39.
6%和27.
7%,相对于GotoBLAS平均性能提升分别为109.
5%和107.
3%.
在单精度和单精度复数下,OpenBLAS相对于ATLAS的优势并不明显,分别只高出5.
0%和2.
0%;相对于GotoBLAS,性能分别提升52.
0%和51.
1%.
因此,OpenBLAS在单精度和单精度GEMM还具有明显的改进空间,我们推测是在OpenBLAS中没有使用单精度浮点向量(ps)指令,造成性能稍低.
20图3单线程BLAS3级函数平均性能对比图在多核情况中,各线程所需计算的子矩阵的总空间约为3.
6M,由于龙芯L2cache大小为4M,采用四路组相连随机替换策略会导致各线程间对共享的L2Cache的争.
因此,我们一方面减小多线程下子矩阵的大小来减小对L2Cache的消耗,另一方面,将各个线程使用的数据起址进行交错的排列布局,可尽量避免在L2Cache中各个线程间的相互冲突和替换.
图41多线程子矩阵A与B交错布局示意图OpenBLASBLAS3级函数的4线程并行加速比达到3.
47.
4线程BLAS3级函数平均性能高于GotoBLAS和ATLAS69%和34%.
.
图42多线程性能对比效果图5)基于x86架构的稠密矩阵乘法汇编代码自动调优针对现有技术中手工编写稠密矩阵乘法函数的汇编代码开发效率低、可移植性差;和已有的自动调优矩阵乘法函数技术依赖底层编译器优化技术、性能低的缺点,提出了一种基于x86架构的稠密矩阵乘法汇编代码生成方法.
该方法针对不同x86处理器平台硬件资源的种类和数量(如物理寄存器个数,高速缓存空间大小),利用较为成熟的源到源的翻译转换工具,先对稠密矩阵乘法实施通用优化技术,包括循环分块,循环展开,标量替换,冗余代码消除.
然后结合编译优化知识,定义代码模板,将优化的稠密矩阵乘法函数的C代码一一映射为向量化的汇编代码.
通过细粒度优化函数,如寄存器分配和指令调度,对汇编化的稠密矩阵乘法代码进行优化.
最后对整套方法中出现的参数21(如矩阵分块大小,循环展开因子)进行自动搜索,找到最优稠密矩阵乘法函数.
相关工作申请发明专利一项(申请号:2012101997066).
相关工作拟投稿本领域著名国际会议CGO2013.
图43IntelPenryn处理器上本实现方法(AUGEM)与主流BLAS库加速比效果图图44IntelSandyBridge处理器上本实现方法(AUGEM)6)基于对角线数据结构的SpMV性能优化:针对对角线模式的稀疏矩阵存储方法最主要为DIAG,这种方法会多存储矩阵范围外的非零元,对于远离主对角线的对角线,增加了存储矩阵外虚位的负担,提出了一种新的DDD-SPLIT存储方法.
该方法只存储矩阵范围内的非零元及相应对角线上的零元,根据过对角线与矩阵两侧交点的水平线对矩阵进行切分,使得每个子稀疏矩阵行块内所需要的对角线相同,因此计算模式一致,可以重用y.
图7为DDD-SPLIT对CSR的加速比.
相关工作申请发明专利一项(申请号:201010594672.
1),在IEEEHPCC2010国际会议上发表文章一篇.
图45DDD-SPLIT加速比7)通过在计算模型、大型稀疏线性方程组高效并行解法器、稀疏矩阵向量乘稀疏矩阵存储格式、MPI与OpenMP的混合并行和可扩展消息传递集合通信算法等多个方面开展关键技术的研究工作,在国产百万亿次平台曙光5000A(魔方)和深腾7000上,使地球外核热流动的数值模拟程序的强可扩展性达到了2048处理器核以上.
22相关工作在IEEEHPCC2010和HPCA2010国际会议上发表文章各一篇,国内一级学报《数值计算与计算机应用》发表文章一篇.
图46曙光5000A天体数值模拟加速比随处理器核数的变化(网格规模160*160*100)图47深腾7000天体模拟Aztec与PETSc程序运行时间(8或4核/节点)8)GPU上国产自适应FFT软件包MPFFT的研制,相关工作发表在本领域著名的国际会议IEEEICPADS2011上.
快速傅里叶变换(FastFourierTransform,FFT)是离散傅里叶变换(DiscreteFourierTransform,DFT)的快速算法,具有广泛的应用,常被用于数字滤波、求解偏微分方程和信号分解等.
事实上,FFT已被评选为二十世纪科学和工程界最具影响力的十大算法之一.
我们针对目前主流的GPU提出了一个新的FFT自适应框架,且基于该框架实现了自主知识产权的FFT库MPFFT,如下图所示:图48MPFFT的整理框架和代码生成模块示意图首先在程序安装时,只需要借助一个简单的脚本文件,代码生成模块生成可以被GPUkernel调用的小因子FFT集合(codeletsLibrary);在程序运行时,获取输入问题的相23关参数(DFT的维度,长度以及数量batches),并根据这些参数来初始化对性能影响较大的相关硬件参数譬如寄存器大小、LDS容量和其bank数等.
其次,运行时模块考虑这些参数和FFT算法的特点来对输入问题规模按照不同策略分解,从而生成多个plan,然后在Search模块的监督下进行执行和性能评估.
最终,Search模块输出所有分解策略对应plan的性能数据,同时得到最佳DFT分解策略,并且生成的profile数据对其后问题规模的分解和构造能够提供向导.
我们在不同的GPU上评估了MPFFT库的性能,为了便于对比,CPU版本我们选取FFTW3.
2.
2作为性能基准,而AMDGPU和NVIDIAGPU上的FFT分别选取clAmdFft1.
4和CUFFT4.
0作为对比.
其中一、二、三维的测试结果依次如下图所示:图49MPFFT在不同测试平台上的性能比较实验结果表明:一维MPFFT的性能相对于clAmdFft库,取得的加速比为1.
5x-4x,接近于CUFFT,是四线程FFTW的6x-18x.
二维FFT在ATI5850上相对于clAmdFft取得的加速比为1.
5x-36.
81x,平均加速比为2.
6x.
此外,在ATI6870上相对clAmdFft平均加速比2.
4x,最大8.
33x,是八线程FFTW的6.
52x,在NVIDIAGPU上平性能均达到了CUFFT的90%.
而三维FFT的性能,在ATI5850和ATI6870上相对clAmdFft的平均加速比分别为1.
81x和1.
37x,同时,在NVIDIAGPU上性能也达到了CUFFT性能的90%.
此外,MPFFT支持输入规模为非2的幂,相对TeslaC2050和TeslaC1060以及四线程FFTW的加速比分别为1.
5x-28x、20.
01x、31.
87x,由于clAmdFft对非2的幂支持不太完善,只支持2i3j5k,因此在性能曲线图中没有列出.
24图50非2的幂三维FFT性能发表学术论文论著情况专利:1.
专利发明人:孙相征,张云泉,王婷,刘芳芳,袁良;专利申请名称:针对稀疏矩阵的数据存储方法及基于该方法的SpMV实现方法;申请号:201010594672.
1.
2.
专利发明人:袁良,张云泉,孙相征,王婷,刘芳芳;专利申请名称:稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法;申请号:201110004075.
3.
3.
专利发明人:王茜,张先轶,张云泉;专利申请名称:基于x86架构的稠密矩阵乘法汇编代码自动生成方法;申请号:2012101997066.
软件著作权:1.
计算机软件著作权登记,龙芯CPU多核高性能数学库软件(简称:CLeXML),登记号:2010SR060528.
2.
计算机软件著作权登记,行星流体力学大规模数值模拟并行软件V1.
0,登记号:2011SR008456.
3.
计算机软件著作权登记,X86CPU多核高性能数学库软件CASIMLV1.
0版,登记号:2011SR092896.
4.
计算机软件著作权登记,基于质谱的蛋白质非标记定量软件(MPI+CUDA并行版)V1.
0,登记号:2012SR067229.
5.
计算机软件著作权登记,基于质谱的蛋白质非标记定量软件(MPI并行版)V1.
0,登记号:2012SR067234.
6.
计算机软件著作权登记,基于质谱的蛋白质定量软件QuantWizV1.
0,登记号:2012SR064275.
7.
计算机软件著作权登记,基于质谱的蛋白质非标记定量软件V1.
0,登记号:2012SR062946.
8.
计算机软件著作权登记,质谱可视化辅助分析软件V1.
0,登记号:2012SR062948.
译著:25《OpenCL异构计算》,译者:张云泉,张先轶,龙国平,姚继锋.
作者:BenedictR.
Gaster、LeeHowes、David、R.
Kaeli、PerhaadMistry、DanaSchaa.
清华大学出版社,ISBN:9787302286851,277页.
2012年6月1日,第1版.
国际会议和期刊发表的代表性文章:1.
Haipengjia,YunquanZhang,GuopingLong,ShengenYan,andJianliangXu.
GPURoofline:AModelforGuidingPerformanceOptimizationsonGPUs.
EuroPar2012.
Toappear.
2.
Haipengjia,YunquanZhang,GuopingLong,ShengenYan.
AnInsightfulProgramPerformanceTuningChainforGPUComputing.
ICA3PP2012.
Toappear.
3.
HaipengJia,YunquanZhang,WeiyanWangandJianliangXu.
AcceleratingViola-jonesFaceDetectionAlgorithmonGPUs.
InProceedingofIEEEHPCC2012.
Toappear.
4.
LiangYuan,YunquanZhang.
ALocality-basedPerformanceModelforLoad-and-computeStyleComputation.
IEEECLUSTER2012.
Toappear.
5.
LiangYuan,ChenDing,DanielStefankovic,YunquanZhang.
ModelingtheLocalityinGraphTraversals.
ICPP2012.
Toappear.
6.
XiangzhengSun,YunquanZhang,TingWang,GuopingLong,XianyiZhang,YanLi:CRSD:ApplicationSpecificAuto-tuningofSpMVforDiagonalSparseMatrices.
Euro-Par(2)2011:316-327.
7.
YanLi,YunquanZhang,HaipengJia,GuopingLong,KeWang:AutomaticFFTPerformanceTuningonOpenCLGPUs.
ICPADS2011:228-235.
8.
XiangzhengSun,YunquanZhang,TingWang,XianyiZhang,LiangYuan,LiRao:OptimizingSpMVforDiagonalSparseMatricesonGPU.
ICPP2011:492-501.
9.
JingWang,YunquanZhang,XianyiZhang,XiangzhengSun,QuanhuSheng:QuantWiz:Ascalableparallelsoftwarepackageforlabel-freeproteinquantification.
BIC-TA2010:976-980.
10.
LeiWang,YunquanZhang,XianyiZhang,FangfangLiu:AcceleratingLinpackPerformancewithMixedPrecisionAlgorithmonCPU+GPGPUHeterogeneousCluster.
CIT2010:1169-1174.
11.
LiangYuan,YunquanZhang,YuxinTang,LiRao,XiangzhengSun:LogGPH:AParallelComputationalModelwithHierarchicalCommunicationAwareness.
CSE2010:268-274.
12.
ChaoYang,YunquanZhang,LigangLi:NumericalSimulationoftheThermalConvectionintheEarth'sOuterCore.
HPCC2010:552-555.
13.
LiangYuan,YunquanZhang,XiangzhengSun,TingWang:OptimizingSparseMatrixVectorMultiplicationUsingDiagonalStorageMatrixFormat.
HPCC2010:585-590.
14.
YanLi,YunquanZhang,KeWang,WenhuaGuan:HeterogeneousMulti-coreParallelSGEMMPerformanceTestingandAnalysisonCell/B.
EProcessor.
NAS2010:202-207.
15.
YunquanZhang,JiachangSun,GuoxingYuan,LinboZhang:PerspectivesofChina'sHPCsystemdevelopment:aviewfromthe2009ChinaHPCTOP100list.
FrontiersofComputerScienceinChina4(4):437-444(2010)16.
ChaoYang,LigangLi,YunquanZhang:DevelopmentofaScalableSolverfortheEarth'sCoreConvection.
HPCA(China)2009:497-50217.
ShengfeiLiu,YunquanZhang,XiangzhengSun,RongRongQiu:PerformanceEvaluationofMultithreadedSparseMatrix-VectorMultiplicationUsingOpenMP.
HPCC2009:659-6652618.
JingWang,YunquanZhang,XianyiZhang,XiangzhengSun,ZelinHu,SujunLi,RongZeng:QuantWiz:AParallelSoftwarePackageforLC-MS-basedLabel-FreeProteinQuantification.
HPCC2009:683-68719.
YuanYu,YunquanZhang,TingWang,JiachangSun,XianyiZhang,YuxinTang,LiRao:EarlyPerformanceEvaluationofDawning5000AandDeepComp7000.
ICPADS2009:578-585国内会议和期刊发表的代表性文章:1.
孙相征,张云泉,王宣强,王磊.
数值软件自适应性能优化搜索过程评价技术研究.
计算机研究与发展,2010,Vol.
47,(4):679-686.
2.
刘胜飞,张云泉,孙相征.
一种改进的OpenMPGuided调度策略研究.
计算机研究与发展,2010,Vol.
47,(4):687-694.
3.
余元,张云泉,李会元.
一类非张量积区域快速傅立叶变换算法在国产并行机上的可扩展性测试,《数值计算与计算机应用》,2010,31(2):123-130.
4.
陈少虎,张云泉,张先轶,程豪.
BLAS库在多核处理器上的性能测试与分析,软件学报,2010年增刊5.
袁良,张云泉,龙国平,王可,张先轶,基于延迟隐藏因子的GPU计算模型,软件学报,2010年增刊6.
孙相征,张云泉,王婷,杨超,李力刚.
天体大规模数值模拟软件性能优化.
华中科技大学学报(自然科学版).
2010年6月,Vol.
38,增刊I:69-76.
7.
程豪,张云泉,张先轶,李玉成.
CPU-GPU混合并行DGEMM算法实现与性能分析.
《计算机工程》,Vol.
36,No.
13,pp.
24-26,2010年7月.
8.
王磊,张云泉,刘芳芳,张先轶,基于混合精度算法的改进HPL软件包,《计算机工程》,Vol.
36,No.
19,pp.
47-49,2010年10月.
9.
饶立,张云泉,李玉成.
国产百万亿次机群系统Alltoall性能测试与分析.
《计算机科学》,Vol.
8,2010年.
10.
袁良,张云泉,并行程序设计语言中局部性机制的研究,《高性能计算发展与应用》,2010年第一期:34-44.
11.
王婷,张云泉,孙相征,杨超,李力刚.
天体大规模数值模拟软件性能优化初探.
第二届中国国家网格学术年会(CNGRID2010)论文集,2010年1月15-17,北京:87-92.
12.
王婷,张云泉,孙相征,杨超.
行星流体动力学大规模计算的性能测试与分析.
HPCChina2010,2010年10月28-30日,北京.
13.
费辉,张云泉,王可.
分子动力学模拟在OpenCL框架的GPU上的实现.
HPCChina2010,2010年10月28-30日,北京.
14.
李焱,张云泉,王可,赵美超.
异构平台上基于OpenCL的FFT测试与分析.
HPCChina2010,2010年10月28-30日,北京.
15.
解庆春,张云泉,王可,李焱.
SIMD技术与向量数学库研究.
HPCChina2010,2010年10月28-30日,北京.
16.
费辉张云泉王可,许亚武.
基于GPU的分子动力学模拟并行化及实现.
计算机科学,2011,(09):275-27917.
解庆春,张云泉,王可,李焱,许亚武.
SIMD技术与向量数学库研究.
计算机科学,2011,(07):298-30218.
李焱张云泉王可,赵美超.
异构平台上基于OpenCL的FFT实现与优化.
计算机科学,2011,(08)2719.
颜深根,张云泉,龙国平,李焱.
基于OpenCL的归约算法优化研究.
软件学报,2011年增刊20.
李超,张云泉,郑昌文,胡晓慧,IntensitymodelwithblureffectonGPUsappliedtolarge-scalestarsimulators,软件学报,2011年增刊21.
张先轶,王茜,张云泉,OpenBLAS:龙芯3ACPU的高性能BLAS库,软件学报,2011年增刊22.
费辉,张云泉,王靖.
基于GPU的非标记定量软件QuantWiz并行化实现.
HPCChina2011.
23.
袁良,张云泉.
基于横向局部性的多核计算模型.
HPCChina201124.
张樱,张云泉,龙国平.
基于OpenCL的图像模糊化算法优化研究.
HPCChina201125.
吕渐春,张云泉,王婷,肖玄基,PLASMA自适应调优与性能优化的设计与实现,HPCChina201126.
贾海鹏,张云泉,龙国平,徐建良,李焱,基于OpenCL的拉普拉斯图像增强算法优化研究,HPCChina201127.
颜深根,张云泉,龙国平,李焱.
基于OpenCL的归约算法优化研究.
HPCChina2011(大会优秀论文提名)28.
李超,张云泉,郑昌文,胡晓慧,IntensitymodelwithblureffectonGPUsappliedtolarge-scalestarsimulators,HPCChina2011(大会优秀论文提名)29.
张先轶,王茜,张云泉,OpenBLAS:龙芯3ACPU的高性能BLAS库,HPCChina2011(大会优秀论文)学术活动和社会兼职:国家自然科学基金委第十四届信息科学部专家评审组成员(2012.
6-2014.
6)IEEECSE2010程序委员会共同主席SC2011SotP,ICPADS2012,PDCAT2012,IPDPS2012,CCGrid2012,e-Science2012,CGO2013程序委员会委员.
ISC2012SteeringCommitteeMember2010年-2012年全国高性能计算学术年会程序委员会副主席第六届到第八届中国CAE工程分析技术年会专家委员会副主席第一届和第二届中国科学院超级计算应用大会专家委员会委员核心期刊《计算机科学》和《计算机工程与科学》编委中国科学院《科研信息化技术与应用》编委上海超算《高性能计算机发展与应用》编委中国计算机学会《计算机学会通讯》编委中科院超级计算中心用户委员会委员中国计算机学会理事中国软件行业协会常务理事中国计算机学会高性能计算专委会秘书长中国软件行业协会数学软件分会秘书长中国传媒大学和华南理工大学兼职教授和博士生导师中国科技大学兼职教授28大会特邀报告:ZhangYunquan,SIAMPP2012,Savanah,Georgia,USA,2/17/2012.
大会特邀报告.
ZhangYunquan,ISC2011,Hamburg,Germany,June19-23,2011,InvitedSpeaker.
ZhangYunquan,GPUTechnologyConferenceAsiaFor2011,ChinaNationalConventionCenter,Beijing,China,Dec.
14-15,2011.
InvitedSpeaker.
张云泉,2011年7月25-27日,第七届中国CAE工程分析技术年会,昆明,云南(大会特邀报告)张云泉,2011年10月26-10月29日,2011全国高性能计算学术年会(济南,大会特邀报告)张云泉,2011年12月21-12月23日,2011第七届全国高性能算法软件研究开发研讨会(北京,大会特邀报告).
张云泉,2011年11月6-11月9日,第一届中国科学院超级计算应用大会(SCA2011),青岛,山东.
大会特邀报告张云泉,2011年12月15-16日,第二届中国科研信息化研讨会(北京,大会特邀报告).
YunquanZhang,ATIP4thWorkshoponHPCinChina:SpecializedHardware&SoftwareDevelopment,SC2010,NewOrleans,LA,Nov.
16-19,2010.
大会特邀报告.
YunquanZhang,IDC40thHPCUserForum,Beijing,Oct.
30,2010.
大会特邀报告2010年7月28-29日,第六届中国CAE工程分析技术年会,哈尔滨,张云泉,大会特邀报告.
2010年10月27-10月30日,2010全国高性能计算学术年会,北京,张云泉,大会特邀报告.
外部经费争取情况29国家自然基金重点项目,《大规模异构并行系统的高效能调度理论与方法》(No.
61133005),2012.
1-2016.
12,张云泉,子课题组长,87.
64万(总经费280万).
国家863信息技术领域主题项目"新型多核/众核处理器编程与运行支撑环境"《面向国产处理器的并行程序综合优化技术与系统》(No.
2012AA010304)子课题《面向国产申威、飞腾处理器的高性能数学库》,2012.
1-2015.
12,90万;国家863信息技术领域主题项目"新型多核/众核处理器编程与运行支撑环境"《面向多核/众核处理器的并行程序编程技术、框架和语言支持》子课题《高效算法库和高效代码调优框架》,2012.
1-2015.
12,110万;国际企业AMD横向合作项目,特定HPC应用及OPENCV的移植和优化(AMD),2011.
1-2013.
12,张云泉,课题负责人,190万.
国家测绘局测绘卫星应用中心横向合作项目,基于光线追踪的高精度成像并行数值计算软件,2011.
7-2013.
12,张云泉,课题负责人,80万.
"十一五"863计划"高效能计算机及网格服务环境"重大项目"高性能计算与网格应用"课题,《天体大规模并行数值计算软件平台的研制》(No.
2006AA01A125),2007.
1-2010.
12,课题组副组长;顺利通过结题验收,获得好评,80万.
国防军工课题,《多核版高性能扩展数学库合作研发》,2009.
1-2011.
6,张云泉,课题组组长,顺利通过结题验收,420万;核高基重大专项(软件类)《支持国产CPU的编译系统及工具链》子课题《龙芯CPU多核并行国产高性能数学库研究开发》(2009ZX01036-001-002-3),2009.
1-2011.
6,张云泉,子课题组组长,正在结题;391万.
国家863"高效能计算机及网格服务环境"重大专项课题,《曙光6000千万亿次高效能计算机系统研制》子课题《面向数万个以上处理器的新型基础算法研究》(No.

Stablehost 美国主机商黑五虚拟主机四折

如今我们网友可能较多的会选择云服务器、VPS主机,对于虚拟主机的话可能很多人不会选择。但是我们有些外贸业务用途的建站项目还是会有选择虚拟主机的。今天看到的Stablehost 商家虚拟主机在黑五期间也有四折优惠,对于这个服务商而言不是特别的喜欢,虽然他们商家和我们熟悉的老鹰主机商有些类似,且在后来老鹰主机改版和方案后,Stablehost 商家也会跟随改版,但是性价比认为不如老鹰主机。这次黑色星期...

百纵科技:美国独立服务器租用/高配置;E52670/32G内存/512G SSD/4IP/50M带宽,999元/月

百纵科技怎么样?百纵科技国人商家,ISP ICP 电信增值许可证的正规公司,近期上线美国C3机房洛杉矶独立服务器,大带宽/高配置多ip站群服务器。百纵科技拥有专业技术售后团队,机器支持自动化,自助安装系统 重启,开机交付时间 30分钟内交付!美国洛杉矶高防服务器配置特点: 硬件配置高 线路稳定 洛杉矶C3机房等级T4 平价销售,支持免费测试,美国独服适合做站,满意付款。点击进入:百纵科技官方网站地...

快快云:香港沙田CN2/美国Cera大宽带/日本CN2,三网直连CN2 GIA云服务器和独立服务器

快快云怎么样?快快云是一家成立于2021年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,快快云目前提供有香港云服务器、美国云服务器、日本云服务器、香港独立服务器、美国独立服务器,日本独立服务器。快快云专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经验,遍布亚太地区的海量节点为业务推进提供强大...

内存优化大师为你推荐
登陆qq空间首页QQ空间打开就显示主页聚酯纤维和棉哪个好纯棉和聚酯纤维的最佳比例骁龙750g和765g哪个好骁龙765G,这里的g是什么意思?闪迪和金士顿哪个好固态硬盘哪个好,是金士顿好还是闪迪的手动挡和自动挡哪个好自动挡和手动挡哪个更好一点播放器哪个好什么播放器好用云盘哪个好免费的网盘哪个好用啊?qq空间登录不了为什么我的QQ登陆不了QQ空间qq空间登录电脑求助,怎么登陆电脑版的qq空间YunOSYunOS怎么样,有用过的吗?
免费虚拟主机申请 naning9韩国官网 westhost 狗爹 表单样式 淘宝双十一2018 lighttpd 美国十次啦服务器 165邮箱 vip购优汇 100m空间 789电视 ntfs格式分区 世界测速 百度云1t idc查询 网购分享 linode支付宝 smtp服务器地址 supercache 更多