前 言

笔记来自深蓝学院《CUDA入门与深度神经网络加速》

补充:线程与线程

  • 线程是进程中执行运算(CPU调度)的最小单位。同一类线程共享代码和数据空间;进程是资源分配的最小单位。每个进程都有独立的代码和数据空间。
  • 多进程是指操作系统能同时运行多个任务(程序);多线程是指在同一程序中有多个顺序流在执行。
  • 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
  • 资源分配给进程,同一进程的所有线程共享该进程的所有资源;处理机分给线程,即真正在处理机上运行的是线程。
  • 线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体。

课堂笔记

1. GPU和CPU的基础知识

延迟:指令从发出到最终返回结果的时间。

吞吐量:单位时间处理指令的条数。

CPU特点(以减少延迟为导向):

  • 多级高速缓存结构:经常访问的内容放在低级缓存中,不经常访问的放在高级缓存中。
  • 复杂的控制单元:分支预测机制(if else),流水线数据前送。
  • 强大运算单元:整型浮点型复杂运算。

GPU特点(以增加指令吞吐为导向):

  • 缓存小:指令访问缓存的次数减少,提升内存访问指令的吞吐。
  • 控制简单:没有分支预测和数据转发,使得控制简单的指令提升吞吐。
  • 精简运算单元:计算单元多,以长延时流水线的形式提升运算简单指令的吞吐量

1.1 CPU与GPU对比

CPU适合处理复杂的指令(提升单指令的运行速度);
GPU适合处理多个简单指令(提升指令的执行数量)。

1.2 什么样的问题适合GPU

频繁访问缓存和控制复杂的指令不适合使用GPU,例如频繁访问磁盘的杀毒软件程序。

2. CUDA C编程基本知识


CUDA并行计算的整体步骤:

  • 主机端(CPU)申请内存到设备端(GPU)
  • 设备端核函数(GPU上运行的函数)实现运算密集和并行特点的指令
  • 设备端拷贝到主机端 释放现存和内存

2.1 CUDA 内存模型


CUDA中的内存模型根据硬件端和软件端分为几个层次。

2.1.2 硬件端

• 每个线程处理器(SP)都用自己的registers(寄存器)。
• 每个SP都有自己的local memory(局部内存),register和local memory只能被线程自己访问。
• 每个多核处理器(SM)内都有自己的shared memory(共享内存),shared memory 可以被线程块内所有线程访问。
• 一个GPU的所有SM共有一块global memory(全局内存),不同线程块的线程都可使用。

2.1.2 软件端


• 线程处理器(SP)对应线程(thread)
• 多核处理器(SM)对应线程块(thread block)
• 设备端(device)对应线程块组合体(grid)

3. 并行计算向量相加

  • 主机端:1.申请显存内存,2.转移拷贝,4.释放。

    1. 申请显存(全局内存)的函数cudaMalloc( ),例如:cudaError_t cudaMalloc (void **devPtr, size_t size) ,两个参数:地址和申请内存大小。
    2. 从设备全局内存中释放对象cudaFree( ),例如cudaError_t cudaFree ( void* devPtr ),指向释放对象的指针。
    3. (同步)内存数据复制传递cudaMemcpy( ),例如
      cudaError_t cudaMemcpy (void *dst, const void *src, size_t count, cudaMemcpyKind kind),从指针src拷贝到指针dst,count为执行大小,kind目前支持的四种选项:cudaMemcpyHostToDevice、cudaMemcpyDeviceToHost、cudaMemcpyDeviceToDevice、cudaMemcpyDefault。
  • 设备端:3.读写线程寄存器,读写GRID的全局内存,读写block中的共享内存。

