暴雨讲堂|AI算力芯片王者GPGPU是什么?

在AI飞速发展的这几年,市场上涌现一大批诸如DPU、NPU、TPU、IPU等“XPU”的新概念,是真的存在不同的架构,还是只是一些厂商营销出来的噱头?事实上,从CPU的发展角度来看,这些XPU都不是真正的处理器。相反,他们更偏向于一种GPU,用于执行特殊工作负载的加速器。

众所周知,CPU一般由逻辑运算单元、控制单元和寄存器组成。因为CPU有复杂的数字和逻辑运算单元,并辅助有分支预测乱序执行等逻辑电路,所以CPU拥有强大的逻辑控制处理和运算能力,能够处理纵向的复杂任务。

为了减少与内存进行数据互换而造成信号延迟,CPU上使用了大量的片用来作为缓存,从而实现内存访问延迟几乎为0,相比之下,负责运算的算数逻辑单(ALU)就只占了极少的一部分,这就导致了它在处理并行计算的时候显得有些捉襟见肘,而GPU里面,单核运算处理性能稍差,控制逻辑简单且省去Cache(缓存),但ALU占比巨大,因而它可以用来处理高强度的横向图形计算,提升并行计算效率。

但是,GPGPU每个核心拥有的缓存相对较小,核心的逻辑功能简单,只能执行有限种类的逻辑运算操作。GPGPU内部的核心通常被划分成若干个组,组内核心不能独立工作运行,需要协同工作共同完成运算任务。

为了解决GPU效率问题,GPGPU由此诞生,得益于shader( Shader(着色器)是一段能够针对3D对象进行操作、并被GPU所执行的程序)的出现,GPU在图形流水线中引入了可编程性,从此GPU能做的事情不再局限于图形数据的处理,而将触角延伸至其他计算密集的领域,开启了GPGPU时代。

GPUGPU全称通用计算图形处理器(General Purpose GPU),是一种强大的计算工具,能够协助CPU进行非图形相关的复杂运算。

在GPGPU架构设计中,摒弃了GPU的图形显示部分,将其余部分全部投入通用计算,并成为AI加速卡(一种并行计算硬件)的核心。因此它能高效地搬运、运算和处理海量数据以及高并发数据,主要用于例如物理计算、加密解密、科学计算以及比特币等加密货币的生成。

Cuda——作为一种芯片架构,目前英伟达主流的GPUGPU框架是CUDA,它采用并行计算框架,允许开发者使用C语言在上面进行二次开发,并且在英伟达的CPU上执行。它的特点是基于C语言,易于上手,并且提供了丰富的库,以及各种工具,方便开发者进行高性能计算,CUDA提供了各种nvprof、Nsight来帮助开发者优化代码性能。   

OpenCI——0penCl(Open Computing Language)是一个开放的标准,支持多种类型的计算设备,包括CPU.GPU、FPGA等。它由Khronos Group维护,旨在提供跨平台的并行编程能力。0penCL能够在不同厂商的硬件上运行,如AMD、Intel、NVIDIA等。它支持多种设备和架构,提供了灵活的编程接口。作为开放标准,0penCL拥有广泛的社区支持和文档资源。

Vulkan——Vulkan是Khronos Group推出的一种低开销、高效能的图形和计算API。主要用于图形渲染,也能够提供强大的计算能力。

GPGPU的出现能够有效解决类似并发场景CPU效率低的问题。但实际上大多程序会因为等待访问而导致效率低下,且管理和组织大量程序会付出巨大的硅片面积代价和内存带宽的代价,为了提升GPGPU的工作效率,TPU(张量处理器)应运而生。它全称Tensor Processing Unit,是一种专为处理张量运算而设计的ASIC芯片,由谷歌在2016年推出。在深度学习的世界里,张量(多维数组)是无处不在的,TPU就是为了高效处理这些张量运算而诞生的。这三者是从通用到专用不断演进的过程。

而所谓的NPU(Neural network Processing Unit), 即神经网络处理器。NPU处理器专门为物联网人工智能而设计,用于加速神经网络的运算,解决传统芯片在神经网络运算时效率低下的问题。TPU是由谷歌发布的因而只能被广泛应用于 Google 的云基础设施,而 NPU 作为一种针对 AI 任务进行定制AI芯片,一般都集成在特定的AI设备中,例如智能手机和物联网 (IoT) 设备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/9663.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

行车记录打不开?原因分析与数据恢复全攻略

行车记录遭遇困境 行车记录仪,作为现代驾驶中的重要设备,不仅能够帮助我们记录行车过程,还能在关键时刻提供有力的证据。然而,当行车记录突然打不开时,这无疑给车主们带来了不小的困扰。行车记录打不开,可…

SpringMVC总结 我的学习笔记

SpringMVC总结 我的学习笔记 一、SpringMVC简介1.MVC2.SpringMVC概述3. SpringMVC中的核心组件4.SpringMVC核心架构流程 二、SpringMVC框架实例具体实现使用注解实现 四、数据处理及跳转1.结果跳转方式2.处理器方法的参数与返回值处理提交数据数据显示到前端 五、RestFul风格1.…

云计算基础1

声明 学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 云计算基础概念 一、云计算的定义 云计算是一种资源交付和使用模式,指通过网络获得应用所需的…

Guava限流神器:RateLimiter使用指南

