[发明专利]基于CUDA的化工流程模拟软件提高计算速度的方法在审
申请号: | 202010922909.8 | 申请日: | 2020-09-04 |
公开(公告)号: | CN112084650A | 公开(公告)日: | 2020-12-15 |
发明(设计)人: | 许俊炜 | 申请(专利权)人: | 杭州百子尖科技股份有限公司 |
主分类号: | G06F30/20 | 分类号: | G06F30/20;G06F9/50;G06F111/10 |
代理公司: | 杭州九洲专利事务所有限公司 33101 | 代理人: | 沈敏强 |
地址: | 310023 浙江省杭州市余杭区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 cuda 化工 流程 模拟 软件 提高 计算 速度 方法 | ||
1.一种基于CUDA的化工流程模拟软件提高计算速度的方法,其特征在于:
S1、通过对计算机性能的测试确定阈值T,作为参数配置到化工流程模拟软件;
S2、化工流程模拟软件搭建模拟工程文件,模拟化工过程建立化工单元模型,并输入相关的物料数据和参数数据;
S3、通过数学建模将模拟工程中的各项数据转化为非线性方程组,表示为其矩阵形式表示为记为F(x)=0
S4、设定[x1(k),x2(k),…,xn(k)]是方程组的一组近似根,方程组中非线性方程对未知数求偏导,将偏导组合成Jacobi矩阵,表示为
S5、根据未知数的值求解非线性方程组的残差,Jacobi矩阵与残差组合成线性方程组,表示为
S6、设定未知数一组初值[x1(0),x2(0),…,xn(0)];
S7、将未知数的值代入F(x),F'(x),得到残差的值;
S8、组织Jacobi矩阵数据,提取矩阵的非零数据,将这些数据的行坐标组织为数组rows,列坐标组织为数组columns,系数的值组织为数组values,残差值组织成数组b;
S9、根据矩阵的维度确定将要采用的算法
S9.1、若维度大于或等于阈值T,采用CUDA提供GPU算法;
S9.2、若维度小于阈值T,则采用CUDA提供的CPU算法;
S10、将求解的结果作为未知数的梯度,通过x(k+1)=x(k)+F'(x(k))-1·F(x(k))计算得到新的迭代未知数值,表示为[x1(k),x2(k),…,xn(k)];
S11、判断二次迭代未知数的差值,若在设定的精度要求范围内,则结束运行返回结果;若未达到精度要求,则将新的未知数值[x1(k),x2(k),…,xn(k)]带入计算,重复步骤S7-10,直至差值满足精度要求或达到设定的迭代次数。
2.根据权利要求1所述的基于CUDA的化工流程模拟软件提高计算速度的方法,其特征在于,使用GPU算法求解的步骤如下:
通过CUDA提供的cudaMalloc方法在device上分配显存;
将行坐标rows、列坐标columns、系数的值values和残差的值b的数据从host复制到device;
使用Cuda提供的cuSolver库GPU算法cusolverSpDscrlrlsvqr对矩阵进行并行化求解;
将计算结果从device复制到host。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州百子尖科技股份有限公司,未经杭州百子尖科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010922909.8/1.html,转载请声明来源钻瓜专利网。