基于FPGA的BLAS加速系统的设计与研究
发布时间:2020-10-13 19:37
随着信息化社会的飞速发展,人类对高性能计算的需求迅猛增长。高性能计算机的衡量标准主要以计算速度(尤其是浮点运算速度)作为标准,而BLAS数学库是高性能计算领域应用最广泛的数学库。高性能计算机的运算速度由CPU的运算速度决定,性能/功耗比值较低。如何提高效能,是当前高性能计算领域的热门话题。实现高效能计算的有效途径之一是采用运算加速器件。 本文结合国家高性能计算机工程技术研究中心预研项目,设计并实现了基于FPGA的BLAS加速系统。本文的主要工作包括:对BLAS数学库进行了核心分析,提取出DGEMM算法作为可加速部分;比较了目前常用的乘法器和加法器,分析各种乘法器和加法器的优缺点,并利用FPGA资源设计了适用于此加速系统的乘加器;重新编写了BLAS数学库,用于本加速系统;编写了驱动软件,在内核中实现了对加速系统硬件的控制以及软硬件的数据交互。设计了加速卡硬件的PCIE模块、SRAM模块和运算阵列模块。 许多关键技术在本文中也有应用:在数学库中和加速卡的设计中都利用了乒乓操作技术,并且在加速卡的设计中充分利用了流水线技术;根据CPU和加速系统的性能,通过软件调度和任务分配,实现了两者的负载均衡。 本文设计的BLAS加速系统,软件部分可以跨平台使用,硬件具有体积小、功耗低的特点。测试结果显示该加速系统可稳定运行于300MHZ,性能可达到51Gflops,而功耗只有30W,实现了高效能。
【学位单位】:首都师范大学
【学位级别】:硕士
【学位年份】:2009
【中图分类】:TP332
【部分图文】:
目前使用的有基本BLAs[8],Intel开发的MKL,AMD开发的AcML,Goto博士开发的GotoBLAS等几种,其中基本BLAS和GotoBLAS都是在Linux操作系统下使用,而ACML和MKL则是Windows和Linux系统都可以使用。图2一1是在相同条件下基本BLAS和GotoBLAS的实测性能对比。丛本万L筋和‘。t。性能比谈01{矍馨馨黝翼翼翼馨馨瞿赘翼翼翼护产护沪夕夕夕产户尹护尹尹尹尹尹尹尹尹尹尹产尹凭阵大可、图2一1基本BLAS与GotoBLAS实测性能对比可以看出,GotoBLAS的性能比基本BLAS的性能高出了一个数量级,原因是Got0BLAS充分考虑到了CPU的Cache,而且考虑到了TLB。ACML和MKL的性能与Got0BLAS相差不大,但两者都是收费的,而且两者针对自己的CPU设计的,通用性不如GotoBLAS。 2.2BLAS数学库的核心分析 BLAS(BasicLinearAlgebraSubroutines)包是一些关于矩阵的基本操作。共分三层,第一层(最底层)实现向量与向量的运算,比如向量内积 (DDOT)
通过研究可知迭代乘法器的速度不能满足高速运算的需求,一种改进的方法是将迭代乘过程展开,在一个时钟周期内完成两个部分积的求和,这样在同样的时钟周期完成求和次数是迭代乘法器的两倍。将这一操作映射到硬件上就是线性阵列乘法器,如图2一4所示。它结合了三个功能:部分积产生,累加部分积与最终相加。乘法器需要消耗的资源增加了,功耗与复杂度也有一定的增加。
2.4.2.3并行乘法器根据上述两种乘法器结构可以看出,将迭代的结构展开,乘法器的速度会有所提升,所以,进一步将阵列乘法器的迭代进行展开就得到完全并行的乘法器结构,如图2一5所示。全阵列乘法器完成NxN的乘法需要有N*N个加法器与N*N个部分积产生单元,延迟时间为O伽),为了进一步提升乘法器的速度,将部分积求和网络连接成树型结构,采用压缩器来压缩部分积,树型结构需要的资源要比全阵列结构要少,完成NxN乘法运算的时间为O(Log伽))。但是树型乘法器的连线比阵列乘法器来的复杂。
【参考文献】
本文编号:2839618
【学位单位】:首都师范大学
【学位级别】:硕士
【学位年份】:2009
【中图分类】:TP332
【部分图文】:
目前使用的有基本BLAs[8],Intel开发的MKL,AMD开发的AcML,Goto博士开发的GotoBLAS等几种,其中基本BLAS和GotoBLAS都是在Linux操作系统下使用,而ACML和MKL则是Windows和Linux系统都可以使用。图2一1是在相同条件下基本BLAS和GotoBLAS的实测性能对比。丛本万L筋和‘。t。性能比谈01{矍馨馨黝翼翼翼馨馨瞿赘翼翼翼护产护沪夕夕夕产户尹护尹尹尹尹尹尹尹尹尹尹产尹凭阵大可、图2一1基本BLAS与GotoBLAS实测性能对比可以看出,GotoBLAS的性能比基本BLAS的性能高出了一个数量级,原因是Got0BLAS充分考虑到了CPU的Cache,而且考虑到了TLB。ACML和MKL的性能与Got0BLAS相差不大,但两者都是收费的,而且两者针对自己的CPU设计的,通用性不如GotoBLAS。 2.2BLAS数学库的核心分析 BLAS(BasicLinearAlgebraSubroutines)包是一些关于矩阵的基本操作。共分三层,第一层(最底层)实现向量与向量的运算,比如向量内积 (DDOT)
通过研究可知迭代乘法器的速度不能满足高速运算的需求,一种改进的方法是将迭代乘过程展开,在一个时钟周期内完成两个部分积的求和,这样在同样的时钟周期完成求和次数是迭代乘法器的两倍。将这一操作映射到硬件上就是线性阵列乘法器,如图2一4所示。它结合了三个功能:部分积产生,累加部分积与最终相加。乘法器需要消耗的资源增加了,功耗与复杂度也有一定的增加。
2.4.2.3并行乘法器根据上述两种乘法器结构可以看出,将迭代的结构展开,乘法器的速度会有所提升,所以,进一步将阵列乘法器的迭代进行展开就得到完全并行的乘法器结构,如图2一5所示。全阵列乘法器完成NxN的乘法需要有N*N个加法器与N*N个部分积产生单元,延迟时间为O伽),为了进一步提升乘法器的速度,将部分积求和网络连接成树型结构,采用压缩器来压缩部分积,树型结构需要的资源要比全阵列结构要少,完成NxN乘法运算的时间为O(Log伽))。但是树型乘法器的连线比阵列乘法器来的复杂。
【参考文献】
相关期刊论文 前1条
1 吴金;应征;;高速浮点乘法器设计[J];电路与系统学报;2005年06期
本文编号:2839618
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2839618.html