- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
cuda程序设计实例
CUDA程序设计 主要内容 GPGPU及CUDA介绍 CUDA编程模型 多线程及存储器硬件 GPGPU及CUDA介绍 多核时代 多个适当复杂度、相对低功耗内核并行工作 配置并行硬件资源提高处理能力 核心时钟频率基本不变 GPU与CPU硬件架构的对比 CPU:更多资源用于缓存及流控制 GPU:更多资源用于数据计算 适合具备可预测、针对数组的计算模式 应用范围 CPU: control processor 不规则数据结构 不可预测存取模式 递归算法 分支密集型算法 单线程程序 GPGPU 核心思想 用图形语言描述通用计算问题 把数据映射到vertex或者fragment处理器 缺点 硬件资源使用不充分 存储器访问方式严重受限 难以调试和查错 高度图形处理和编程技巧 CUDA (Compute Unified Device Architecture) CUDA有效结合CPU+GPU编程 串行部分在CPU上运行 并行部分在GPU上运行 CUDA极大提高了现有应用的效果 性能提升情况 计算结果对比 CUDA成功案例 CUDA编程模型 CUDA设备与线程 计算设备(device) 作为CPU(host)的协处理器 有独立的存储设备(device memory) 同时启动大量线程 计算密集部分使用大量线程并行的kernel GPU与CPU线程的区别 GPU的线程非常轻量,线程切换~1 cycle,而CPU需要~1000 cycle GPU上的线程数1000时才能有效利用GPU的计算能力 Streaming Processor(SP) A fully pipelined, single-issue, inorder microprocessor 2 ALUs and a FPU Register file 32-bit scalar processing No instruction fetch and scheduling No cache Streaming Multiprocessor(SM) An array of SPs 8 streaming processor 2 Special Function Units (SFU) A 16KB read/write shared memory Not a cache But a software-managed data store Multithreading issuing unit Instruction and constant cache CUDA 程序基本结构 串行部分在CPU上运行(host) 并行部分在GPU上运行(device) C扩展 CUDA程序的编译 使用nvcc编译工具 nvcc filename.cu [-o excutable] 调试选项:-g(debug)、-deviceemu(CPU模拟GPU) 并行线程组织 并行性的维度 一维 y = a + b 二维 P = M ? N 三维 CT or MRI 并行线程组织结构 Thread: 并行的基本单位 Thread block: 互相合作的线程组 Cooperative Thread Array (CTA) 允许彼此同步 通过快速共享内存交换数据 以1维、2维或3维组织 最多包含512个线程 Grid: 一组thread block 以1维、2维或3维组织 共享全局内存 Kernel: 在GPU上执行的核心程序 One kernel ? one grid 线程层次 Block and Thread IDs Blocks 和 Threads 具有IDs threadIdx, blockIdx Block ID: 1D or 2D Thread ID: 1D, 2D or 3D 由此决定相应处理数据 CUDA线程组织 CUDA kernel函数由一系列线程组成 单指令多数据流(SPMD) 通过IDs确定处理的数据 线程可划分为不同的Block 在同一个block中,可以通过share memory、atomic operation和barrier synchronization进行协同 一个简单的例子——Increment Array Elements //CPU program void inc_cpu(float *a, float b, int N) { for (intidx = 0; idxN; idx++) a[idx] = a[idx] + b; } void main() { … inc_cpu(a, b, N); } CUDA线程的同步 void __syncthreads(); Barrier synchronization 同步thread
您可能关注的文档
- escon功能比较表-maxonmotor.pdf
- e-hr系统因私出国境审批操作指引.ppt
- el便携式光伏检测仪-德威时el检测仪.ppt
- ee110300电机资讯工程实习实验手册电子电路实验iii安培计.pdf
- edital-tribunaldecontasdoestadodopiauí.doc
- eda技术在电子技术教学中的应用研究-bowenpublishing.pdf
- elco直线位移传感器特点输出方式介绍液压缸安装简介常用应用介绍.ppt
- ee品质检测系统快速操作指引-圣瑞智能科技上海有限公司.doc
- edge手机发送电路架构分析-硬件和射频工程师.doc
- effectofmos2additiveonelectricalpitting-建国科技大学.doc
最近下载
- 2023年阳江市社区工作者招聘考试真题 .pdf VIP
- 《高效课堂和有效教学模式研究》结题报告材料.pdf VIP
- 生猪、牛、羊、鸡、鸭、鹅屠宰HACCP计划模式表.pdf VIP
- 2024-2025学年广西壮族自治区小升初英语真题(含答案).pdf VIP
- 环保项目设备供货及服务保障措施.docx VIP
- 初中物理每日默写知识点(1)_Decrypted.pdf VIP
- 人教版信息科技四年级《多彩的数字世界》教学PPT课件.pptx VIP
- 我的幸福大家庭.pptx VIP
- 安全教育开学第一课主题班会PPT课件.pptx VIP
- (2025秋新版)人教版数学二年级上册教学计划.docx VIP
文档评论(0)