一种便携的可移动积分计算器设备实现方法

文档序号:6635458阅读:290来源:国知局
一种便携的可移动积分计算器设备实现方法
【专利摘要】本发明公开了一种便携的可移动积分计算器设备实现方法,其结构包括计算模块、电源模块、输出模块和输入模块,其中:计算模块,通过随机数生成以及蒙特卡洛方法中各打靶点间数据无关性,将随机数的生成部分和打靶点函数值计算这两部分计算密集的块交由GPU来完成,将对积分精度以及收敛性判断操作交由CPU来完成,从而有效的加速数值积分的求解;电源模块,连接计算模块,为整个积分计算器设备提供供电;输入模块,连接计算模块,为积分计算器的输出按键;输出模块,连接计算模块并将计算模块的计算结果输出。该一种便携的可移动积分计算器设备实现方法与现有技术相比,极大的加速数值积分的求解速度,从而保证了积分计算器的高效性。
【专利说明】一种便携的可移动积分计算器设备实现方法

【技术领域】
[0001] 本发明涉及计算器领域,具体地说是一种实用性强、便携的可移动积分计算器设 备实现方法。

【背景技术】
[0002] 在现代的科技技术中积分一直占据着举足轻重的地位,然后遗憾的是绝大多数的 积分运算都是没有解析解的,这样就迫使人们不得使用数据的方法来计算积分的值。对于 低维积分来讲,计算量并不算大,但高维积分计算量是惊人的。对于很多科学问题,计算频 繁和耗时最多的往往是数值积分,特别是多重的数值积分,如:二维体系下的两体相互作用 (四重积分),自由电子气或晶格中的库仑积分(六重积分),等等。
[0003] 正是因为计算量大,人们多数情况下不得不使用计算机甚至是超级计算机来完成 积分计算,因此在市场上出售的计算器中几乎都没有积分计算功能。而这样的功能确是工 农业生产中急需的,很多情况下没有必要放到大型计算机上仅仅完成一个积分计算。
[0004] 得益于对快速积分计算的需求,对于单重积分人们逐步发展了很多种数值积分的 计算方法,如:辛卜生求积法、龙贝格求积法、高斯求积法等等,这些方法的效率都比较高, 特别是高斯求积法。但对于多重积分,一直以来没有特别好的求解方法,用的较多的有高斯 多重积分求积法,但是对于被积函数非常复杂的情况(如隐函数等)或高重积分,使用高斯 求解的效率很低。鉴于上述困难,人们在数值计算高重积分的时候往往选择使用蒙特卡洛 方法。蒙特卡洛方法原理简单,也容易实现,但使用蒙特卡洛方法需要足够多的靶点才能使 积分的结果达到一定的精度,这在善长串行计算的CPU上运行时,所消耗的时间也往往是 无法忍受的。这也是市场上没有积分计算器的主要原因。
[0005] 我们知道GPU作为一种常用的众核处理器,其数以百计的浮点运算核心、高显存 带宽,决定了 GPU非常适合用来加速一些线程间通信量较小的大规模并行程序,而蒙特卡 洛方法恰恰具有这样的特性。首先,蒙特卡洛方法所必需的随机数的生成是线程无干性的; 其次,被积函数值的求解也是线程无干的,此外这些处理过程都是计算密集型的,因此我们 可以充分利用GPU来加速数值积分的计算。
[0006] 此外,由于现在的车用锂离子电池具有超大的电容量,完全可以支持GPU卡的用 电消耗。因此便携的野外用积分计算器的出现就成为了一种可能。基于此,现提供一种实 用性强、便携的可移动积分计算器设备实现方法。


【发明内容】

