ImageVerifierCode 换一换
格式:PPT , 页数:27 ,大小:2.56MB ,
资源ID:780913      下载积分:11 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/780913.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(CUDA-GPU-入门介绍.ppt)为本站上传会员【胜****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

CUDA-GPU-入门介绍.ppt

1、-An introduction to beginnersGPU&CUDA内容n n1 GPU1 GPU高性能计算高性能计算n n2 CUDA2 CUDA架构架构n n3 CUDA3 CUDA环境搭建环境搭建n n4 CUDA4 CUDA简单例子简单例子1.GPU高性能计算n nGPU:GPU:从图形处理到通用计从图形处理到通用计算算nGPU:Graphic GPU:Graphic Processing Processing UnitUnitnGPUGPU为高度并行为高度并行的的实时实时3D3D渲染计算渲染计算而而设计设计,高高GFLOPSGFLOPS,高带宽高带宽n3D3D渲染技术及渲染技术

2、及3D 3D APIAPI的的发展发展,促进促进GPUGPU向通用向通用计算计算处处理器发展理器发展nNVIDIA NVIDIA GPUGPU为通用为通用计算专门优化计算专门优化设计设计,于于20072007年推出年推出CUDACUDAGPU多”核”:SM真正意义的变革通用计算重要突破GPU通用计算开始出现GeForce 8800GeForce 6800GeForce 3GeForce 256世界上第一个GPU1.GPU高性能计算n nGPU GPU VSVS CPU:CPU:计算能力计算能力8x double precisionECCL1,L2 Caches1 TF Single Preci

3、sion4GB MemoryNVIDIA GPUX86 CPU1.GPU高性能计算n nGPUGPU VSVS CPU:CPU:硬件体系硬件体系n目标:最小的指令延迟n巨大的缓存n复杂的控制逻辑n目标:最大吞吐量n更多寄存器、高带宽n通过线程轮换隐藏延迟n多个线程共享控制逻辑1.GPU高性能计算n nGPUGPU应用领域应用领域n用同一计算方法对很大量的数据进行并行计算用同一计算方法对很大量的数据进行并行计算n数据相关度低数据相关度低n计算密度大,计算所花的时间比数据存储的时计算密度大,计算所花的时间比数据存储的时间大得间大得多多1.GPU高性能计算n nGPUGPU关键概念关键概念nSM:S

4、tream MultiprocessorSM:Stream MultiprocessornSP:Stream ProcessorSP:Stream Processorn n每个每个SMSM包含包含8 8个个SPSP,由由SMSM取指取指,解码解码,发射到各个发射到各个SP,SP,n nGPUGPU可看作是一组可看作是一组SMSMnSMEM:shared memory,GPUSMEM:shared memory,GPU片内每个片内每个SMSM所占所占有的高速存储器有的高速存储器nGlobal memory:GPUGlobal memory:GPU板载显存板载显存2.CUDA架构n nCUDA C

5、ompute Unified Device ArchitectureCUDA Compute Unified Device Architecturen由由NVIDIA NVIDIA 20072007年推出年推出的通用并行计算的通用并行计算架构架构n第一种不需要借助图形学第一种不需要借助图形学APIAPI就可以使用类就可以使用类C C语语言极性通用计算的开发环境和软件体系言极性通用计算的开发环境和软件体系n在采用了统一在采用了统一架构的架构的GPUGPU上运行上运行nNVIDIANVIDIA提供完全免费的提供完全免费的CUDACUDA开发工具包和开发工具包和SDKSDKn对标准对标准C C语言的

6、简单语言的简单扩展扩展,以最小的扩展集实现以最小的扩展集实现CUDACUDA架构架构2.CUDA架构n n存储器模型存储器模型nThreadThread私有私有registerregister (RW)(RW)nThreadThread私有私有local local memorymemory (RW)(RW)nBlockBlock的的shared shared memory memory(RW)(RW)nGridGrid的的global global memory memory(RW)(RW)nGridGrid的的constant constant memory memory(RO)(RO)n

