写点什么

深度学习利器之 GPU

  • 2022 年 5 月 26 日
  • 本文字数:1285 字

    阅读完需:约 4 分钟

深度学习利器之GPU

1.背景

深度学习算法在 CPU 和 GPU 上的训练效率有明显的差距。为什么 GPU 更适合深度学习,今天和大家扒一扒 GPU。


2.器材

● Python

● Linux Shell


3.内容


3.1 GPU 和 CPU 架构差别



此图片来源 nVidia CUDA 文档。其中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元。

可以看出 CPU 的结构比 GPU 结构要复杂。


解读:

  1. 名称:CPU(Center Processing Unit)即中央处理器,GPU(Graphics Processing Unit)即图形处理器

  2. 通过控制单元,CPU 能处理复杂的逻辑计算,用缓存来换取低延迟,具有强大的计算单元,支持通用的计算,CPU 适用于复杂计算和控制,如操作系统,分布式计算,人工智能算法等;

  3. 相比 CPU,GPU 只有少量的缓存和而拥有大量的计算单元(简单计算)。特别适用于大吞吐量的简单的任务,最早是主要是为了支持视频游戏(即显卡)中,对海量数据做简单操作,比如坐标变换等。

  4. 有个形象的比喻: CPU 是教授(少),GPU 是小学生(多)


3.2 GPU 发展史



解读:

  1.  1999 年,NVIDIA 发布了 Geforce 256, 第一款提出 GPU 概念,开天辟地的产品.

  2. 2003-2004 年左右,图形学之外的领域专家开始注意到 GPU 与众不同的计算能力,开始尝试把 GPU 用于通用计算(即 GPGPU)

  3. NVIDIA 提出高性能并行计算平台和编程模型。CUDA(Compute Unified Device Architecture 的简称),GPU 计算应用到各个领域。


3.3 什么程序适合 GPU


(1)计算密集型的程序。所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是 SSD, 也实在是太慢了。

(2)易于并行的程序。GPU 其实是一种 SIMD(Single Instruction Multiple Data)架构, 他有成百上千个核,每一个核在同一时间最好能做同样的事情。

目前编写 GPU 上跑的程序,有 CUDA 提供了良好的平台,可以通过 C 语言来编写。但是相对入门门槛高,好在现在已有框架已经封装好 GPU 计算,如 tensorflow, 在默认情况下可以使用 GPU 来计算,而不需要做额外的处理。



3.4 找一找你的 GPU

  • 查看显卡和 CPU 信息

 lspci | grep -i vga



可以看到两种一个 NVIDIA 一个是服务器的显卡 ASPEED


  • 查看具体信息

 lspci -v -s 02:00.0



可以看显存等信息


  • nvidia 显卡使用情况

 nvidia-smi




看看你的 tensorflow 是不是跑在 GPU 上

要配置 tensorflow 支持 GPU 计算,需要安装 CUDA9.0 和 cuDNN 以及疼 soflow GPU 版本。 安装这里就不说了。 这里验证下 tensorFlow 是否跑在 GPU 上。

import tensorflow as tf
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
c = a + b
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print sess.run(c)
复制代码



tensorflow 也提供了许多灵活的配置,来限制 GPU 的使用情况。

  • 限制使用 GPU,下面限制只使用 0 和 1 GPU



  • 限制 GPU 使用率



4.结语

和大家一起了解了下 GPU。总结一下,GPU 拥有众多处理简单任务的计算单元(核),适用于大吞吐量的并行计算。适合深度学习过程中大量卷积计算(矩阵操作)。流行的深度学习框架都支持 GPU 计算,如 tensorflow,keras 等。




发布于: 刚刚阅读数: 3
用户头像

公众号:人工智能微客(weker) 2019.11.21 加入

人工智能微客(weker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
深度学习利器之GPU_人工智能_AIWeker-人工智能微客_InfoQ写作社区