面向多核DSP的高性能并行BLAS3的设计与实现
【摘要】:BLAS库在高性能计算领域中一直扮演着非常重要的角色,其体现的效率是高性能计算的主要评测标准。研究基于多核DSP的并行BLAS库,对多核DSP在高性能计算领域的评测及应用,对开发多核DSP的并行计算性能,都有着十分重要的现实意义。本文深入研究了BLAS3中的各个例程库,设计和实现了基于C6678的单核GEMM、SYMM、SYRK、SYR2K及TRMM;基于C6678的多核通信与同步机制,设计并实现了并行的GEMM、SYMM、SYRK、SYR2K及TRMM。主要的研究工作包括以下几个方面:1、设计和实现了基于C6678单核的GEMM。针对体系结构的多级存储特点,对GEMM的核心循环在Cache级进行了访存比的性能比较和分析,结合C6678的硬件资源和体系结构进行了访存优化,对存储空间进行了合理的划分,设计和实现了高性能的GEMM,经过测试,性能达8.49 GFLOPS。2、设计和实现了基于C6678单核的BLAS3。详细分析和研究了SYMM、SYRK、SYR2K及TRMM四个例程的运算特点;对SYMM中对称矩阵的数据访问进行了优化设计;对SYRK的BP kernel更新对称矩阵进行了优化设计;对SYR2K的计算方式进行了转换使其可以直接调用SYRK的接口例程;对TRMM中三角矩阵的访问进行了分析,根据对角线的数据特点对BP kernel进行了优化设计;结合C6678的硬件机制分别将SYMM、SYRK、SYR2K及TRMM四个例程高效地映射至C6678的单核结构中,性能分别为8.241、8.102、8.008、8.203 GFLOPS。3、设计和实现了基于C6678的多核并行BLAS3。深入剖析了各个例程的算法规则,采用分块的方式对数据进行并行分解,使块与块之间的计算相互独立,并优化了多核间的负载均衡,结合C6678的多核通信及同步机制将并行的分块算法高效地映射至多个核中,经过性能测试,GEMM、SYMM、SYRK、SYR2K和TRMM等BLAS3例程的八核并行加速比分别为6.21、5.22、4.49、4.49和4.55。
【关键词】:多核处理器 并行 线性代数库 矩阵乘法 分块算法
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP338.6