[0007] 本发明的技术任务是针对以上不足之处,提供一种实用性强、便携的可移动积分 计算器设备实现方法。
[0008] -种便携的可移动积分计算器设备实现方法,其结构包括计算模块、电源模块、输 出模块和输入模块,其中: 计算模块,通过随机数生成以及蒙特卡洛方法中各打靶点间数据无关性,将随机数的 生成部分和打靶点函数值计算这两部分计算密集的块交由GPU来完成,将对积分精度以及 收敛性判断操作交由CPU来完成,从而有效的加速数值积分的求解; 电源模块,连接计算模块,为整个积分计算器设备提供供电,该电源模块使用锂离子电 池,同时配备内置的充电接口; 输入模块,连接计算模块,为积分计算器的输出按键,包括基本的数字、字母、运算符号 以及积分符号的键值,通过它向计算器设备输入被积函数并计算,提供数据、函数、参数的 输入功能,固化安装在整个计算器设备上; 输出模块,连接计算模块并将计算模块的计算结果输出,该输出模块由液晶显示板组 成,固化安装在计算器设备上。
[0009] 所述计算模块的具体计算过程为: 首先计算积分参数输入:设置积分的计算精度、第一次计算所需要计算的被积函数值 个数n及精度所需新增被积函数值个数S n ; 在GPU上生成随机数:调用GPU设备端函数生成n X m个随机数,其中m为积分的维 度;并将结果存放在设备端显存的线性数组Array中; 划分和生成GPU线程空间; 调用函数kernel函数计算被积函数值并归约,为避免访 存冲突,计算第n个被积函数值时的第m个靶点从线性数组 Array|ni X N + n】中选取; 将计算完成的积分值拷回主内存,并在CPU端判断结果是否已达到所要求精度,以决 定是否需要进一步计算; 完成计算并将计算结果输出到输出模块。
[0010] 所述GPU的线程空间分为线程网格grid,线程块block和线程thread三重结构, 设定线程空间的grid和block均为二维结构,即:block(q, p)和thread(n, m) ;GPU内的 每一个流多处理器SM中有至少6个warp,这里的warp是指线程块block分割后的线程束, 故线程块block的数量是GPU中流多处理器SM数量的整数倍,线程thread的数量是每个 流多处理器SM中流处理器SP数量的整数倍,此时每个被积函数值的计算均由一个线程完 成,各线程块block及线程thread之间无数据通信。
[0011] 本发明的一种便携的可移动积分计算器设备实现方法,具有以下优点: 该发明的一种便携的可移动积分计算器设备实现方法充分剖析了使用蒙特卡洛方法 的特点,并充分考虑了各种计算资源的特征,大幅加速了数值积分的计算速度,使得一些需 要很长时间才能完成的计算时间大大缩短,从而实现积分计算的计算器化和便携化,极大 的方便了从事工农业生产的科研技术人员,丰富公司的产品线,而且也在一定程度上实现 了专用化的高性能计算专用机,提升公司的产品竞争力,实用性较强,适用范围广泛,易于 推广。

【专利附图】

【附图说明】
[0012] 附图1为本发明的积分空间与GPU线程对应图。
[0013] 附图2为本发明的计算模块计算过程图。
[0014] 附图3为本发明的设备结构图。

