首页> 中文学位 >龙芯平台上高性能计算的性能优化关键问题研究
【6h】

龙芯平台上高性能计算的性能优化关键问题研究

代理获取

目录

声明

摘要

表格索引

插图索引

算法索引

第一章 绪论

1.1 研究背景

1.1.1 龙芯3B1500

1.1.2 龙芯3B2000

1.1.3 BLAS库

1.1.4 FFTW库

1.2 国内外研究现状

1.2.1 程序性能优化

1.2.2 BLAS函数库优化

1.2.3 FFTW函数库优化

1.2.4 泊松方程求解优化

1.3 本文研究内容

1.4 本文组织结构

第二章 程序优化方法

2.1 并行计算优化

2.2 编译器优化

2.3 热点代码优化

2.3.1 热点代码分析方法

2.3.2 热点函数优化方法

2.4 异构计算

2.5 本章小结

第三章 基于龙芯3B1500的BLAS库优化

3.1 BLAS函数库简介

3.2 异步计算访存优化方法

3.2.1 单线程函数优化

3.2.2 节点内多核并行化

3.2.3 GEMM函数的性能评测

3.3 TRSM函数的优化

3.3.1 优化方法

3.3.2 dTRSM函数性能评测

3.4 TRMM函数的优化

3.4.1 优化方法

3.4.2 dTRMM函数性能评测

3.5 SYMM和HEMM函数的优化

3.5.1 优化方法

3.6 BLAS整体优化效果

3.6.1 单纯的函数测试

3.6.2 LINPACK测试

3.7 本章小结

第四章 基于龙芯3B1500的FFTW函数库优化

4.1 FFTW函数库简介

4.2 FFTW库的算法

4.2.1 Cooler-Turkey算法

4.2.2 其他FFT算法

4.3 多层数据划分优化方法

4.3.1 数据分块

4.3.2 多级预取优化访存

4.3.3 特殊指令的核心计算优化

4.3.4 优化参数分析

4.3.5 性能评估和优化效果

4.4 核心函数集的优化

4.4.1 复数输入的核心函数

4.4.2 实数输入的核心函数

4.4.3 优化方法

4.4.4 优化效果和性能分析

4.5 本章小结

第五章 基于CC-NUMA架构的并行计算框架优化

5.1 CC-NUMA简介

5.2 并行计算框架HPFCA

5.2.1 PCAM并行计算框架

5.2.2 数据重新部署

5.2.3 节点内多核并行

5.2.4 HPFCA流程图

5.3 龙芯3B双路上的并行算法

5.3.1 dGEMM的并行算法

5.3.2 基-2FFT算法的并行实现

5.4 实验评测

5.5 本章小结

第六章 基于异构平台的三维泊松方程求解优化

6.1 背景介绍

6.2 异构平台下计算资源的负载均衡

6.2.1 泊松方程求解

6.2.2 多GPU上的算法实现

6.2.3 负载均衡

6.3 实验结果和分析

6.3.1 实验环境与参数

6.3.2 实验结果与分析

6.4 本章小结

第七章 总结与展望

7.1 本文主要工作和贡献

7.2 未来工作展望

参考文献

致谢

在读期间发表的学术论文与取得的研究成果

展开▼

摘要

高性能计算广泛运用在科学计算、可视化处理、商业数据模型分析等领域。程序性能与平台架构息息相关。龙芯作为具有自主知识产权的国产芯片的代表,它的3B系列芯片被广泛运用在航天、生物信息、气象等领域。但由于它的软件生态环境不健全,许多软件没有针对它的架构进行优化。龙芯普通访存速度慢,加上软件移植过程中龙芯编译器无法充分发挥硬件计算与访存分离的特性,软件与平台架构耦合性低,容易导致部分科学计算软件的运行性能低,不能满足用户的计算需求,这制约着龙芯的市场化推广。如何优化龙芯平台的软件性能成为龙芯亟需解决的问题。
  因此,本文围绕龙芯平台上高性能计算的访存和计算优化关键问题展开研究。主要的研究内容和贡献如下:
  (1)针对科学传播网站用户持续使用行为影响因素实证研究与龙芯硬件架构耦合性低的问题,以BLAS库中矩阵矩阵乘函数GEMM为研究对象,提出了一种加速计算密集型应用的异步计算访存优化方法。该优化方法根据龙芯计算与访存分离的特性,通过对任务进行分组和流水化处理;然后在计算过程中,利用多通道DMA访存方法实现数据的预取或读写,从而将大量的访存开销隐藏到计算中;最后,使用SIMD指令向量化提升核心的计算性能。此外,通过分析计算与访存分离的特征,给出了一种龙芯平台上计算密集型应用的性能评估方法。
  (2)针对普通访存方法不能满足龙芯平台中应用访存速度需求的问题,以FFTW核心算法为研究对象,提出一种面向计算密集型应用的多层数据划分优化方法。该优化方法以龙芯3B1500处理器为研究平台,根据FFT中数据的访存规律,利用龙芯锁cache机制保证缓存中数据不会被替换,进而采用多层数据划分以提升缓存中数据的利用率,通过增加迭代层数提升寄存器堆数据的重用率,并且使用特殊向量指令加速核心运算;与此同时,通过使用CPU和DMA协同访存方法来提高数据读写速度。
  (3)针对CC-NUMA架构中易由数据部署不合理而导致计算密集型应用并行效率低的问题,以KD-90为研究平台,在PCAM并行框架的基础上,提出了一个面向计算密集型应用的并行框架HPFCA。根据应用的数据访存规律,对框架中的任务划分、节点间任务并行、数据重新部署、节点内多核并行和单核程序优化五个部分进行设计,利用访存数据局部性完成访存的性能优化。并且根据该框架,在KD-90上实现了GEMM和FFT的高效并行算法。
  (4)针对多核异构平台中应用程序难以并发执行的问题,以三维泊松方程求解算法为研究对象,提出了一种异构平台下多种计算资源负载均衡的高效算法。该算法通过使用多重网格法对三维泊松方程进行离散,将三维泊松方程求解问题转化成线性方程组求解问题,然后通过分析异构平台不同资源的计算能力决定任务负载比例,将任务按比例分配到不同的计算资源上,完成计算的负载均衡优化,从而提升异构平台中程序的并行加速比。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号