基于国产高性能计算机的BLAS3级函数优化

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:yuwen0702
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
基础线性代数库(BLAS)是一组线性代数核心子程序的集合,主要包括向量与矩阵的基本运算,被广泛应用于科学工程计算领域。在高性能计算领域中被广泛采用的LINPACK性能测试程序中大量使用了3级BLAS的GEMM函数,3级BLAS函数的优化工作始终是高性能领域的热点之一。随着目前高性能计算需求的日益增大,越来越多的应用开始登陆国产高性能计算平台,不论是传统的科学计算领域还是新兴的机器学习、人工智能等领域,均严重依赖底层诸如BLAS数学库以获得较高的计算性能。然而目前,在飞腾、神威等多款国产高性能计算平台上,均没有部署定制化的高性能BLAS数学库,开源的数学库性能又往往不尽如人意,因此研究基于国产平台的高性能BLAS数学库,特别是3级BLAS函数的高性能实现方法具有重要意义。  BLAS3级函数涉及矩阵-矩阵操作,访存复杂度为O(N2),计算复杂度为O(N3),在矩阵规模合理的情况下计算规模远大于访存规模,利用计算掩盖访存延迟是可行的,3级BLAS函数性能理论上可以接近平台性能峰值。由于通用编译器优化力度不够,在3级BLAS函数的实现过程中,往往需要考虑平台架构特征进行指令级手工汇编编码。  本文面向两款架构特征完全不同的国产处理器平台,基于不同的平台特性,分别研究并实现了高性能的BLAS数学库。本文的主要贡献包括:  分析一款国产的众核异构平台体系结构,详细介绍了其从核阵列、从核缓存LDM、主从核间的高性能DMA传输机制以及从核阵列间的寄存器级通信技术。基于单个计算核心,利用平台的SIMD向量化乘加指令,设计了循环展开策略与软件流水线排布方法,使用了高效的寄存器分块模式,实现函数优化。基于众核平台,设计了计算与访存异步的双缓冲策略,描述了矩阵分块与核间数据划分方法,使用寄存器级通信,实现高性能3级BLAS函数。经实验,该高性能BLAS数学库的GEMM函数性能可以达到平台峰值的90%以上,与单核GotoBLAS相比,加速比达到270倍左右。  分析了申威1600 CPU平台特征,基于该平台单核,使用了SIMD向量化乘加指令、寄存器分块、循环展开与软件流水线、数据预取与数据重排等技术,单线程条件下相比于GotoBLAS GEMM函数,本文所述的GEMM平均加速比为4.72,最高加速比为5.61。基于平台多核,进行优化设计工作,4线程下的平均加速比为3.02,最高加速比为3.18。
其他文献
现代社会生活中,视频信息逐渐成为人们传递信息的一种重要途径,可以足不出门便可观澜天下事成为现代生活的重要特征。视频信息作为一种重要的信息传递途径,以其直观性强等特点越
航天器电子设备是航天器的重要组成部分,其系统设计及设备制造需要耗费大量人力、物力成本,航天器电子设备具有伴随航天器发射后到被回收之前的不可维修性,使用地面测试系统
随着网络新闻的蓬勃发展与随之而来的信息爆炸,人们一方面可以轻易获取到广泛的资源,丰富自己的生活;另一方面,读者获得关键信息的时间成本也随之增加。如何从海量的网络新闻
所谓云服务,是指利用计算机硬件技术、软件技术、信息安全技术、网络技术、空间信息技术、通信技术、虚拟化技术、集群技术和存储技术以及并行计算等技术,将大量分布在网络中的
近年来,三维模拟技术已广泛应用于各个领域。本文主要研究基于场景的仿真应用。如场景的漫游,基于三维环境的工程仿真,自然现象的模拟,社会活动的模拟,灾害的仿真模拟(如水灾、火
近年来,随着计算机网络和信息技术的快速发展,网络安全也越来越成为人们关注的焦点。每年木马的数量都在迅速的增加,在各类非法程序中占据着最大的比重,而由木马程序所造成的
随着语义技术的兴起,目前的互联网上产生了越来越多的语义数据。这些语义数据蕴含了大量的不同领域的知识,在互联网范围内相互关联,形成了一个规模巨大的人类知识库。在特定领域
动态随机访问存储器(DRAM,Dynamic Random Access Memory)由于其较高的存储密度,较快的访问速度,成熟的制造工艺,作为主存储器(又称内存)被广泛地应用到计算系统的存储层次(Memory
重新网格化方法是将非规则结构的三角网格表示为规则结构的网格数据,这种方法既有利于网格数据的压缩,又可降低几何数据采样的非一致性.几何图像是一类规格化的重新网格化方
近年来,在线社会网络迅速发展,成为大量用户沟通交流和分孚信息的重要平台,引起国内外研究者的关注。最初的研究集中在朋友关系,但是朋友关系难以体现信任或者亲密程度。为了