【具体实施方式】
[0015] 下面结合附图和具体实施例对本发明作进一步说明。
[0016] 本发明提供一种便携的可移动积分计算器设备实现方法,如附图3所示,其结构 包括计算模块、电源模块、输出模块和输入模块,其中: 计算模块,为整个计算器设备的核心模块,其主要利用众核处理器加速数值积分求解 的方法。根据随机数生成以及蒙特卡洛方法中各打靶点间数据无关性的特点,其计算过程 分为三个主要步骤:随机数生成、靶点的被积函数值计算、精度和收敛性判断。对于前两部 分由于需要生成和计算的靶点数目众多(数百万乃致千万以上),要求较多的计算资源和较 高的存储器带宽,因此我们可以将这部分计算移植到GPU上来完成。对于最后一部分,即精 度和收敛性判断,是对是否完成计算并达到所要求精度的判断,它需要一些判断和分支操 作,因此我们将其交给CPU来完成,从而有效的加速数值积分的求解。
[0017] 电源模块,连接计算模块,为整个积分计算器设备提供供电,为了便携起见,本发 明主要使用锂离子电池,同时配备内置充电设备接口。
[0018] 输入模块,连接计算模块,该模块为积分计算器的输出按键,它主要起提供数据、 函数、参数的输入功能,一般固化在计算模块设备上。
[0019] 输出模块,连接计算模块并将计算模块的计算结果输出,该输出模块由液晶显示 板组成,固化安装在计算器设备上。
[0020] 如附图1所示,给出了本发明所涉及的积分空间与GPU中计算线程的对应关系。一 般来讲,使用蒙特卡洛方法需要抽样足够多的靶点才能使计算的结果满足一定的精度,因 此需要生成的靶点和需要计算的被积函数值数目巨大。由于各独立的被积函数值之间是无 数据相关性的,因此我们把这些独立的函数值所构成的空间称之为问题空间。
[0021] 按现行的CUDA架构,所述GPU的线程空间分为线程网格grid,线程块block和 线程thread三重结构,设定线程空间的grid和block均为二维结构,即:block(q, p)和 thread (n, m) ;GPU内的每一个流多处理器SM中有至少6个warp,这里的warp是指线程块 block分割后的线程束,故线程块block的数量是GPU中流多处理器SM数量的整数倍,线程 thread的数量是每个流多处理器SM中流处理器SP数量的整数倍,此时每个被积函数值的 计算均由一个线程完成,各线程块block及线程thread之间无数据通信,因此附图1所示 的问题空间到线程的简单映射可行且高效。
[0022] 进一步的,所述计算模块的具体计算过程如附图2所示: 首先计算积分参数输入:设置积分的计算精度、第一次计算所需要计算的被积函数值 个数n及精度所需新增被积函数值个数S n ; 在GPU上生成随机数:调用GPU设备端函数生成n X m个随机数,其中m为积分的维 度;并将结果存放在设备端显存的线性数组Array中; 划分和生成GPU线程空间; 调用函数kernel函数计算被积函数值并归约,为避免访存冲突,计算第n个被积函数 值时的第m个靶点从线性数组Arraypii X N + nj中选取; 将计算完成的积分值拷回主内存,并在CPU端判断结果是否已达到所要求精度,以决 定是否需要进一步计算; 完成计算并将计算结果输出到输出模块。
[0023] 在实际设计及制作过程中,如附图3所示给出的结构示意图。其中计算模块即上 述图1和图2描述的计算主体,它包括CPU、GPU、内存储器等部件。电源模块为积分计算器 的能量供应单元,它主要是由锂离子电池组成。对于现在的锂离子电池,如三元锂电池,可 在3. Okg的重量下容纳0. 5千瓦时的电能,它可以有效驱动本发明中的计算主体工作3-4 小时,从而实现了积分计算器装置的便携。电源模块由于体积小,一般安装并固定于计算模 块内部,同时电源模块还应该包含简易的充电接口。输出模块主要是完成对输入参数或计 算结果的显示,它一般由液晶显示板组成,并固化在计算模块的外壳上。输入模块是积分计 算器系统的参数输入设备,它包括基本的数字、字母、运算符号以及积分符号等键值,通过 它可以向计算设备输入被积函数并计算。输入模块一般也是固化在计算模块的外壳上。
[0024] 本发明所采用的装置具有体积小、重量轻等特点,且本发明的算法可以极大的加 速数值积分的求解速度,从而保证了积分计算器的高效性。该装置对于工农业生产,特别是 厂房、野外的作业施工意义重大,可以极大的提升工农业生产的效率。
[0025] 上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于 上述【具体实施方式】,任何符合本发明的一种便携的可移动积分计算器设备实现方法的权利 要求书的且任何所述【技术领域】的普通技术人员对其所做的适当变化或替换,皆应落入本发 明的专利保护范围。
【权利要求】
1. 一种便携的可移动积分计算器设备实现方法,其特征在于,其结构包括计算模块、电 源模块、输出模块和输入模块,其中: 计算模块,通过随机数生成以及蒙特卡洛方法中各打靶点间数据无关性,将随机数的 生成部分和打靶点函数值计算这两部分计算密集的块交由GPU来完成,将对积分精度以及 收敛性判断操作交由CPU来完成,从而有效的加速数值积分的求解; 电源模块,连接计算模块,为整个积分计算器设备提供供电,该电源模块使用锂离子电 池,同时配备内置的充电接口; 输入模块,连接计算模块,为积分计算器的输出按键,包括基本的数字、字母、运算符号 以及积分符号的键值,通过它向计算器设备输入被积函数并计算,提供数据、函数、参数的 输入功能,固化安装在整个计算器设备上; 输出模块,连接计算模块并将计算模块的计算结果输出,该输出模块由液晶显示板组 成,固化安装在计算器设备上。
2. 根据权利要求1所述的一种便携的可移动积分计算器设备实现方法,其特征在于, 所述计算模块的具体计算过程为: 首先计算积分参数输入:设置积分的计算精度、第一次计算所需要计算的被积函数值 个数η及精度所需新增被积函数值个数δ n ; 在GPU上生成随机数:调用GPU设备端函数生成η X m个随机数,其中m为积分的维 度;并将结果存放在设备端显存的线性数组Array中; 划分和生成GPU线程空间; 调用函数kernel函数计算被积函数值并归约,为避免访 存冲突,计算第η个被积函数值时的第m个靶点从线性数组 Array[m X N十n]中选取; 将计算完成的积分值拷回主内存,并在CPU端判断结果是否已达到所要求精度,以决 定是否需要进一步计算; 完成计算并将计算结果输出到输出模块。
3. 根据权利要求2所述的一种便携的可移动积分计算器设备实现方法,其特征在于, 所述GPU的线程空间分为线程网格grid,线程块block和线程thread三重结构,设定线程 空间的grid和block均为二维结构,即:block (q, p)和thread (n, m) ;GPU内的每一个流 多处理器SM中有至少6个warp,这里的warp是指线程块block分割后的线程束,故线程 块block的数量是GPU中流多处理器SM数量的整数倍,线程thread的数量是每个流多处 理器SM中流处理器SP数量的整数倍,此时每个被积函数值的计算均由一个线程完成,各线 程块block及线程thread之间无数据通信。
【文档编号】G06F15/02GK104375971SQ201410678515
【公开日】2015年2月25日 申请日期:2014年11月24日 优先权日:2014年11月24日
【发明者】刘羽 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1