7、GridGrid的的texture texture memory memory (RO)(RO)nHostHost可以通过可以通过APIAPI完完成显存成显存与主存交互与主存交互2.CUDA架构n n线程组织模型线程组织模型n每个内核程序每个内核程序 (KernelKernel)包包含非常多的线程含非常多的线程n所有线程执行相同的顺序所有线程执行相同的顺序程序程序n层次结构:层次结构:Grid Grid Block Block ThreadThreadn线程被划分成线程块线程被划分成线程块 (Block)(Block)n同一线程块内的线程可以同一线程块内的线程可以通过共享通过共享SMSM资源相

8、互协作资源相互协作n每个线程和线程块拥有唯每个线程和线程块拥有唯一一IDIDn通过内建变量读取通过内建变量读取2.CUDA架构n n线程映射线程映射nThreadThread SPSPnBlockBlock SM SMnGrid Grid GPU GPUn把把GPUGPU看作一个包含很多个核心的多核处理器看作一个包含很多个核心的多核处理器n有自己的本地存储器有自己的本地存储器n大量的线程并行执行大量的线程并行执行n每个线程拥有私有变量每个线程拥有私有变量/存储区域存储区域n线程之间拥有共享的存储区域线程之间拥有共享的存储区域n与与CPUCPU的的差别差别:GPUGPU的线程是轻量级的(代码少,

9、的线程是轻量级的(代码少,硬件轮换,资源负担小);需要很大量的线程硬件轮换,资源负担小);需要很大量的线程才能使才能使GPUGPU满载满载2.CUDA架构n nCPU/GPUCPU/GPU异构并行模型异构并行模型n由由CPUCPU端端 (主机端主机端)传送传送参数参数及配置及配置KernelKernel的的执行执行 (BlockBlock,ThreadThread数量数量,尺寸等尺寸等)nKernelKernel在在GPUGPU (设备端设备端)上执上执行行n显存显存分配分配,显显存与存与PCPC主存间主存间的交互通过的交互通过APIAPI完成完成2.CUDA架构n nCUDA CCUDA C

