cuda学习笔记一之GPU基本概念

简介

毕业工作以来从事深度学习方面工作,但在实际项目中需要对项目进行加速,因此需要学习cuda,此笔记简略记录学习cuda的历程。

GPU基本概念

什么是cuda?

  • CUDA是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务。
  • 而我们常说的CUDA其实一个gpu编程库,他以c/c++为基础提供一些gpu编程接口。

GPU分类?

gpu类别是有很多种,按照不同的领域可以分为高性能计算的、专业制图的、桌面版本的,如下表所示:

类别 显卡 计算能力 单精度性能(TFLOPS) 显存 CUDA CORE
高性能计算 TeslaV100,P100 暂无,6.0 14,9.3 16G,16G 5120,3584
专业制图 Quadro P6000 6.1 12 24G 3840
桌面GPU NVIDIA TITANX 6.1 11 12 3584

每秒浮点运算次数:1TFLOPS = 每秒10^11次浮点运算。

影响GPU计算能力的因素?

  • 时钟频率
  • (CUDA cores) 并行计算的核心处理器的数目.
  • 内存大小
  • 内存带宽 (Bandwidth, 指数据传输的速度)
  • GPU/CPU之间通讯的带宽.

GPU编程模型

gpu编程模型如下:

  • 线程级并行(核函数)
  • cpu+GPU同工作
  • 内存+显存同时利用
  • CPU和GPU通信
  • 串行或部分并行(CPU)+并行(GPU)

这里写图片描述

CPU和GPU数据通信模型

  • 首先cpu数据需要从内存拷贝到显存,中间的传输介质使用的是PCI bus。
    这里写图片描述
  • 然后执行gpu代码,gpu访问显存并完成计算。
    这里写图片描述

  • gpu计算完将结果拷贝到cpu内存中。
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/Iriving_shu/article/details/79254735