[发明专利]一种基于CUDA的种子分布数据并行获取方法无效

专利信息
申请号: 201210110794.8 申请日: 2012-04-16
公开(公告)号: CN102662641A 公开(公告)日: 2012-09-12
发明(设计)人: 范菁;官馨馨;汤颖;董天阳 申请(专利权)人: 浙江工业大学
主分类号: G06F9/38 分类号: G06F9/38;G06F17/30
代理公司: 杭州天正专利事务所有限公司 33201 代理人: 王兵;王利强
地址: 310014 *** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种基于CUDA的种子分布数据并行获取方法,该方法在CUDA架构下,在CPU上执行的主机端和在GPU上执行的设备端;所述种子分布数据并行获取方法包括以下步骤:(1)、输入数据内存空间分配并初始化;(2)、输入数据显存空间分配;(3)、内存到显存的输入数据传输;(4)、输出数据显存空间分配;(5)、输出数据内存空间分配;(6)、设置设备端内核执行配置,调用设备端内核函数计算种子分布。本发明提供一种在确保精度的同时获得较好的计算性能、降低演化仿真时间的基于CUDA的种子分布数据并行获取方法。
搜索关键词: 一种 基于 cuda 种子 分布 数据 并行 获取 方法
【主权项】:
一种基于CUDA的种子分布数据并行获取方法,其特征在于:该获取方法在CUDA架构下,在CPU上执行的主机端和在GPU上执行的设备端;所述种子分布数据并行获取方法包括以下步骤:(1)、输入数据内存空间分配并初始化:根据样地单元规模分配内存空间存放每个样地单元中心坐标;根据成年树规模分别分配内存空间存放成年树的胸径、空间坐标并初始化;根据种子分布模型所需常量参数分配内存空间并初始化;(2)、输入数据显存空间分配:调用CUDAAPI函数cudaMalloc在显存的全局存储器中分配空间用于存放样地单元和成年树数据;(3)、内存到显存的输入数据传输:调用CUDA API函数cudaMemcpy,将以上输入数据从内存复制到全局存储器对应区域,并调用cudaMemcpyToSymbol将各常量参数直接复制到常量存储器;(4)、输出数据显存空间分配:根据内核配置情况分配显存空间,用于存放设备端的计算结果;(5)、输出数据内存空间分配;(6)、设置设备端内核执行配置,调用设备端内核函数计算种子分布,设备端内核函数计算步骤如下:(6.1)根据CUDA内建函数获得线程块的Y索引,即目标样地单元,记为bid_y;(6.2)在0号线程中根据bid_y读取目标样地单元的空间坐标保存到共享存储器;初始化数组seeds_thread各元素为0;调用CUDA同步函数__syncthreads(),使得块内所有线程在初始化完成后再进行种子分布数计算累加;(6.3)根据CUDA内建函数获得该线程所在线程网格的X索引,记为tid_x,表示参与该线程计算的成年树集;设置寄存器变量,对每棵成年树i,i<n(n为常量),根据索引tid_x×n+i获得成年树的胸径和空间位置,按照种子分布计算公式计算种子数并累加到寄存器变量;待n次迭加完成后,将该寄存器变量写入共享存储器seeds_thread数 组中;(6.4)调用CUDA同步函数__syncthreads(),采用树形规约算法,通过多线程并发执行实现每个线程的种子数累加操作,得到该线程块的种子贡献总数;树形规约算法中,s表示数组长度,初始值为T,对于seeds_thread数组的前半部分元素,每一个与比其索引大s的元素相加后更新其值,每次迭代后将s值减半;(6.5)在0号线程根据线程块索引将结果保存至全局存储器seeds_block中,得到种子分布。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201210110794.8/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top