1. 引言 可能有些小伙伴听到“限流”这个词就觉得头大,感觉像是一个既复杂又枯燥的话题。别急,小黑今天就要用轻松易懂的方式,带咱们一探RateLimiter的究竟。 想象一下,当你去超市排队结账时,如果收银台开得越多&#…

被复线远传节点机JR-IPAM-1600

产品描述 JR-IPAM-1600J是一款被复线远传节点机,通过传统双绞线电缆(被复线\网线\对数电缆\矿用电缆等),用户就可以快速组成一个高速的传输网、局域网。它具有传输速率高、运行稳定、快速安装部署的特点,设备特有的AU…

【React】React 生命周期完全指南

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 React 生命周期完全指南一、生命周期概述二、生命周期的三个阶段2.1 挂载阶段&a…

自定义springCloudLoadbalancer简述

概述 目前后端用的基本都是springCloud体系; 平时在dev环境开发时,会把自己的本地服务也注册上去,但是这样的话,在客户端调用时请求可能会打到自己本地,对客户端测试不太友好. 思路大致就是前端在请求头传入指定ip&a…

Vue3-子传父

1. 主组件 App.vue(父组件) 在 App.vue 中,我们先引入了子组件 SonCom,这个小家伙将在父组件中出场。 接着,我们写了一个叫 getMessage 的函数。这个函数的任务很简单——接收子组件传来的消息,然后用 con…

vue--vueCLI

何为CLI ■ CLI是Command-Line Interface,俗称脚手架. ■ 使用Vue.js开发大型应用时,我们需要考虑代码目录结构、项目结构和部署、热加载、代码单元测试等事情。(vue 脚手架的作用), 而通过vue-cli即可:vue-cli 可以…

基于 JAVASSM(Java + Spring + Spring MVC + MyBatis)框架开发一个医院挂号系统

基于 JAVASSM(Java Spring Spring MVC MyBatis)框架开发一个医院挂号系统是一个实用的项目。 步骤一:需求分析 明确系统需要实现的功能,比如: 用户注册和登录查看医生列表预约挂号查看预约记录取消预约管理员管…

Golang--反射

1、概念 反射可以做什么? 反射可以在运行时动态获取变量的各种信息,比如变量的类型,类别等信息如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段、方法)通过反射,可以修改变量的值,可以调用关联的方法…

计算机网络 TCP/IP体系 数据链路层

一. 数据链路层的基本概念 数据链路层主要负责节点之间的通信,确保从物理层接收到的数据能够准确无误地传输到网络层。 数据链路层使用的信道主要有以下两种类型: 点对点信道: 这种信道使用一对一的点对点通信方式。广播信道: 这种信道使用一对多的广播通信方式,…

使用注解装配Bean

!!!仅用作学习笔记记录!!! 一、一些概念: 1.定义Bean的注解: 在实际开发中分别使用Repository、Service与Controller对实现类进行标注。 2.注入Bean组件装配的注解 Autowired默认…

csa文件管理账号管理练习

1、查看/etc/passwd文件的第18-20行内容,并将找到的内容存储至/home/passwd文件中(head,tail,>,>>) # head -num 显示文件头num行 # tail -num :显示文件的最后num行 # 输出重定向 > # 使用…

软考高级架构 - 8.1 - 系统质量属性与架构评估 - 超详细讲解+精简总结

第8章 系统质量属性与架构评估 软件系统属性包括功能属性和质量属性,而软件架构重点关注质量属性。 8.1 软件系统质量属性 8.1.1 概述 软件系统的质量反映了其与需求的一致性,即:软件系统的质量高低取决于它是否能满足用户提出的需求&#…

初见Linux:基础开发工具

前言: 这篇文章我们将讲述Linux的基本开发工具,以及讨论Linux的生态圈,最后再了解vim开发工具。 Yum: YUM(Yellowdog Updater Modified)是一个在Linux系统中用于管理软件包的工具,特别是在基于…

电信基站智能计量新方案:DJSF1352双通讯直流计量电表——安科瑞 丁佳雯

随着信息技术的飞速发展和5G时代的到来,电信基站作为信息传输的重要基础设施,其能耗管理和运营效率成为各大运营商关注的焦点。为了应对日益增长的能耗需求和复杂的运维挑战,采用高效、智能的计量方案显得尤为重要。在这样的背景下&#xff0…

Pytorch cuda版本选择(高效简洁版)

简而言之 Pytorch cuda版本选择 只需要低于cuda驱动版本即可,cuda驱动版本查看命令是nvidia-smi, nvcc -V 是runtimeapi版本可以不用管 1.只要看cuda驱动版本 安装pytorch 选择cuda版本,只要看你电脑cuda驱动版本即可。 2.选择依据 pytorch中cuda版本只…

全网最详细的项目管理完整方案!破解项目管理难题,解决方案一网打尽!

在现代企业中,项目管理愈发复杂,尤其是项目规模扩大、团队多元化的情况下,项目管理的难度逐渐上升。当前,企业在项目管理中面临以下主要问题: 信息碎片化:项目数据和文件分散在不同部门和系统中&#xff0…

数据库的使用05:不规范的写法与操作记录

一、写SQL带数据库名 【严禁】sql写成 select * from databasename.dbo.tablename 【原因】生产环境的databsename不一定和开发环境的databsename一样 【正确写法】select * from tablename 二、不合理的表设计 【改善方法】C#小结:数据库中数据表的设计原则、技…