10、扩展扩展:编译器编译器nvccnvccnCUDACUDA源程序源程序 -CU-CU文件文件n编译器驱动编译器驱动n分离主机端源代码和设备端源代码分离主机端源代码和设备端源代码n编译设备端源代码到编译设备端源代码到GPUGPU汇编代码(汇编代码(PTXPTX)或)或GPUGPU二进制代码(二进制代码(CUBINCUBIN)n把最终把最终GPUGPU代码包裹在主机端源代码中代码包裹在主机端源代码中n nCUDA CCUDA C扩展扩展:API:APInDriver Driver API API 调用调用KernelKernel较繁琐较繁琐nRuntime Runtime API API 较方便较方

11、便2.CUDA架构n nCUDA CCUDA C扩展扩展:函数限定符函数限定符n_global_global_ GPU _ GPU KernelKernel代码代码,由由CPUCPU发起发起,返回返回voidvoid,不能不能由由其它其它KernelKernel调用调用n_device_device_ _ 由由GPU KernelGPU Kernel调用的调用的函数函数,不能不能由由CPUCPU发起发起n_host_host_ _ 在在CPUCPU上执行的上执行的函数函数n nCUDA CCUDA C扩展扩展:变量限定符变量限定符n_constant_ _constant_ 变量位于常数存储器

12、变量位于常数存储器n_shared_ _shared_ 变量位于共享存储器变量位于共享存储器2.CUDA架构n nCUDA CCUDA C扩展扩展:内建变量内建变量n无需定义无需定义/声明声明,直接在直接在kernelkernel中调用中调用ndim3 dim3 gridDimgridDim;/Grid;/Grid尺寸尺寸ndim3 dim3 blockDimblockDim;/Block;/Block尺寸尺寸ndim3 dim3 blockIdxblockIdx;/Block ID;/Block IDndim3 dim3 threadIdxthreadIdx;/Thread;/Thread

13、点点n nCUDA CCUDA C扩展扩展:执行配置执行配置n调用调用:my_kernel :my_kernel (.);(.);n实际是为实际是为gridDimgridDim和和blockDimblockDim赋值赋值n决定当前线程需要处理的数据和结果存储的位决定当前线程需要处理的数据和结果存储的位置置2.CUDA架构n nCUDACUDA存储器管理存储器管理nGPUGPU与与CPUCPU独立编址独立编址nGPUGPU与与CPUCPU数据交互通过数据交互通过PCIePCIe总线总线n在主机端通过在主机端通过APIAPI去分配去分配/复制复制/销毁销毁GPUGPU上的存上的存储器储器空间空间n

14、GPUGPU存储器操作存储器操作APIAPI(详见详见CUDACUDA参考手册参考手册)n n存储空间开辟存储空间开辟:cudaMalloccudaMalloc等等n n存储空间初始化存储空间初始化:cudaMemsetcudaMemset等等 n n存储空间存储空间:cudaFreecudaFree等等n n存储空间拷贝存储空间拷贝cudaMemcpycudaMemcpy等等2.CUDA架构n nCUDACUDA程序结构程序结构内存/显存开辟主机端准备数据数据导入GPU调用kernel函数计算取回计算结果主机端后期处理主机端代码(串行)设备端代码(并行)主机设备通信3.CUDA环境搭建n n

15、所需组件所需组件nCUDACUDA完全免费完全免费,各种操作系统下的各种操作系统下的CUDACUDA安装安装包均可以在包均可以在http:/ n1.Windows1.Windowsn环境要求环境要求:Microsoft Visual Stadio 2005 Microsoft Visual Stadio 2005 及其以及其以后版本后版本n(1)(1)依次安装依次安装:显卡驱动显卡驱动ToolkitToolkitSDKSDKn(2)(2)语法高亮语法高亮n n到到SDKSDK安装目录下安装目录下,doc,doc syntax_highlighting syntax_highlighting v

16、isual_studio_8,visual_studio_8,将将其中的其中的usertype.datusertype.dat文件复制到文件复制到Microsoft Visual Studio Microsoft Visual Studio 8Common7IDE8Common7IDE下下.n n启动启动VS2005,VS2005,工具工具选项选项文本编辑器文本编辑器文件扩展名文件扩展名.在右边的在右边的“扩展扩展名名”对应的栏里输入对应的栏里输入“cu”;“cu”;“编辑器编辑器”选择选择 “Microsoft Visual C+”,“Microsoft Visual C+”,“添加添加”“

17、确定确定”重重启启VS2005VS2005n(3)(3)设置设置VS2005VS2005环境环境n n打开打开VS2005VS2005,工具,工具选项选项项目和解决方案项目和解决方案VC+VC+目录目录“显示以显示以下内容的目录下内容的目录”n n “包含文件包含文件”:”:分别添加分别添加ToolkitToolkit和和SDKSDK的文件包含目录的文件包含目录n n“库文件库文件”:”:分别添加分别添加ToolkitToolkit和和SDKSDK的库目录的库目录n n“源文件源文件”:”:添加添加SDKSDK源文件目录源文件目录3.CUDA环境搭建n n1.Windows1.Windowsn

18、(4)(4)编译定义编译定义n n工程源文件工程源文件 属性属性 常规常规 工具工具 自定义生产工具自定义生产工具,在以下项添加在以下项添加相应内容相应内容:n n“命令行命令行”:$(CUDA_BIN_PATH)nvcc.exe-ccbin$(VCInstallDir)bin”:$(CUDA_BIN_PATH)nvcc.exe-ccbin$(VCInstallDir)bin-c-D_DEBUG-DWIN32-D_CONSOLE-D_MBCS-Xcompiler-c-D_DEBUG-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64

19、,/Od,/Zi,/RTC1,/MTd-/EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd-I$(CUDA_INC_PATH)-o$(ConfigurationName)$(InputName).obj I$(CUDA_INC_PATH)-o$(ConfigurationName)$(InputName).obj$(InputFileName)$(InputFileName)n n“输出输出”:$(ConfigurationName)$(InputName).obj”:$(ConfigurationName)$(InputName).objn n“附加依赖项附

20、加依赖项”:$(InputName)_kernel.cu”:$(InputName)_kernel.cun n右键工程名右键工程名 属性属性,打开链接器打开链接器,在以下项做相应修改在以下项做相应修改n n“启用增量链接启用增量链接”:”:否否(/INCREMENTAL:NO(/INCREMENTAL:NO)n n“附加库目录附加库目录”:”:改为改为 “$(CUDA_LIB_PATH“$(CUDA_LIB_PATH)”)”n n “链接器链接器”子项子项 “输入输入”:“”:“附加依赖项附加依赖项”中输入中输入cudart.libcudart.lib3.CUDA环境搭建n n2.Linux

21、(Fedora,Redhat,Ubuntu)2.Linux (Fedora,Redhat,Ubuntu)n环境要求环境要求:gcc:gcc编译器编译器n(1)(1)进入进入LinuxLinux文本界面文本界面n(2)(2)安装三个组件安装三个组件(具体版本具体输入具体版本具体输入)n nsh NVIDIA-Linux-x86_64-180.22-pkg2.runsh NVIDIA-Linux-x86_64-180.22-pkg2.runn nsh cudatoolkit_2.1_linux64_rhel5.2.runsh cudatoolkit_2.1_linux64_rhel5.2.runn

22、 nsh cuda-sdk-linux-2.10.1215.2015-3233425.runsh cuda-sdk-linux-2.10.1215.2015-3233425.runn(3)(3)在在.bash_profile.bash_profile中添加中添加:n nPATH=$PATH:/binPATH=$PATH:/binn nLD_LIBRARY_PATH=$LD_LIBRARY_PATH:CUDA_INSTALL_PATLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib64H/lib64n nexport PATH export PATH n nexport

23、LD_LIBRARY_PATH export LD_LIBRARY_PATH n n其中其中:为实际安装路径为实际安装路径4.例子GPU并行矢量求和n n算法描述算法描述n将两个将两个N N维矢量相加维矢量相加,即对应元素相加即对应元素相加:c ci i=a=ai i+b+bi i i i0,N)0,N)n n并行算法设计并行算法设计n每个每个GPUGPU线程负责一个维度的相加线程负责一个维度的相加nGPUGPU线程数目线程数目 M M N Na0b0c0Th0aN-1bN-1cN-1ThN-1a1b1c1Th1a2b2c2Th0abcThThThMabc4.例子GPU并行矢量求和n n预处理

