首页> 中文学位 >基于飞腾2000+的BLAS3函数优化与实现
【6h】

基于飞腾2000+的BLAS3函数优化与实现

代理获取

目录

声明

第1章 绪论

1.1 研究背景及意义

1.2 国内外研究现状

1.2.1 国内研究现状

1.2.2 国外研究现状

1.3 论文的主要研究内容

1.3.1 SGEMM单核优化与实现

1.3.2 整数GEMM单核设计与实现

1.4 论文的组织结构

第2章 BLAS库和整数矩阵乘及飞腾2000+简介

2.1 BLAS库简介

2.2 飞腾2000+简介

2.2.1 飞腾2000+体系结构简介

2.2.2 飞腾2000+寄存器简介

2.2.3 SIMD简介

2.3 整数矩阵乘法

2.4 本章小结

第3章 SGEMM单核优化与实现

3.1 SGEMM矩阵分块

3.2 SGEMM核心循环算法

3.3 SGEMM寄存器使用策略

3.4 SGEMM分块策略

3.5 SGEMM数据重排

3.6 SGEMM实例

3.7 本章小结

第4章 整数GEMM单核设计与实现

4.1 整数GEMM总体设计

4.1.1 整数矩阵乘法分块详细分析

4.1.2 整数矩阵数据重排

4.1.3 整数矩阵乘法数据重用

4.2 整数GEMM分块参数选择

4.2.1 micro kernel中mr和nr的选择

4.2.2 micro kernel中kc和mc及nc的选择

4.3 fastblas sigemm设计

4.3.1 fastblas sigemm内核寄存器分配

4.3.2 缓存分配

4.4 fastblas chgemm设计

4.4.1 fastblas chgemm内核寄存器分配

4.4.2 fastblas chgemm分块参数选择

4.4.3 fastblas chgemm数据重排

4.5 fastblas schgemm设计

4.5.1 schgemm内核寄存器分配

4.5.2 fastblas schgemm分块参数选择

4.5.3 fastblas schgemm数据重排

4.6 整数GEMM实例

4.6.1 sigemm实例

4.6.2 chgemm计算实例

4.6.3 schgemm计算实例

4.7 本章总结

第5章 实验

5.1 飞腾2000+浮点峰值计算

5.2 sgemm性能对比

5.3 sigemm性能对比

5.4 chgemm性能对比

5.5 schgemm性能对比

5.6 本章总结

结论

参考文献

致谢

附录A 发表论文和参加科研情况说明

展开▼

摘要

近年来随着国家对国家信息安全和产业经济安全的愈发重视,芯片国产化成为当务之急。与此同时ARM体系结构在迅速发展。基于ARM体系结构的处理器具有良好的性能与能效。基于ARM体系结构搭建高性能计算系统成为可能。随着深度学习的快速发展,基础线性代数运算不仅仅在科学计算和工程计算领域十分重要,也已成为机器学习、自然语言处理、计算机视觉等领域的底层数学计算支撑。BLAS(Basic Linear Basic Linear Algebra Subprograms)基础线性代数程序集是一系列基本线性代数运算函数的接口标准,通过使用该接口来规范发布基础线性代数操作的数值库。国产自主研发的飞腾2000+处理器基于ARMv8架构。作为一款新型处理器,飞腾2000+存在着支持软件少、生态系统薄弱等问题。本文基于国产自主研发的飞腾2000+处理器设计并实现了高性能的整数GEMM(General Matrix Multiply),并基于飞腾2000+处理器面向人工智能领域的计算特征对单精度浮点矩阵乘(SGEMM)进行优化。本文主要的工作和研究成果包括以下几个方面:  (1)设计和实现了基于飞腾2000+的整数矩阵乘法。现有的BLAS库中没有整数矩阵乘法(GEMM),也没有基于飞腾平台的整数GEMM实现。但整数GEMM在CNN(卷积神经网络)中有着广泛的应用且有着重要的作用,由于CNN有着对噪声不敏感的特点,使用整数GEMM能有效的通过减少访存和计算量来提高效率。本文基于GotoBLAS的分块计算与分块存储思想,针对飞腾2000+处理器的体系结构和硬件资源采用ARMv864位访存指令、缓存预取指令及NEON混合向量乘加指令等手工编写内核汇编代码,以最大化计算访存比为目标来确定寄存器使用策略。最终实现高效整数矩阵乘法。  (2)实现基于飞腾2000+处理器面向人工智能计算特征的单精度浮点矩阵乘法(SGEMM)优化。本文基于OpenBLAS针对飞腾2000+处理器的多级存储结构,进行访存优化。针对人工智能领域中对不规则小矩阵的计算需求,对循环过程中的数据重排操作进行手工汇编编写,并基于飞腾2000+处理器的硬件资源进行寄存器的重新分配,手工汇编编写新的计算内核。优化后的SGEMM相比于OpenBLAS的SGEMM对于不规则小矩阵性能有显著提升。对于大型方阵,性能没有明显下降。

著录项

  • 作者

    刘彦;

  • 作者单位

    湖南大学;

  • 授予单位 湖南大学;
  • 学科 计算机技术
  • 授予学位 硕士
  • 导师姓名 全哲,吴炜;
  • 年度 2020
  • 页码
  • 总页数
  • 原文格式 PDF
  • 正文语种 chi
  • 中图分类
  • 关键词

    飞腾2000+处理器,BLAS函数,整数矩阵乘法;

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号