AI芯片架构体系综述:芯片类型CPU\GPU\FPGA\ASIC以及指令集CSIS\RISC介绍

news/2024/11/30 14:28:05/

大模型的发展意味着算力变的越发重要,因为大国间科技竞争的关系,国内AI从业方在未来的一段时间存在着算力不确定性的问题,与之而来的是许多新型算力替代方案的产生。如何从架构关系上很好的理解计算芯片的种类,并且从计算类型、生态、流片能力等多角度评估算力需求,正在成为AI方向负责人的核心竞争力。

正因为这个原因,最近几个休息日我一直在看相关领域的文章和论文,试着理清算力基础架构关系,因为过去积累不够深,可能有不准确的地方,还望指出。

PART01 AI芯片架构体系

学习芯片架构,首先需要有一个体系架构图,如何评价一款AI芯片,可以从芯片类型、指令集类型、指令集架构、代表公司以及制程几个角度来看。

不同的芯片类型决定了芯片的用途和设计理念,所以这方面一定是了解芯片最关键的一点。指令集类型和指令集架构,跟芯片的生态息息相关,因为一款好的芯片,不光要具备强大的计算性能,也要有广泛、灵活的开发者生态体系,做到软硬结合。最后一点是公司以及制程,公司的市占率以及芯片的制程是否足够先进,关系到芯片的商用成熟度以及供货保障程度。接下来会详细展开以上几个方向。

PART02AI芯片基本类型

CPU、GPU、FPGA、ASIC是目前AI计算过程中最主流的四种芯片类型,他们的主要区别体现在计算效率、能耗和灵活性上面。

  • CPU:CPU是冯诺依曼架构下的处理器,遵循“Fetch (取指) -Decode (译码) - Execute (执行) - Memory Access (访存) -Write Back (写回)”的处理流程。在执行计算任务过程中,数据需要先获取并存入RAM,然后解码获得指令,然后在ALU计算模块计算,最终将计算结果返回RAM。整个流程更强调控制和决策,在并行计算效率上有较大提升空间

  • GPU:GPU最早用于图像处理领域,减少了大量数据预取和决策模块,增加了计算单元ALU的占比,从而在并行化计算效率上有较大优势。

  • FPGA:FPGA的设计使得计算逻辑十分灵活,它不像CPU和GPU那样只能执行编译和汇编的内容,FPGA因为几乎没有控制模块,所有模块都是ALU计算模块,而且所有模块都可定制开发。但这也是FPGA的主要缺陷,因为具备很强的灵活度,导致设计难度和复杂度较高。

  • ASIC:ASIC是专门针对某一领域设计的芯片,比如神经网络计算芯片NPU、Tensor计算芯片TPU等。因为是针对特定领域定制,所以ASIC往往可以表现出比GPU和CPU更强的性能,ASIC也是目前国内外许多AI芯片设计公司主要研究的方向,可以预见未来市面上会逐渐有大量AI领域的ASIC芯片出现。

PART03AI芯片指令集和架构

接着说下AI芯片的指令集,首先要了解指令集是什么。计算机执行任务的过程可以看作是把程序编译成硬件可以理解的语言,再有硬件完成最终的计算工作。指令集可以理解是为编程和编译服务的一种计算机硬件可以理解的语言。

指令集分复杂指令集(CSIC)和精简指令集(RISC)。

CSIC主要用于传统的CPU芯片领域,他的设计模式是把用一个指令完成较复杂的任务,比如”帮我选个餐厅“。RISC是精简指令集,把任务进行拆解,比如”先了解我喜欢什么“,再”查查附近有什么餐厅“,”做一个匹配“。因为精简的设计,RISC在优化编译方面有很大的空间,目前深度学习主要计算都在RISC指令集的英伟达GPU芯片,所以目前在计算的编译优化方向,有很大空间,也是行业聚焦的技术方向。

接下来看下指令集架构(ISA),在AI领域需要重点关注ARM、RISC-V,国内外许多厂商也有在探索自研指令集架构,但是也是基于ARM或者RISC-V的设计思路。

ARM架构则是由英国的ARM Holdings公司开发的,它是为嵌入式系统和移动设备而设计的。ARM架构的主要特点是低功耗、高性能和可扩展性,它可以支持移动设备、嵌入式系统、智能家居等应用。

RISC-V是近些年非常流行的指令集架构,RISC-V与 ARM 和 MIPS 最大的差别还是在于其为 RISC-V 基金会进行标准的制定和维护工作而非商业公司,任何人可以无偿使用该指令集开发自己的 CPU ,或者往自己已有的芯片中集成开源免费的 RISC-V IP Core,这是比较吸引电子设备厂商的重要原因。

PART04总结

最近有几个大事件,一个是NV收购ARM进军CPU领域,另外就是美国强化了对国内的高端芯片制裁。从这些动作来看,AI芯片的新一轮竞争暗潮汹涌,随着各个厂商都在减少自己的芯片生态体系,未来在编译优化、异构芯片调度、冯诺依曼内存墙突破等方向一定会有更多新的工作,这些也需要持续探索。


http://www.ppmy.cn/news/1199481.html

相关文章

12.JavaScript(WebAPI) - JS api文献精解

文章目录 1.WebAPI 背景知识1.1什么是 WebAPI1.2什么是 API1.3API 参考文档 2.DOM 基本概念2.1什么是 DOM2.2DOM 树 3.获取元素3.1querySelector3.2querySelectorAll 4.事件初识4.1基本概念4.2事件三要素4.3简单示例 5.操作元素5.1获取/修改元素内容5.1.1innerText5.1.2innerHT…

LeetCode 面试题 16.17. 连续数列

文章目录 一、题目二、C# 题解 一、题目 给定一个整数数组,找出总和最大的连续数列,并返回总和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。…

Netty第二部

一、EventLoop和EventLoopGroup 一个Channel可以近似的理解成一个Socket的包装,EventLoop管理这些Channel的 1、EventLoop EventLoop作为线程,具体Channel由EventLoop管理,在AbstractChannel类的register()方法可以体现 Override public …

pcigo图床插件的简单开发

1.前言: 如果想写一个图床并且投入使用,那么,接入picgo一定是一个不错的选择。picgo有着windows,mac,linux等多个客户端版本。实用且方便。 2. 开发的准备: 2.0. 需要安装一个node node这里我就不详细说…

STL(第八课):map

STL map是C标准库中的容器,它是一种关联容器,也就是说,它的元素是按照键值来存储的。STL map以键值对的形式来存储数据,每个键对应一个值。map中的每个元素都是一个pair对象,pair第一个元素为键,第二个元素…

解决gtihub访问不到的

解决gtihub访问不到的 小编一开始也是找不到git但是通过查询资料,最终也是找到了解决方式 据说git的ip地址通常会变化的,可以通过地址查询网站查询到git当前的ip https://sites.ipaddress.com/github.com/在输入框中github.com,然后搜索 在…

如何再kali中下载iwebsec靶场

这个靶场有三种搭建方法: 第一种是在线靶场:http://www.iwebsec.com:81/ 第二种是虚拟机版本的,直接下载到本地搭建 官网地址下载:http://www.iwebsec.com/ 而第三种就是利用docker搭建这个靶场,我这里是用kali进行…

【Head First 设计模式】-- 观察者模式

背景 客户有一个WeatherData对象,负责追踪温度、湿度和气压等数据。现在客户给我们提了个需求,让我们利用WeatherData对象取得数据,并更新三个布告板:目前状况、气象统计和天气预报。 WeatherData对象提供了4个接口: …