应用CUDA加速免疫算法――Jacket和Matlab实现.docVIP

应用CUDA加速免疫算法――Jacket和Matlab实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用CUDA加速免疫算法――Jacket和Matlab实现

应用CUDA加速免疫算法――Jacket和Matlab实现   摘要:作为继遗传算法后新兴的一种人工智能算法――免疫算法最近几年在理论研究和工程应用方面得到了极大的关注和发展,但由于免疫算法本身机理的并行性使得其在通用CPU上进行测试和运行时效率低下,不利于评价算法的性能。通过通用并行计算架构CUDA使用GPU运行则更符合算法本身机理,大幅节省运行时间,降低硬件成本。   关键词:免疫算法 CUDA GUP MATLAB jacket      1 人工免疫算法   人体具有着诸如胸腺、淋巴结、皮肤、血管细胞膜等在通常情况下能与外部有害物质(抗原)产生反应来保持生命体处于有利或正常状态的机制,当然在某些情况下也会起到相反的作用。这一反应是一个复杂的自适应过程,能够优化自身以更好的检测抗原,并对接触比较频繁的抗原产生记忆,以提高下次对相同抗原的反应速度。而反应类型有三种:非特异性免疫、特异性免疫以及遗传性免疫。根据其反应过程中的多样性,人们探索出了不同的免疫理论以解决非生物环境下的问题,这就是人工免疫系统。   基本人工免疫算法过程如下:   ①随机产生一个人工免疫细胞集合作为初始群体。   ②根据群体的收敛性或预设的迭代次数设定算法的终止条件。   ③根据不同的抗原模式从①中生成的群体中抽取整个或随机抽取若干个体构成子集。   ④计算③中所抽取的子集每个个体与抗原之间的相似程度,即抗原亲和度。根据抗原模式的数目返回③循环。   ⑤根据预先设定的亲和度阀值和④计算所得结果选取最佳亲和度子集。   ⑥调整⑤所得到的子集,主要依据为④的结果或者子集之间的亲和度。   ⑦更新⑥所调整的子集激活程度。若未达到算法终止条件,则回到②循环迭代。   目前免疫算法的多样性尚未被完整认识,缺乏一个通用的数学框架,使得在评价算法性能时缺乏全面有效的依据。从以上基本算法模型中可以看出算法有很高的随机性和复杂的递归迭代,对于串行执行指令的通用CPU构架,显然得不到很高的执行效率。   2CUDA与GPU   目前在一般的个人计算机系统中,GPU扮演着协处理器的角色,将计算任务从CPU上的中央处理模式转变为CPU 、GPU协同工作的处理模式。由于体系结构的不同,各自分工处理不同类型的计算任务。GPU相对CPU有着更高的并行度、浮点计算能力和内存位宽等优势,目前GPU已经不再局限于以往的图形处理专用,而向着通用目的计算(GPGPU)方向发展。   表1是在传统SIMD(Single Instruction Multiple Data)模式下,Intel Core i7-960与NVIDIA GTX280性能比较图。其中 BW:local DRAM bandwidth,SP:Single-Precision Floating Point,DP:Double-Precision Floating Point.   从该表中的数据来看,GPU的性能仅为CPU的2.5倍,这是由于在SIMD模式下,矢量宽度由硬件固定,数据需要打包成固定宽度的矢量进行处理,使得GTX280 GPU中高达240个SP以及支持数以百计的线程同时运行的能力受到限制,这无疑降低了运行效率。   Compute Unified Device Architecture CUDA,是NVIDIA公司为使其公司的NVIDIA GPU能够完成复杂科学计算任务而推出的一种并行计算通用设备架构。与以往数据必须打包成矢量才能处理不同,CUDA框架使用了一个统一标准的渲染流水线,让基于通用目的计算任务的程序能够对片上任何一个ALU毫无例外的进行立即处理,使用SIMT(single Instruction Multiple thread)执行模式,以硬件细节的形式将数据宽度隐藏起来。支持数以千计的线程同时运行,这时,内存延迟对性能的影响就不再那么明显了。CUDA极大的发挥的GPU的空闲资源,提高浮点运算效率。图1是NVIDIA CUDA系统框架。    NVIDIA CUDA系统框架除了包含ISA指令集构架以及并行计算硬件引擎意外,还包含了一个CUDA集成开发环境,允许程序员使用C语言进行基于GPU的通用运算目的程序开发,简化GPU编程难度,提高开发效率。   3 使用JACKET加速免疫算法在MATLAB中的运行   在最新的Matlab 2010b中包含支持GPU编程的Parallel Computing Toolbox,不过它及支持CUDA运算能力在1.3 以上的NVIDIA GPU,不能用于配置较低的计算机系统。   Jacket 是AccelerEyes公司开发的专用于MATLAB基于GPU的计算引擎,最新版本为1.7.1,其包含了高层的接口,完全屏蔽

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档