首页 > 其他分享 >GPU扫盲

GPU扫盲

时间:2023-07-08 17:00:38浏览次数:27  
标签:任务 扫盲 并行计算 计算 GPU CPU 单元

前言

相信对于软件工程师来说, CPU并不陌生. 人工智能以及机器学习带火了GPU. 经常听到的就是, GPU计算比CPU快, 但具体是怎么快的却从未刨根问底. 之前在听到GPU的时候, 我有过这样的疑问:

  1. GPU是什么?
  2. 为什么比CPU快? 快在哪里? 如果各方面碾压那CPU不就淘汰了?
  3. 是否可以基于GPU实现操作系统?

这篇文章不涉及GPU的具体原理, 仅做大概描述, 将其与CPU区别说明白就好.

是什么

要了解GPU是什么, 我们可以从它的来历入手.

计算机图形学和动画设计的出现后,产生了第一批计算密集型工作负载,例如,电子游戏动画需要应用程序处理数据以显示数千个像素,每个像素都有自己的颜色、亮度和移动方式. 当时 CPU 上的几何数学计算导致了性能问题.

于是硬件制造商开始认识到,将CPU的能力减弱可以减轻 CPU 的压力并提高性能. 于是, GPU出现了. 如今,与 CPU 相比,图形处理单元(GPU)工作负载处理一些计算密集型应用(比如机器学习和人工智能)时更高效。

从 GPU 的名字 图形处理单元也能够大致猜测出它的主要用途, 就是对图形与显示进行处理的.

为什么

CPU 和 GPU 的出发点不同, 要解决的问题也不同.

对于 CPU 来说, 要进行大量逻辑处理, 比如:

  1. 中断
  2. 分支跳转
  3. 指令集
  4. 不同的数据类型
  5. 任务流水线
  6. 分支预判
  7. mmu, TLB
  8. 等等

而对于 GPU 要处理的任务就简单的多, 数据类型单一且不需要中断. 对于 GPU 来说, 其实就是要计算出屏幕上一个个像素点的值.

通常来说, CPU 内部的计算单元为8个, 也就是通常说的8核. 大一些的话也就是32核. 而对于 GPU 来说, 计算单元轻轻松松上千, 这样在计算屏幕像素点的时候, 不同核并行计算提高渲染速度. 同时也是针对页面渲染, GPU 的所有计算单元同一时间接收同一个计算任务, 只是处理数据不同.

相比 CPU 来说, GPU 的指令集就简单的多, 且没有那么多逻辑操作. 简单来说, GPU 就是接收计算任务并行计算.

当然, 有个前提是不同计算任务之间没有依赖关系, 所以才能够并行计算嘛.

那么为什么CPU不能拥有上千计算单元呢?因为体积的原因, CPU内部拥有内部缓存、控制单元等等, 留给计算单元的空间就小的多了, 而GPU只有简单的控制单元, 剩余的空间都被大量的计算单元填充.

解惑

GPU 在最开始的设计上就是为了图形处理设计的. 但因为其适合大规模并行计算任务的特性, 慢慢的也被用于处理其他一些任务, 比如: 天气预报, 机器学习等等.

回到我们最开始的问题, 既然GPU这么快, 是否可以基于GPU实现操作系统? 答案呼之欲出, 不能. 因为GPU内部逻辑过于简单, 而操作系统又需要应对十分复杂的场景, 因此GPU只能作为一个配角来复制CPU执行.

CPU与GPU的最初设计目的就不同


OK, 本篇文章仅对 GPU 做简单介绍, 有个大致印象即可, 主要目的是满足好奇心, 也不需要具体的探究其实现原理.

标签:任务,扫盲,并行计算,计算,GPU,CPU,单元
From: https://www.cnblogs.com/hujingnb/p/17537483.html

相关文章

  • 从0开发WebGPU渲染引擎:开篇
    大家好,本系列会从0开始,开发一个基于WebGPU的路径追踪渲染器,使用深度学习降噪、DLSS等AI技术实现实时渲染;并且基于自研的低代码开发平台,让用户可以通过可视化拖拽的方式快速搭建自定义的Web3D引擎目录回顾目前的技术积累为什么要从0开发WebGPU渲染引擎?下一步回顾目前的技术积累......
  • 大模型复现实践记录-在linux环境4090GPU(24G)
    chatglm-6btiger-7b......
  • Unreal Engine4 GPU崩溃或3D设备丢失的解决方案
    起因:UnrealEngine4在渲染时报错GPU崩溃或3D设备丢失解决办法:regedit 打开注册表在以下2个路径下新建 DWORD(32-bit)Value命名为  TdrDelay,并修改数值为:60(十进制)Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDriversComput......
  • 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC的异构计算——CPU和GPU的
    好消息,居然有经费了,账号可以接着用了,可以接着玩超算了。   ==========================================================......
  • Linux 6.5增加对高通开源GPU Adreno 690的支持
    即将推出的Linux 6.5内核将把对高通Adreno690GPU的支持添加到开源的MSM内核图形/显示驱动程序中。A690主要用于骁龙8cx第三代(SC8280XP)平台,而联想ThinkPadX13s笔记本电脑和其他硬件也采用了该平台。新的支持将包含近200行代码,并超过现有Adreno600系列硬件的支持。此次......
  • Linux 6.5增加对高通开源GPU Adreno 690的支持
    即将推出的Linux 6.5内核将把对高通Adreno690GPU的支持添加到开源的MSM内核图形/显示驱动程序中。A690主要用于骁龙8cx第三代(SC8280XP)平台,而联想ThinkPadX13s笔记本电脑和其他硬件也采用了该平台。新的支持将包含近200行代码,并超过现有Adreno600系列硬件的支持。此次......
  • Linux 6.5增加对高通开源GPU Adreno 690的支持
    即将推出的Linux 6.5内核将把对高通Adreno690GPU的支持添加到开源的MSM内核图形/显示驱动程序中。A690主要用于骁龙8cx第三代(SC8280XP)平台,而联想ThinkPadX13s笔记本电脑和其他硬件也采用了该平台。新的支持将包含近200行代码,并超过现有Adreno600系列硬件的支持。此次......
  • 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC平台异构计算——NVIDIA GP
       使用华为的超算平台已经好长时间了,一直有个疑问,那就是这个超算平台是否支持异构计算,于是用命令试验了一下,具体命令: /opt/batch/cli/bin/dsub  -ntask_test-Axxxxxxxxxxxx-eoerror.txt-oooutput.txt-R"gpu=1"/usr/bin/nvidia-smi-pm1     -......
  • 怎样导入pytorch gpu版本?
    1.下载anaconda2.在anaconda里创建环境create-npytorch_gpu#激活环境condaactivatepytorch_gpu3.在环境里install修改镜像接下来就是关键一步了,把-cpytorch表示的pytorch源,更改为国内的镜像。https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/先浏......
  • 微调7B模型只用单GPU!通用多模态工具LLaMA-Adapter拆掉门槛,效果惊人
    前言 开源万能模型微调工具LLaMA-Adapter发布,支持多模态输入输出。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【CV技术指南......