什么是GPU计算

什么是GPU计算

  • Nvidia公式发布了了CUDA,它是建立在NVIDA的CPUs上的一个通用并行计算平台和编程模型,基于CUDA编程可以利用GUPs的并行计算引擎来更加高效地解决比较复杂的计算难题
  • GPU并不是一个独立运行的计算平台,而需要与CPU协同工作,可以看成是CPU的协处理器,因此当我们在说GPU并行计算时,其实是指的基于CPU+GPU的异构计算架构。
  • 在异构计算架构中,GPU与CPU通过PCle总线连接在一起来协同工作
  • CPU所在位置称为主机端(host),而GPU所在位置称为设备端(device)。

为什么使用GPU计算

  • GPUs的并行计算引擎强大,可以大幅度加快计算速度,例如15倍左右
  • 超级计算机使用加速器,例如天河,Summmit
  • 机器学习以及人工智能需要训练模型,需要大量的计算,特别是稠密矩阵向量计算,GPU可以快十倍以上
  • GPU最成功的一个应用就是深度学习领域,基于GPU的并行计算已经成为训练深度学习模型的标配。

CPU与GPU分工与协作

  • GPU包括更多的运算核心,其特别适合数据并行的计算稠密型任务,如大型矩阵运算
  • CPU的运算核心较少,但是其可以实现复杂的逻辑运行,因此其适合控制密集型任务。
  • CPU上的线程是重量级的,上下文切换开销大
  • GPU由于存在很多核心,其线程是轻量级的
  • 基于CPU+GPU的异构计算平台可以优势互补,CPU负责处理逻辑复杂的串行程序,而GPU重点处理数据密集型的并行计算程序,从而发挥最大功效。

语言选取

  • CUDA是NVIDIA公司所开发的GPU编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序。
  • CUDA提供了对其它编程语言的支持,如C/C++,Python等语言。

CUDA工具

  • 编译器:nvcc(C/C++)
  • 调试器:nvcc-gdb
  • 性能分析:nsight,nvprof
  • 函数库:cudblas,nvblas,cusolver,cuffw,cusparse,nvgraph

根据b站视频:https://www.bilibili.com/video/BV11K411N7Wm?t=331

猜你喜欢

转载自blog.csdn.net/lovebaby1689/article/details/110925023