GPU加速(一)CUDA C编程及GPU基本知识相关推荐

  1. CUDA 编程上手指南:CUDA C 编程及 GPU 基本知识

    作者丨科技猛兽 编辑丨极市平台 本文原创首发于极市平台,转载请获得授权并标明出处. 推荐大家关注极市平台公众号,每天都会更新最新的计算机视觉论文解读.综述盘点.调参攻略.面试经验等干货~ 目录 1 C ...

  2. CUDA (一):CUDA C 编程及 GPU 基本知识

    目录 1 CPU 和 GPU 的基础知识 2 CUDA 编程的重要概念 3 并行计算向量相加 4 实践 4.1 向量相加 CUDA 代码 4.2 实践向量相加 5 给大家的一点参考资料 1 CPU 和 ...

  3. Premiere渲染程序没有GPU加速(CUDA)

    文章目录 问题描述 解决方案 参考文献 问题描述 新装的电脑,GPU 是1080,用娱乐大师升级了驱动,Adobe Premiere 却没有上图的 GPU 加速 解决方案 升级驱动 驱动程序 | Ge ...

  4. 【GPU结构与CUDA系列4】GPU存储资源:寄存器,本地内存,共享内存,缓存,显存等存储器细节

    0 软件抽象和硬件结构对应关系的例子 把GPU跟一个学校对应起来,学校里有教学楼.操场.食堂,还有老师和学生们:很快有领导(CPU)来检查卫生(需要执行的任务Host程序),因此这个学校的学生们要完成 ...

  5. L0 范数图像平滑(L0 Smooth) 的原理和 GPU 加速【CUDA】

    一.概述 原作者提出了一种新的图像编辑方法,通过增加过渡的陡峭度,同时消除了一个低振幅结构的可管理程度,特别有效地锐化主要边缘.这种看似矛盾的效果是在一个利用 L0 梯度最小化的优化框架中实现的,它可 ...

  6. matlab win10 gpu加速,win10的Edge浏览器设置GPU硬件加速,大幅度提升浏览器性能

    不知道大家对于GPU硬件加速是否有了解,这是现在的浏览器必备的功能,开启后能大幅度提升浏览器的性能,给我们更加顺滑的浏览体验.GPU硬件加速能够利用GPU的图形性能,加速渲染网页中的图像信息. 如果我 ...

  7. [CUDA OpenCV]GPU加速的计算机视觉学习资源下载

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家介绍一本学习CUDA加速的OpenCV的新书<Hands-On GPU-Accelerated Computer Vision with ...

  8. Matlab的Gpu加速(CUDA cudnn)

    多CUDA版本的切换,及Matlab版本对应的CUDA版本 学习笔记–Matlab的Gpu加速 安装CUDA和cudnn时,踩了不少坑,总结如下几个经验: 1.显卡驱动的版本与CUDA是一对多的关系, ...

  9. 利用 GPU 加速人工智能:新型计算模式

    纽约大学本周有一场探讨 "人工智能的未来" 的年度座谈会,Yann LeCun 邀请NVIDIA 联合创始人兼首席执行官黄仁勋 (Jen-Hsun Huang)先生在座谈会上发言. ...

最新文章

  1. list python 转tensor_TensorFlow 中的几个关键概念:Tensor,Operation,Graph,Session
  2. UIImage图片拉伸方法
  3. Windows系统如何使用宝塔面板一键快速搭建本地服务器环境(LNMP/LAMP)
  4. 每个网页设计师应该知道的10条CSS规则
  5. 解决Fedora 自己编译的内核不能运行Virtualbox的问题。
  6. Java 设计模式之观察者模式
  7. JS中捉摸不透的==(宽松等于)
  8. 参数到不进oracle,Oracle对于启动参数检查不严格
  9. LaTex插入PDF图片并调整它的宽度
  10. icml和nips等各类重要会议论文收集
  11. 确定一个整数是否是2的幂
  12. C语言编程入门——程序练习(下)
  13. kx linux驱动下载,KX-MB2138CN Linux
  14. 2021-07-16 转载 - UmiJS应用框架
  15. 手机 播放音频 切换听筒和
  16. SQLite 对时间的支持
  17. 服务器系统2012浏览器,关闭Windows 2012系统IE浏览器”增强的安全配置已启用”问题 | 老左笔记...
  18. EventTarget.addEventListener()事件监听
  19. 请写下你的烦恼——读《解忧杂货店》有感
  20. Ghost备份后找不到GHO镜像文件

热门文章

  1. matlab如何写不等于号,不等于号(不等于号可以往右写么)
  2. 凉凉!写了个脚本,不小时锁了1W台手机。。
  3. 【第19天】内涵深厚才能妙语连珠
  4. Python简单绘制柱状图
  5. 【用pandas_alive几行代码绘制竞赛动图】全网首发pandas_alive数据可视化中文学习笔记合集,学不会来打我(配置好的venv虚拟环境+拿来即用测试代码+测试数据集+参数api解析)
  6. 文件删除终结者 v1.2 免费
  7. iphone版 天行skyline_‎App Store 上的“Skyline University”
  8. 十分详细的阳光十六法则 (转)
  9. Android studio系列:win10上Android studio4.0.2下载安装
  10. Formality使用总结1