System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 几何约束求解系统的加速方法、系统及存储介质技术方案_技高网

几何约束求解系统的加速方法、系统及存储介质技术方案

技术编号:41873075 阅读:13 留言:0更新日期:2024-07-02 00:24
本发明专利技术提供了一种几何约束求解系统的加速方法、系统及存储介质,包括步骤1:将几何约束系统里的矩阵运算的任务抽取出来,重新编程;步骤2:将重新编程的矩阵运算部署到并行计算设备上运行。本发明专利技术的有益效果是:本发明专利技术解决了几何约束求解系统的高密度数学计算部分的性能瓶颈,将串行的矩阵计算转变成并行计算,应用OpenCL编程框架和并行化编程技巧,将几何约束求解系统的矩阵运算从串行化执行的CPU移出到支持并行化计算的GPU、FPGA或DSP等设备,提高计算效率,降低计算复杂度。

【技术实现步骤摘要】

本专利技术涉及计算机软件,尤其涉及几何约束求解系统的加速方法、系统及存储介质


技术介绍

1、在现有的约束求解引擎的代码中同时含有逻辑计算部分和高密度的数学计算部分,最典型的就是大量的矩阵运算。逻辑计算部分的代码在cpu中串行执行,而高密度的数学计算部分的代码,亦放在cpu里串行执行,其实这种串行计算方式对于高密度数学计算是很低效的。在此以矩阵乘法为例,目前最快的coppersmith-winograd矩阵乘法算法复杂度是θ(n2.375)。通常几何约束系统包含上百个几何元素和约束条件,这些几何元素和约束条件构成的方程组转换成矩阵方程,其矩阵维度可达100*100,按上述算法复杂度计算,这需要执行超过10,000以上乘法计算。若在三维装配体里,几何元素和约束条件构成的矩阵规模可达1000*1000的维度,需要执行1,000,000次以上乘法计算的运算量。在一些大型复杂的装配体,如涡轮发动机,燃气轮机和盾构机等,其几何元素和约束条件的矩阵规模增长到10,000*10,000维度,计算量会剧增到100,000,000次乘法运算。高达亿次的计算对串行执行的cpu来说负担沉重。几何约束系统中每拖动一次就需要进行一遍1亿次的乘法运算,连续拖动就会以亿次为基础的线性增长的庞大计算量。现有的约束求解能力根本无力支撑大型复杂装配体的约束求解系统,其将显著拖慢几何约束求解器的反应速度,显著减降设计者的生产率。

2、几何约束求解系统的高密度的数学计算部分代码是整个求解器的性能瓶颈,在可接受的时间范围内不足以求解大型复杂约束系统的方程组的解。

3、在现有的几何约束求解系统中对矩阵计算的传统方法是:如图1所示,将矩阵a的行元素与矩阵b的列元素逐个地进行对应相乘并相加才得到一个元素的计算结果。矩阵a的每一行均须跟矩阵b的每一列进行计算,才能得到结果矩阵。采用这种朴素的方法编写的计算机代码,其算法复杂度高达θ(n3)。随着矩阵维数n的增长,其计算量则以3次幂剧烈增长。这种朴素算法因巨量的计算而无法应用到几何约束求解系统中。

4、dan coppersmith与shmuel winograd采用分而治之的算法思想和高超的技巧提出coppersmith-winograd矩阵相乘算法,将算法复杂度从θ(n3)降低到θ(n2.375)。这是目前最快的矩阵相乘算法,现有的几何约束求解系统即是应用coppersmith-winograd算法编写的代码,运行在串行的cpu上。


技术实现思路

1、本专利技术提供了一种几何约束求解系统的加速方法,包括如下步骤:

2、步骤1:将几何约束系统里的矩阵运算的任务抽取出来,重新编程;

3、步骤2:将重新编程的矩阵运算部署到并行计算设备上运行。

4、作为本专利技术的进一步改进,在所述步骤1中,抽取几何约束求解系统的数学计算代码,利用opencl编程框架,改写成设备代码。

5、作为本专利技术的进一步改进,在所述步骤1中,将抽取的数学计算代码编写成__kernel修饰的核函数,并保存为扩展名为.cl的设备代码。

6、作为本专利技术的进一步改进,在所述步骤2中,核函数将数据映射到并行计算设备的ndrange存储器,将操作分配到并行计算设备的多个计算单元。

7、作为本专利技术的进一步改进,并行计算设备包括gpu、fpga或dsp。

8、作为本专利技术的进一步改进,并行计算设备包括多个并列的计算单元,每个计算单元对映射到ndrange存储器里的元素执行计算操作。

9、作为本专利技术的进一步改进,通过opencl api编程驱动在并行计算设备上的多个计算单元同时协同工作。

10、作为本专利技术的进一步改进,cpu负责运行几何约束系统里的逻辑计算部分。

11、本专利技术还提供了一种几何约束求解系统的加速系统,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本专利技术所述加速方法的步骤。

12、本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本专利技术所述的加速方法的步骤。

13、本专利技术的有益效果是:本专利技术解决了几何约束求解系统的高密度数学计算部分的性能瓶颈,将串行的矩阵计算转变成并行计算,应用opencl编程框架和并行化编程技巧,将几何约束求解系统的矩阵运算从串行化执行的cpu移出到支持并行化计算的gpu、fpga或dsp等设备,提高计算效率,降低计算复杂度。

本文档来自技高网...

【技术保护点】

1.一种几何约束求解系统的加速方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的加速方法,其特征在于:在所述步骤1中,抽取几何约束求解系统的数学计算代码,利用OpenCL编程框架,改写成设备代码。

3.根据权利要求2所述的加速方法,其特征在于:在所述步骤1中,将抽取的数学计算代码编写成__kernel修饰的核函数,并保存为扩展名为.cl的设备代码。

4.根据权利要求3所述的加速方法,其特征在于:在所述步骤2中,核函数将数据映射到并行计算设备的NDRange存储器,将操作分配到并行计算设备的多个计算单元。

5.根据权利要求1所述的加速方法,其特征在于:并行计算设备包括GPU、FPGA或DSP。

6.根据权利要求4所述的加速方法,其特征在于:并行计算设备包括多个并列的计算单元,每个计算单元对映射到NDRange存储器里的元素执行计算操作。

7.根据权利要求6所述的加速方法,其特征在于:通过OpenCL API编程驱动在并行计算设备上的多个计算单元同时协同工作。

8.根据权利要求1所述的加速方法,其特征在于:CPU负责运行几何约束系统里的逻辑计算部分。

9.一种几何约束求解系统的加速系统,其特征在于,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现权利要求1-8中任一项所述加速方法的步骤。

10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现权利要求1-8中任一项所述的加速方法的步骤。

...

【技术特征摘要】

1.一种几何约束求解系统的加速方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的加速方法,其特征在于:在所述步骤1中,抽取几何约束求解系统的数学计算代码,利用opencl编程框架,改写成设备代码。

3.根据权利要求2所述的加速方法,其特征在于:在所述步骤1中,将抽取的数学计算代码编写成__kernel修饰的核函数,并保存为扩展名为.cl的设备代码。

4.根据权利要求3所述的加速方法,其特征在于:在所述步骤2中,核函数将数据映射到并行计算设备的ndrange存储器,将操作分配到并行计算设备的多个计算单元。

5.根据权利要求1所述的加速方法,其特征在于:并行计算设备包括gpu、fpga或dsp。

6.根据权利要求4所述的加速方法,其特征在于:并...

【专利技术属性】
技术研发人员:徐赞
申请(专利权)人:深圳泊松软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1