
设计开发
基于FPGA的并行蒙
特卡洛计算加速器的设计与实现
石琳琦赵辛宇吴望尘
(山东大学物理学院微电子系山东济南250100)
摘要:本文对基于FPGA的并行蒙特卡落计算加速器进行了研究,利用随机化算法实现了积分运算。利用FPGA内部逻辑资源本富、可用于并行计算的优势,以FPGA为硬件检心部分,以随机化算法为主要恶想,利用流水线设计与状态机设计相结合的结构实现了以ex函数为模型的积分。结果显示,计算遗度得列很大提高,为进一步计算更复杂的被积函数提供了方法和途径。
关键词:FPGA并行计算随机化算法加违器数值积分
中图分类号:TN492;TP23
文献标识码:A
文章编号:1007-9416(2013)05-0186-03
现代科技的发展对大量数据的高精度、高速度计算提出了更高的要求,而现代计算机的CPU主要进行串行计算。传统的计算手段越来越难以满足更复杂、更高级的计算需求,因此,研究开发硬件计算加速器具有非常重要的实际意义,
FPGA(FieldProgrammable GateArray),即现场可编程逻辑阵列,其基本的可编程逻辑单元基本都是由查找表(LUT,Look UpTable)和寄存器(Register)组成的,查找表用来完成组合逻辑功能,奇存器完成时序逻辑的设计,FPGA内部的丰富的布线资源可以将FPGA中所有的逻辑模块连接起来,使其完成极其复杂的时序与组合逻辑电路功能,适用于高速,高密度的高端数字逻辑电路设计领域。
f(b f(a)2
b
图1自然指数图像
随机数存储模换(rom_x)。
随机数存储模换(rom_y)
聚数与单精度浮点数转化模块(coa_2)
整数与单精度浮点数转化模换(con_3)
面积计算模块(moduie squart)
小数点移动模块(div_x)
小数点移动模块(div_)
浮点数比较计数模块(moduie compare2)
图2方案流程图
F(x)计算模块(esp_x)
本研究承蒙章亚明老师、周雅瑾老师悉心指导,谨表谢忧! 8
蒙特卡洛方法(Monte Carlo method)是一种以概率统计理论为指导的、非常重要的数值计算方法,基于它使用随机数(或更常见的伪随机数可以解决很多复杂的计算问题,该法在金融工程学,宏观经济学、计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算等领域有广泛应用。蒙特卡洛方法首先将定积分的求解间题转化为随机间题,然后通过大量的随机抽样以及对抽样结果的统计分析,得到多重积分的近似解。在很多情况下,使用蒙特卡洛方法得到的多重积分近似解都可以作为解决实际问题的真实值使用。在积分重数比较大的情况下,使用蒙特卡洛方法求解多重积分间题往往是最有效率的。)
本研究将FPGA的并行计算运用到计算被积表达式较为复杂的积分运算中,以开发一种可以实现加速计算功能的装置。在研究中,确定以作为被积函数进行积分。基于硬件的并行计算方式和随机化算法,在一定区域内随机生成坐标,通过对点的位置进行比较得到积分面积,运算中包含众多可以并行进行的重复过程,可以利用FPGA当中众多的逻辑资源进行并行的计算。该法充分发挥了硬
件的并行计算优势,使运算速度得到很大提高。 1方案设计
1.1结构设计
N4
B rauht
00000808
0000800
8
000800008
05008080000800000
图3rom_x模块原理和时序仿真图 9@@ 图4compare2模块状态图