CUDA在教学软件开发中的应用.docVIP

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

CUDA在教学软件开发中的应用   摘 要:可编程图形处理器GPU已经演化成高并行度、多线程、拥有强大计算能力和极高存储器带宽的多核处理器,图形处理器通用计算技术GPGPU把个人计算机上的显卡用于通用计算,代替CPU完成计算工作,可以大大提升计算效率。采用CUDA技术编程,利用GPU运行教学软件,效果良好,较大地提高了软件的计算能力和运行效率,在CPU价格昂贵,大规模并行计算需求旺盛的今天,CUDA技术可以提高软件运行效率,提高计算能力,同时可减少硬件购置成本,为学校或科研单位节约预算。   关键词:GPU;GPGPU;CUDA;教学软件开发   DOIDOI:10.11907/rjdk.162098   中图分类号:TP319   文献标识码:A文章编号:1672-7800(2016)012-0124-03   0 引言   自2004年以来,CPU的发展已告别主频时代,单核CPU性能的提升日趋平缓,CPU制造公司开始用增加计算核心的方法增强计算能力,多核CPU层出不穷。尽管如此,依然不能满足日益增长的计算需要,一些计算密集型的应用和实时处理程序需要依靠超级计算机的计算性能来完成。同时,在市场对实时、高清晰度三维图形存在极高需求的推动下,可编程图形处理器(Graphics Processing Unit,简称GPU)已经演化成高并行度、多线程、拥有强大计算能力和极高存储器带宽的多核处理器,一种新兴的加速技术应运而生,即图形处理器通用计算技术(General Purpose Computing on Graphics Processing Unit,简称GPGPU),它把个人计算机上的显卡用于通用计算,代替CPU完成计算工作,可以提升计算效率。相比CPU,GPGPU具有体积小、低功耗、低成本的特点,已经成为计算密集型应用的高效解决方案,并在事实上作为第二个通用处理器被大量应用软件使用。而CUDA就是著名的显卡公司NVIDIA对于GPGPU的完整解决方案。   1 在教学软件开发中使用CUDA的意义   CUDA的全称是Compute Unified Device Architecture(计算机统一设备架构),是NVIDIA公司在2007年推向市场的并行计算架构。CUDA是作为图形处理器的通用计算引擎,作为全套工具提供给用户利用NVIDIA产品进行GPGPU开发。CUDA提供了一种简便的方式编写应用于CUDA架构上的GPGPU代码,它含有NVIDIA扩展和限制的类C语言,支持大多数C语言指令和语法,并加入了使程序能在GPU上进行多线程计算的语言扩展,使用CUDA可以方便地编写在GPU上并行运行的程序[1]。   众所周知,学校、科研单位以及培训机构在资金、预算上受财政的限制,缺少高性能的计算机和服务器等硬件设备。同时,在高速发展的互联网时代,也需要各种教学软件的高效运行,以保证教学、科研活动的正常进行。在教学软件开发中使用CUDA技术有具有较大意义。一方面,带多处理器的显示图形卡越来越便宜,购置成本低,其计算性能却可以代替昂贵的高端CPU[2];另一方面,采用CUDA技术开发或改写教学软件,可以大大提高其运行效率,进而延长软件的使用寿命。   由此可见,CUDA技术可以减少硬件的购置成本,提高软件的运行效率,提高计算能力,并为学校或科研单位节约预算,值得推广。同时,CUDA的软件开发类似于C语言开发,易于被开发人员所学习掌握。下文将通过一个实例,介绍基于CUDA技术软件的开发方法,并对其运行性能进行对比分析。   2 开发实例   2.1 基础知识   在CUDA中,与一个线程组相关联的硬件实现称为一个流多处理器(Streaming Multiprocessor),或称多处理器;一个流多处理器包含若干个标量处理器(scalar processor),即单处理器,或称CUDA核(CUDA core)。单处理器是具体计算指令的执行单位,多处理器是一套完整的计算资源的最小单位。控制器将一个线程组分配给一个多处理器,多处理器中的核协同工作,并行处理所有的线程。一个支持CUDA的NVIDIA图形处理器中至少包含一个多处理器,如GeForce GTX 295,它有60个多处理器,线程组就被平均分配给这60个多处理器并行处理。而且在每个多处理器中,标量处理器也是并行工作的。通过线程组的方式,CUDA程序可以适应于不同的硬件规格[3],从高端显卡到普通显卡,这是一个具有高度可扩展性的编程模型。   CUDA的程序将函数根据调用和执行地方的不同分为不同的类型:在CPU上调用、CPU上执行的的函数称为主机函数;在CPU上调用、在GPU上执行的函数称为全局函数,常称为内核,简称核,它是GPU函数执行时的基本单位

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档