加入收藏
 

C语言教学实验中的CUDA技术

  本文说明相关:本文作者: 刘忆宁, 张永昌, 罗家华, LIU Yining, ZHANG Yongchang, LUO Jiahua 电脑编程技巧与维护刘忆宁,张永昌,罗家华(桂林电子科技大学数学与计算科学学院,桂林541004)摘要:C语言在本科信息技术教学中具有重要的地位,随着GPU性能的增强,以C语
    本文作者: 刘忆宁, 张永昌, 罗家华, LIU Yining, ZHANG Yongchang, LUO Jiahua
  电脑编程技巧与维护刘忆宁,张永昌,罗家华(桂林电子科技大学数学与计算科学学院,桂林541004)摘要:C语言在本科信息技术教学中具有重要的地位,随着GPU性能的增强,以C语言为核心的CUDA具有广阔的应用前景。在C语言实验中引入CUDA开发平台的训练,具有重要的意义。关键词:C程序图形处理器CUDA架构CUDATeehnolegyinCLanguageTeachingExerciseLIUY'mir曙,ZHANGY,m即h,mg,LUOJiahua(SchoolofMathematicsandComputationalScience,GuilinUniversityofElectronicTechnology,Guilin541004)Abstract:ItisimportantforundergraduatetoimprovethelevelofClanguageprogramming.WiththedevelopmentofGPU,therearemanyapplicationsforCUDAwhichisbasedonClanguage.ItisnecessarytointroducetheCUDAarchitectureintheexperimentofCprogram.Keywords:CprogrammingGraphicProcessingUnitCUDAArchitecture1引言CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行[11。目前,全球已经有超过250所大学开设了CUDA编程和GPU计算的课程,支持CUDA的GPU销量已逾1亿,基于CUDA开发的应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域嘞。为了促进CUDA技术的发展,NVIDIA公司于2009年底授予中国科学院过程工程研究所和清华大学CUDA卓越中心的称号,以表彰他们在中国推广CUDA和GPU计算以及利用GPU在高性能计算领域做出的突出贡献,在此之前,CUDA卓越中心已经在哈佛大学、剑桥大学等5所学府设立。鉴于GPU并行计算的应用前景,在2009年开始在c语言教学中引入CUDA平台技术开发,主要包括CUDA平台的C开发环境,并行程序开发等,让学生通过程序设计对比GPU程序运行与传统CPU运行的效率对比,对并行加速有了直观的印象,激发了学生的新开传奇学习兴趣,实验教学取得了良好的效果。2基于GPU的CUDA软硬件环境2.1硬件GPU称之为图像处理器,在图像处理方面发挥了重要的作用,其本质是一个流处理器,内部有很多处理单元,处理单元并行工作,采用超流水线的方式进行工作,这种体系架构决定了它在并行计算上的优势。另外GPU实际采用的是将一根总线与多个处理单元进行连接,使得对单指令流多数据本文收稿日期:2010-03-05134一流有很好的处理能力。根据它采用单一控制总线的结构,必须协调各个处理核心的工作,尽量让各个处理核心的工作协调,避免交叉指令在程序中出现,同时,由于CUDA架构将自己的任务都集中在数据的计算方面,要协调数据的输入与输出,尽量减小它和内存之间数据的交换,当然最好是能尽可能地使用纹理存储器,这会使存取的速度比起一般的存取速度要快很多。
  只有综合利用GPU的这些特点才能使并行计算的速度有一个很好的提升。
  CUDA支持的GPU(CUDAenabledGPU)包括NVIDIA公司的Geforee、Quadro和Tesla3个产品线,如表1所示。
  其中,Geforce和Quadro系列显示芯片可以直接插入普通PCIExpressxl6插槽中。
  最大理论带宽为8GB/s,为了便于将CPU与GPU进行性能比较,选用丽台公司PX8800GT显卡,显卡采用Geforce8800GT显示芯片。该芯片采用G92显示核心,有112个流处理器,内核时钟为600MHz,内存带宽为57.6GB/s,支持并行数据高速缓存(paralleldatacache)。
  本文中的实验采用的是GeForce9600GT。
  2.2软件在CUDA的软件层面,核心是NVIDIA编译器nvcc.exe。CUDA程序是GPU和CPU的混合编码,其程序文件包括.CU和.cpp,且程序中混合着C语言函数和CUDA语言函数。程序首先通过c编译器将GPU与CPU的代码分离,GPU代码被编译成能交给GPU计算的代码,而CPU代码编译成标准CPU机器码。因此,一个完整的CUDA软件开发环境需要有2个编译器:面向CPU的C编译器和面向GPU的编译器nvcc.exe。CUDA可热血传奇以支持多种运行在WindowsXP和Linux操作系统下的编译系统。考虑到通用性,在测试中采用MicrosoftVisualStudio2008。
  其c编译器为c1.exe嗍。CUDA软件架构如图1所示。srUDYOFCOMPUTERAPPLICATl0NINEDUCATION计算机应用教学研究表1支持CUDA并行运算的GPUGeForceGTX295TeslaS1070QuadroFX5800GeForceGTx285TeslaC1060QuadroFX5600GeFoleeGTx285forMaeTeslaC870QuadroFX4800GeForceC似280TeslaD870QuadroFX4800forMacGeForceGTX275Tesla$870QuadroFX4700X2GeForceGTX260QuadroFX4600GeForceGTS250QuadroFX3800GeForceG,rs240*QuadroFX3700GeForceGT240QuadroFx1800GeForceGT220QuadroFX1700GeFolee210QuadroFX580GeFoleeGTS150"QuadroFX570GeForceCT130*QuadroFX470GeF0leeGT120"QuadroFX380GeForceG100}QuadroFX380LPGeForce9800GX2QuadroFX370GeForoe9800GTX+QuadroFX370LowProfileGeFolee9800GTXQuaaroCXGeForce9800GTQuadroNVS450GeForce9600GS0QuadroNVS420GeForce9600GTQuadroNVS295GeFolee9500GTQuadroNVS290GeFoi'ce9400GTQuadroPlex2200S4图lCUDA软件架构3实例?b对定积分上f(J计算进行编程,基本思想为:分配处理核心,每个核心完成一个梯形的面积计算工作,待最后的所有任务都计算完成之后,将所有的和进行相加,得到的将是所求的积分面积传奇的。
  采用Block、Thread数量大小为个,分别设立256个共享存储器单元和全局存储单元,以存放每个Thread的计算之和及每个Block之和,最终将各Block之和返回host端进行最后的加总。t.84.一以I,x2+s新开传奇in(x)dx为对象测试,采用的是分段积分方式进行测试,代码如下:/,本程序采用蒙特卡洛法计算定积分的值,分别在CPU和GPU上实现,肼算出其计算时间进行作对比衔nclude”stdio.h”舞include”math.h”#include”time.h”椭nclude”cuda_mntime.h”//#include”InitCUDA.ca”,/定义积分的上下限#defineUP_LIMIT8.4#defineLO虻三IMIT2.5#defineNUM_SERIES6553600#defineNUM_THREADS256#defineNUM_BLOCKS256#defmeSPACE_RATE(UP_LIMITUOWLIMIT)/NUM_SERIES,/函数f玩家认为可以(x)的定义inlinefloatf(float),/在host上计算定积分的值,并将值返回floatCPU_hteg//用GPU进行积分测试voidGPUTest0//kennel上计算定积分___glob虹一voidGPU_Imeg(float4)boolInitcuda0/,设备初始化{//条件编译#definePASs_矾rrCⅥ)Aintcu_Counthatk:获取支持cuda装置的数目cudaGetDeviceCount(&cu_.Count)if(O------.cu_Count){prinffCGPU设备不可用”)retumfalse}for(k--Ok=1){breakl}}if(cu_Count=k){prinffC没有装置支持1.x版本”)retumfalsel臌置为当前的使用装置cudaSetDevice(k)eudaDeviceProppmp2/,获取本机详细信息cudaGetDeviceProperties(&prop2,k):vrintf(”本机显卡GPU型号为:%妯”,prop2.name):prinffC全局存储量为%d字节Xn”,pmp2.totalGlob-alMem)prinffC每个block可以使用的共享存储器的最大值为%d字节、n”,prop2.sharedMemPerBlock)printfC每个Block中的最大线程数量为%d个、Il”。一135电脑编程技巧与咱们玩这网游维护prop2.maxThreadsPerBlock)pnnff(”本机处理器的数量为%d、II”,prop2.multiProcessorCount)pnnffC支持的CUDA计算能力的版本为.f.)pfinffC%d”.prop2.major)‘9printf(”.%d”,prop2.minor)pnnff(”Xn”)returntrue}主函数的入口hatmain0I脏CPU进行积分运算pnnffCCPU上的运行结果为%fIl”,CPuInteg)#ifndefPASSINITCUDA砌始化cudaif(Initcuda0){pfinffCcuda设备初始化完毕、Il”)J#endif,/调用函数进行在GPU上进行积分测试GPU_Test0system(”pause”):returnO:)//host上定义f(X)floatf(floatX){returnX术x+sin(x)}floatCPU_Integ0{clock_tstart=clock0:floatx=0.0:floatSUM=0.O:价十算每个f(x)的和。其中x=a+(ba)气r为0到l间的均匀随机序列for(intk=0k>>(BlockSum)鹏每个Block的结果返回到CPU上进行加总计算cudaMemcpy(sum,BlockSum,sizeof(float)NUM_BLOCKS,cudaMemcpyDeviceToHost)臃host端将结果进行汇总floatGPUSUM=0.Ofor(inti:=oi  s型扫描方式能够有效改善由滤波器所引起的滞后现象,但这只是提出一种思路,并非适用于所有的算法。
  (3)比较不同误差滤波器的算法,标准的FS扩散作为最早开发出来的滤波器,它再现了原有图像的色阶色调,灰度过渡比较自然。Stucki、JarrisJudieeNinke处理速度相同,由于权值的不同,基于本实验数据,主观评价比较得出JarrisJudieeNinke效果较好。当然,这两种算法的速度比标准FS算法和Burkes算法慢。
  可以认为,Burkes滤波器是FloydSteinberg和Stucki及JarrisJudieeNinke算法的折衷。(4)在滤波器与扫描路径的关系上,Burkes滤波器使用逐行扫描能够得到较好的主观感受,并良好地保持了原图的整体特性。而对于其他的滤波器与扫描路径比较,文中的数据还不足以体现优劣。因此,不同滤波器对应不同的扫描路径所得到的结果,需要引进其他评价方法,同样为以后研究提供了广阔空间。但是,不管是哪种滤波器,在使用不同扫描路径时,s型扫描处理时间是较长的。
  4结语随着数字图像处理技术、数学算法和计算机软硬件技术的不断提高,数字半色调技术必将得到极大的发展。一方面,对算法的不断完善以及新的数学算法的提出将不断提高再现图像的视觉效果,而计算机处理能力的提高也会在一定程度上弥补算法处理速度上的不足。另一方面,对图像的客观质量评价方法也在不断完善,将更加接近视觉系统的主观评价。参考文献[1】任小玲,张二虎.数字半色调技术发展概述[J].西安工业学院学报,2003,23(2):108113。【2]李飞,唐正宁.数字加网技术【J]包装工程,2005,26(5):4749,52.[3】陆杰,赵忠旭.图像质量评价的发展【J】.计算机工程,2000,26(11):4-5,49.【4】周奕华,卢健.数字加网图像质量评价方法的研究【J].包装工程,2006,27(5):116117,131.[5】R.Escbbach,Z.Fan,K.T.Knox,G.Marcu.Thresholdmodulationandstabilityinerrordiffusion[J].IEEESignalProcessingMagazine,2003,20(4):3950.作者简介赵小梅,女(1974一),硕士,讲师,研究方向:数字图像处理、电子出版等。一137。
  本文《C语言教学实验中的CUDA技术》 --- 作者: 刘忆宁, 张永昌, 罗家华, LIU Yining, ZHANG Yongchang, LUO Jiahua-此篇传奇文章来自我站原创编辑!
上一篇:CSCW和XML在人事管理信息系统中的应用 下一篇:Flash在生物实验教学中的应用
  本文私服合击相关文章
  • 智慧地组合教学内容--有感于信息的编程加工一课
  • i你和他2间的那种黏黏棚糊似是而非的美幕.与其说是因
  • 小心自动下载的游戏…DS版《七夜怪GAME》将于7月3日惊
  • 影响聋生空间感形成的心理因素及其教学对策
  • 辩论是一种学会讲道理的游戏
  • 爱上信息课,快乐啪啪啪
  • 基于娱教技术的体验学习环境构建资料
  • 冲突法上的修正问题研究
  • 《临床作业治疗学》教材使用体会
  • 休闲类型游戏抬头 中国网游产值将达92亿美元
  • Copyright 2009-2011 By www.vipcqsf.com All Right Reserved 本站版权所有. 传奇合击私服网 权威资料与开区发布.
    本站提供国内真正专业信誉可靠的传奇SF英雄合击版本服务.完全免费的技术服务.ICP备/经营许可证09098433号