24、部分预处理部分n ncuda_runtime.h:CUDAcuda_runtime.h:CUDA运行时库运行时库4.例子GPU并行矢量求和n n内核函数内核函数n返回值类型必须包括返回值类型必须包括 _global_ void_global_ voidn内核函数定义的是每一个线程的行为内核函数定义的是每一个线程的行为,所有线程所有线程并发执行并发执行n操作操作目标通过当前线程在线程结构中的位置而目标通过当前线程在线程结构中的位置而确定确定n该问题中所有线程均只执行一次加法该问题中所有线程均只执行一次加法,总计算时总计算时间为执行间为执行67706770行代码一次所需时间行代码一次所需时间4.例

25、子GPU并行矢量求和n n主函数主函数(part-1)(part-1)使用线程结构的x维度,88一共64个线程h_前缀表示变量位于Host端存储器d_前缀表示变量位于Device端存储器还有多种其他开辟方式4.例子GPU并行矢量求和n n主函数主函数(part-2)(part-2)推荐参考n n书籍书籍/资料资料:nNVIDIA CUDA Programming GuideNVIDIA CUDA Programming GuidenThe CUDA Compiler Driver NVCCThe CUDA Compiler Driver NVCCnGet Started NVIDIA CUDA C Installation and Get Started NVIDIA CUDA C Installation and Verification on LinuxVerification on LinuxnCUDA by exampleCUDA by examplenGPUGPU高性能计算之高性能计算之CUDACUDAn深入浅出谈深入浅出谈CUDACUDAn n网站网站/论坛论坛n http:/ http:/

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服