cuda学习笔记课件资料.pdf

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文章目录 1. CUDA 是什么 2. 64 位 Ubuntu12.04 安装 CUDA5.5 3. 对 CUDA C 的个人懵懂感觉 4. 主要概念与名称 4.1. 主机 4.2. 设备 4.3. 线程 (Thread) 4.4. 线程块 (Block) 4.5. 线程格 (Grid) 4.6. 线程束 4.7. 核函数( Kernel ) 4.8. dim3 结构类型 5. 函数修饰符 6. 常用的 GPU 内存函数 6.1. cudaMalloc() 6.2. cudaMemcpy() 6.3. cudaFree() 7. GPU 内存分类 7.1. 全局内存 7.2. 共享内存 7.3. 常量内存 7.4. 纹理内存 7.5. 固定内存 8. 原子性 9. 常用线程操作函数 10. 使用事件来测量性能 11. 流 12. 技巧 CUDA 是什么 CUDA,Compute Unified Device Architecture 的简称,是由 NVIDIA 公司创立的基于他们公司生 产的图形处理器 GPUs (Graphics Processing Units, 可以通俗的理解为显卡)的一个并行计算平台和 编程模型。 通过 CUDA,GPUs 可以很方便地被用来进行通用计算(有点像在 CPU 中进行的数值计算等等) 。 在没有 CUDA 之前, GPUs 一般只用来进行图形渲染(如通过 OpenGL,DirectX )。 开发人员可以通过调用 CUDA 的 API ,来进行并行编程,达到高性能计算目的。 NVIDIA 公司为 了吸引更多的开发人员,对 CUDA 进行了编程语言扩展,如 CUDA C/C++,CUDA Fortran 语言。注意 CUDA C/C++ 可以看作一个新的编程语言,因为 NVIDIA 配置了相应的编译器 nvcc, CUDA Fortran 一 样。更多信息可以参考文献。 对 CUDA C 的个人懵懂感觉 如果粗暴的认为 C 语言工作的对象是 CPU 和内存条(接下来 ,称为主机内存),那么 CUDA C 工 作的的对象就是 GPU 及 GPU 上的内存 (接下来,称为设备内存),且充分利用了 GPU 多核的优势及降 低了并行编程的难度。一般通过 C 语言把数据从外界读入,再分配数据,给 CUDA C,以便在 GPU 上计算,然后再把计算结果返回给 C 语言,以便进一步工作,如进一步处理及显示,或重复此过程。 主要概念与名称 主机 将 CPU及系统的内存(内存条)称为主机。 设备 将 GPU及 GPU 本身的显示内存称为设备。 线程 (Thread) 一般通过 GPU 的一个核进行处理。 (可以表示成一维,二维,三维,具体下面再细说) 。 线程块 (Block) 1. 由多个线程组成(可以表示成一维,二维,三维,具体下面再细说) 。 2. 各 block 是并行执行的, block 间无法通信,也没有执行顺序。 3. 注意线程块的数量限制为不超过 65535 (硬件限制)。 线程格 (Grid) 由多个线程块组成(可以表示成一维,二维,三维,具体下面再细说) 。 线程束 在 CUDA 架构中,线程束是指一个包含 32 个线程的集合,这个线程集合被“编织在一起”并且 “步调一致”的形式执行。 在程序中的每一行, 线程束中的每个线程都将在不同数据上执行相同的命 令。 核函数( Kernel ) 1. 在 G

文档评论(0)

181****9327 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档