CUDA-GPU-入门介绍.ppt

上传人:xiao****1972 文档编号:6276792 上传时间:2020-02-21 格式:PPT 页数:27 大小:2.16MB
返回 下载 相关 举报
CUDA-GPU-入门介绍.ppt_第1页
第1页 / 共27页
CUDA-GPU-入门介绍.ppt_第2页
第2页 / 共27页
CUDA-GPU-入门介绍.ppt_第3页
第3页 / 共27页
点击查看更多>>
资源描述
Anintroductiontobeginners GPU CUDA 内容 1GPU高性能计算2CUDA架构3CUDA环境搭建4CUDA简单例子 1 GPU高性能计算 GPU 从图形处理到通用计算GPU GraphicProcessingUnitGPU为高度并行的实时3D渲染计算而设计 高GFLOPS 高带宽3D渲染技术及3DAPI的发展 促进GPU向通用计算处理器发展NVIDIAGPU为通用计算专门优化设计 于2007年推出CUDA 1 GPU高性能计算 GPUVSCPU 计算能力 8xdoubleprecisionECCL1 L2Caches 1TFSinglePrecision4GBMemory 1 GPU高性能计算 GPUVSCPU 硬件体系 目标 最小的指令延迟巨大的缓存复杂的控制逻辑 目标 最大吞吐量更多寄存器 高带宽通过线程轮换隐藏延迟多个线程共享控制逻辑 1 GPU高性能计算 GPU应用领域用同一计算方法对很大量的数据进行并行计算数据相关度低计算密度大 计算所花的时间比数据存储的时间大得多 1 GPU高性能计算 GPU关键概念SM StreamMultiprocessorSP StreamProcessor每个SM包含8个SP 由SM取指 解码 发射到各个SP GPU可看作是一组SMSMEM sharedmemory GPU片内每个SM所占有的高速存储器Globalmemory GPU板载显存 2 CUDA架构 CUDA ComputeUnifiedDeviceArchitecture由NVIDIA2007年推出的通用并行计算架构第一种不需要借助图形学API就可以使用类C语言极性通用计算的开发环境和软件体系在采用了统一架构的GPU上运行NVIDIA提供完全免费的CUDA开发工具包和SDK对标准C语言的简单扩展 以最小的扩展集实现CUDA架构 2 CUDA架构 存储器模型Thread私有register RW Thread私有localmemory RW Block的sharedmemory RW Grid的globalmemory RW Grid的constantmemory RO Grid的texturememory RO Host可以通过API完成显存与主存交互 2 CUDA架构 线程组织模型每个内核程序 Kernel 包含非常多的线程所有线程执行相同的顺序程序层次结构 Grid Block Thread线程被划分成线程块 Block 同一线程块内的线程可以通过共享SM资源相互协作每个线程和线程块拥有唯一ID通过内建变量读取 2 CUDA架构 线程映射Thread SPBlock SMGrid GPU把GPU看作一个包含很多个核心的多核处理器有自己的本地存储器大量的线程并行执行每个线程拥有私有变量 存储区域线程之间拥有共享的存储区域与CPU的差别 GPU的线程是轻量级的 代码少 硬件轮换 资源负担小 需要很大量的线程才能使GPU满载 2 CUDA架构 CPU GPU异构并行模型由CPU端 主机端 传送参数及配置Kernel的执行 Block Thread数量 尺寸等 Kernel在GPU 设备端 上执行显存分配 显存与PC主存间的交互通过API完成 2 CUDA架构 CUDAC扩展 编译器nvccCUDA源程序 CU文件编译器驱动分离主机端源代码和设备端源代码编译设备端源代码到GPU汇编代码 PTX 或GPU二进制代码 CUBIN 把最终GPU代码包裹在主机端源代码中CUDAC扩展 APIDriverAPI调用Kernel较繁琐RuntimeAPI较方便 2 CUDA架构 CUDAC扩展 函数限定符 global GPUKernel代码 由CPU发起 返回void 不能由其它Kernel调用 device 由GPUKernel调用的函数 不能由CPU发起 host 在CPU上执行的函数CUDAC扩展 变量限定符 constant 变量位于常数存储器 shared 变量位于共享存储器 2 CUDA架构 CUDAC扩展 内建变量无需定义 声明 直接在kernel中调用dim3gridDim Grid尺寸dim3blockDim Block尺寸dim3blockIdx BlockIDdim3threadIdx Thread点CUDAC扩展 执行配置调用 my kernel 实际是为gridDim和blockDim赋值决定当前线程需要处理的数据和结果存储的位置 2 CUDA架构 CUDA存储器管理GPU与CPU独立编址GPU与CPU数据交互通过PCIe总线在主机端通过API去分配 复制 销毁GPU上的存储器空间GPU存储器操作API 详见 CUDA参考手册 存储空间开辟 cudaMalloc等存储空间初始化 cudaMemset等存储空间 cudaFree等存储空间拷贝cudaMemcpy等 2 CUDA架构 CUDA程序结构 3 CUDA环境搭建 所需组件CUDA完全免费 各种操作系统下的CUDA安装包均可以在 3 CUDA环境搭建 1 Windows环境要求 MicrosoftVisualStadio2005及其以后版本 1 依次安装 显卡驱动 Toolkit SDK 2 语法高亮到SDK安装目录下 doc syntax highlighting visual studio 8 将其中的usertype dat文件复制到MicrosoftVisualStudio8 Common7 IDE下 启动VS2005 工具 选项 文本编辑器 文件扩展名 在右边的 扩展名 对应的栏里输入 cu 编辑器 选择 MicrosoftVisualC 添加 确定 重启VS2005 3 设置VS2005环境打开VS2005 工具 选项 项目和解决方案 VC 目录 显示以下内容的目录 包含文件 分别添加Toolkit和SDK的文件包含目录 库文件 分别添加Toolkit和SDK的库目录 源文件 添加SDK源文件目录 3 CUDA环境搭建 1 Windows 4 编译定义工程源文件 属性 常规 工具 自定义生产工具 在以下项添加相应内容 命令行 CUDA BIN PATH nvcc exe ccbin VCInstallDir bin c D DEBUG DWIN32 D CONSOLE D MBCS Xcompiler EHsc W3 nologo Wp64 Od Zi RTC1 MTd I CUDA INC PATH o ConfigurationName InputName obj InputFileName 输出 ConfigurationName InputName obj 附加依赖项 InputName kernel cu右键工程名 属性 打开链接器 在以下项做相应修改 启用增量链接 否 INCREMENTAL NO 附加库目录 改为 CUDA LIB PATH 链接器 子项 输入 附加依赖项 中输入cudart lib 3 CUDA环境搭建 2 Linux Fedora Redhat Ubuntu 环境要求 gcc编译器 1 进入Linux文本界面 2 安装三个组件 具体版本具体输入 shNVIDIA Linux x86 64 180 22 pkg2 runshcudatoolkit 2 1 linux64 rhel5 2 runshcuda sdk linux 2 10 1215 2015 3233425 run 3 在 bash profile中添加 PATH PATH binLD LIBRARY PATH LD LIBRARY PATH lib64exportPATHexportLD LIBRARY PATH其中 为实际安装路径 4 例子 GPU并行矢量求和 算法描述将两个N维矢量相加 即对应元素相加 ci ai bii 0 N 并行算法设计每个GPU线程负责一个维度的相加GPU线程数目M N a 0 b 0 c 0 Th 0 a N 1 b N 1 c N 1 Th N 1 a 1 b 1 c 1 Th 1 a 2 b 2 c 2 Th 0 a b c Th Th Th M a b c 4 例子 GPU并行矢量求和 预处理部分cuda runtime h CUDA运行时库 4 例子 GPU并行矢量求和 内核函数返回值类型必须包括 global void内核函数定义的是每一个线程的行为 所有线程并发执行操作目标通过当前线程在线程结构中的位置而确定该问题中所有线程均只执行一次加法 总计算时间为执行67 70行代码一次所需时间 4 例子 GPU并行矢量求和 主函数 part 1 使用线程结构的x维度 8 8一共64个线程 h 前缀表示变量位于Host端存储器d 前缀表示变量位于Device端存储器 还有多种其他开辟方式 4 例子 GPU并行矢量求和 主函数 part 2 推荐参考 书籍 资料 NVIDIACUDAProgrammingGuideTheCUDACompilerDriverNVCCGetStartedNVIDIACUDACInstallationandVerificationonLinuxCUDAbyexampleGPU高性能计算之CUDA深入浅出谈CUDA网站 论坛
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!