BLAS库在龙芯3A上的实现与优化

来源 :中国科学院研究生院 中国科学院大学 | 被引量 : 0次 | 上传用户:kuruby
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
基本线性代数函数库BLAS(Basic Linear Algebra Subprograms)是高性能计算中最基本最重要的数学库之一,它的性能对超级计算机的性能有着极大的影响。目前BLAS库已经成为初等线性代数运算事实上的标准,它广泛用于科学及工程计算,是许多数学软件的基本核心,因此BLAS库的性能的优化对提高程序运行速度、发挥计算机的运算能力有很重要的意义。龙芯系列处理器是中国科学院计算技术研究所自主研发的,兼容MIPS指令集的高性能通用处理器。2009年研制成功的龙芯3A四核处理器是一款多核通用CPU,基于可伸缩的多核互连架构设计,在单个芯片上集成4个高性能处理器核以及大量的2级cache,主要面向服务器和高性能机应用。为了充分发挥龙芯处理器的优势,推动龙芯在高性能计算领域的应用,亟需开发一套高性能的BLAS数学库。单核BLAS库的性能和处理器的体系结构严重相关,需要针对不同平台进行优化。   本文根据龙芯3A的体系结构和各级BLAS函数的特征,总结、提出并实验了一系列方法来优化单核BLAS库的性能。对于BLAS1,2级函数,由于其瓶颈主要在于内存访问上,所以实验通过SIMD访存指令、循环展开、分块算法、数据预取来尽量减少内存访问次数,提高cache命中率,使用计算来掩盖访存时间,达到优化指令和访存流水线的目的。而且实验中发现BLAS1,2级函数对内存带宽和外围存储结构的非常敏感,提出了一种基于存储模型的自适应优化方法,可以使BLAS1,2级函数在不同的CPU平台上都能呈现出最好的性能。在龙芯3A实验平台上,优化后的单核BLAS1,2级函数,例如最具代表性的AXPY和GEMV较之GotoBLAS的原始版本分别提高了约40%和90%的性能。而多核并行方面,受内存带宽限制的BLAS1,2在双通道内存平台上四核加速比从原始的1.3提高到了1.9。对于BLAS3级函数,本文的工作主要集中于多核并行方面。通用CPU的多核并行最高效的方式就是多线程并行,可以根据应用选择Pthread或OpenMP的并行方式。实验中发现,BLAS1,2级函数的并行瓶颈主要在于内存带宽和线程间cache冲突,BLAS3级函数的并行瓶颈则主要在线程间cache冲突。Pthread的方式并行开销更小,能够比较有效的控制线程行为,减少线程间cache冲突。本文对核心的BLAS3函数提出了新的数据划分方法,使龙芯3A的并行加速比从GotoBLAS的3.0提高到3.6。
其他文献
随着信息技术的迅速发展,社会网络变得无处不在,从生物学到互联网,从大型的电力网到人际关系网等等。从大量的数据中提取有效的、可信的、新颖的信息的数据挖掘成为了当今的
网络协议分析工具是一套软件工具套件,主要是用于分析网络协议的数据以及状态等信息,通过捕获和过滤原始数据,获得大量网络数据基本信息,并对原始数据进行分析。从而达到分析
以2009年3G网络正式投入运营为标志,中国移动互联网产业进入飞速发展时期,与此同时,智能手机也开始流行。智能手机和3G网络的兴起使不良信息在移动互联网中的传播有了更好的硬件
搜索引擎质量评价是一个非常重要的问题。对于使用者,它可以帮助他们选择合适的搜索引擎,找到满足信息需求的信息;对于搜索引擎的研究和开发人员,它能够帮助他们比较各组件算
EAST低温系统为中科院等离子体物理研究所自主设计制造,为EAST各冷质部件提供超临界氦迫流冷却,设计制冷量为1050 W/3.5K+200 W/4.5 K+13g/s LHe+(13~25)kW/80K,设计当量制冷
随着集成电路工艺和设计技术的不断进步,芯片的集成度不断提高,单块芯片上集成的功能部件越来越多。复杂系统芯片中,各功能部件往往通过片内总线共享片外主存,访存性能成为制约性
本文介绍了作者在面向嵌入式C语言的软件测试方面所做的工作,包括嵌入式C缺陷模型的描述以及使用扩展的缺陷模式状态机进行缺陷检测,通过设计缺陷模式的统一描述和统一检测框
紫外光通信作为一种新型的无线光通信技术,由于其自身的特点,具有保密性好、抗干扰能力强、全天候全方位性工作等特点。近几十年来,紫外光通信受到越来越多的重视,尤其适用在
互联网的诞生和发展,深刻的改变着人们的生活,极大地推动着社会的发展与进步,尤为值得一提的是互联网已经成为人们获取信息的一个非常重要的途径,互联网已经成为人们沟通、交
随着科学技术的发展,计算机辅助设计、网络和数据库技术的广泛应用,在工程绿化设计领域,图形、图纸的运用越来越多。这些图形文件数量庞大,种类众多,管理复杂,检索,查阅十分