面向多核向量处理器BLAS库的设计与实现
发布时间:2017-04-22 23:01
本文关键词:面向多核向量处理器BLAS库的设计与实现,由笔耕文化传播整理发布。
【摘要】:基本线性代数子程序BLAS(Basic Linear Algebra Subprograms)库是科学计算中引用最广泛的数学函数库之一,也是评测计算机性能的核心算法程序。X-DSP是我校自主研发的高性能多核向量处理器,主要用于数字通信、图像处理和雷达信号处理等领域,为充分发挥X-DSP的高性能,针对其特定体系结构特点开发高度优化的BLAS库函数具有重要的理论意义和应用价值。本文深入研究和分析了X-DSP的多核向量处理器的体系结构特点以及BLAS1、BLAS2中子函数的算法特点,针对X-DSP体系结构的多级并行性,详细设计了高效的算法映射,并基于手工汇编实现了高性能的BLAS1和BLAS2算法库。主要工作包括以下几个方面:1、设计和实现了基于X-DSP单核的BLAS1函数库,以向量范数、矩阵范数和DDOT算法为例,详细分析和设计了针对该DSP体系结构特点的算法映射,采用软件流水方法和手工汇编进行优化实现,充分挖掘了该处理器的指令并行性、向量并行性和数据并行性,取得了较高的计算性能。在RTL级平台上的测试结果表明,向量范数的平均性能达64.49GFLOPS,矩阵范数的平均性能达49.34GFLOPS,DDOT的平均性能达47.50GFLOPS。2、设计和实现了基于X-DSP单核的BLAS2函数库。以GEMV、SUM_MV、GER、TRMV和TRSV五个子函数为例进行了详细算法分析与研究;对GEMV的计算方式进行了改进;对SUM_MV内核中存在的多周期写冲突进行优化设计;对GER、GER2、SYR、SYR2进行了对比分析;对TRMV中的三角矩阵进行了分块,以减少0值参与运算;对TRSV中三角逆矩阵的更新方式进行了分析,根据向量处理器的特点进行了优化设计;结合X-DSP的硬件机制分别将GEMV、SUM_MV、GER、TRMV和TRSV五个例程高效地映射至X-DSP单核结构中,性能分别为93.67GFLOPS、53.06 GFLOPS、63.85 GFLOPS、92.85 GFLOPS、62.78 GFLOPS。3、设计和实现了基于X-DSP多核并行BLAS2。深入研究了BLAS2中主要子函数的并行性,根据X-DSP的结构特点,找出了适合该体系结构的并行方案,采用分块的方式进行并行分解,使块之间的运算相互独立,优化了多核的负载均衡,结合X-DSP的多核通信及同步机制,将并行的BLAS2子例程高效地映射至多核中,12核的平均加速比达5.63。
【关键词】:多核向量处理器 矩阵向量乘 范数 优化 并行 分块算法 BLAS
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP332
【目录】:
- 摘要10-11
- ABSTRACT11-12
- 第一章 绪论12-20
- 1.1 课题研究背景及意义12-13
- 1.2 BLAS函数库的研究现状13-15
- 1.3 多核DSP研究现状与发展趋势15-17
- 1.4 汇编程序优化技术介绍17-18
- 1.4.1 软件流水17
- 1.4.2 填充延时槽17
- 1.4.3 指令级优化17-18
- 1.5 算法测试流程18-19
- 1.6 论文的组织结构19-20
- 第二章 X-DSP的体系结构和BLAS库简介20-26
- 2.1 X-DSP的体系结构20-22
- 2.1.1 X-DSP的多核体系结构20
- 2.1.2 X-DSP的单核体系结构20-21
- 2.1.3 X-DSP的DMA基本功能21-22
- 2.1.4 X-DSP的存储结构22
- 2.2 BLAS库22-25
- 2.2.1 BLAS库的构成22-23
- 2.2.2 BLAS函数库子函数23-25
- 2.3 本章小结25-26
- 第三章 BLAS1汇编程序设计与实现26-50
- 3.1 BLAS1算法概述26-27
- 3.2 向量范数设计与实现27-38
- 3.2.1 实向量范数的算法分析27-29
- 3.2.2 实向量范数的算法设计与优化29-32
- 3.2.3 复向量范数的算法分析32-33
- 3.2.4 复向量范数的算法设计与优化33-38
- 3.3 矩阵范数设计与实现38-45
- 3.3.1 实矩阵范数的算法分析38-39
- 3.3.2 实矩阵范数的算法设计与优化39-41
- 3.3.3 复矩阵范数的算法分析41-42
- 3.3.4 复矩阵范数的算法设计与优化42-45
- 3.4 DDOT的设计与实现45-47
- 3.4.1 DDOT的算法分析45
- 3.4.2 DDOT的算法设计与优化45-47
- 3.5 性能测试与分析47-49
- 3.6 本章小结49-50
- 第四章 BLAS2汇编程序设计与实现50-79
- 4.1 BLAS2算法概述50
- 4.2 GEMV的实现50-59
- 4.2.1 GEMV的算法分析50-52
- 4.2.2 GEMV的算法设计与实现52-59
- 4.3 SUM_MV的实现59-63
- 4.3.1 SUM_MV的算法分析59
- 4.3.2 SUM_MV的算法设计与实现59-63
- 4.4 GER的实现63-67
- 4.4.1 GER的算法分析63-65
- 4.4.2 GER的算法设计与实现65-67
- 4.5 TRMV的实现67-72
- 4.5.1 TRMV的算法分析67-69
- 4.5.2 TRMV的算法设计与实现69-72
- 4.6 TRSV的实现72-75
- 4.6.1 TRSV的算法分析72-73
- 4.6.2 TRSV的算法设计与实现73-75
- 4.7 性能测试与分析75-78
- 4.8 本章小结78-79
- 第五章 BLAS2的多核设计与实现79-90
- 5.1 GEMV的并行性分析79-80
- 5.2 GEMV的多核设计与实现80-82
- 5.3 SUM_MV的多核设计与实现82-83
- 5.4 GER的多核设计与实现83-85
- 5.5 TRMV的多核设计与实现85-86
- 5.6 TRSV的多核设计与实现86-88
- 5.7 性能测试与分析88-89
- 5.7.1 GEMV的多核性能测试与分析88
- 5.7.2 BLAS2的多核性能测试与分析88-89
- 5.8 本章小结89-90
- 第六章 结束语90-92
- 6.1 论文工作总结90-91
- 6.2 后续工作与展望91-92
- 致谢92-94
- 参考文献94-97
- 作者在学期间取得的学术成果97
【相似文献】
中国期刊全文数据库 前3条
1 罗茜文;;CEVA推出业界首款面向软件无线电的向量处理器 DSP内核进军4G市场[J];移动通信;2010年23期
2 韩霜;;CEVA向量处理器DSP内核大幅提升无线基站性能[J];世界电子元器件;2010年12期
3 ;[J];;年期
中国硕士学位论文全文数据库 前1条
1 张军阳;面向多核向量处理器BLAS库的设计与实现[D];国防科学技术大学;2014年
本文关键词:面向多核向量处理器BLAS库的设计与实现,由笔耕文化传播整理发布。
,本文编号:321401
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/321401.html