【AI系统】芯片的编程体系

简介: 本文探讨了SIMD与SIMT的区别及联系,分析了SIMT与CUDA编程的关系,深入讨论了GPU在SIMT编程的本质及其与DSA架构的关系。文章还概述了AI芯片的并行分类与并行处理硬件架构,强调了理解AI芯片编程体系的重要性,旨在帮助开发者更高效地利用AI芯片算力,促进生态繁荣。

本篇幅主要探讨 SIMD 和 SIMT 的主要区别与联系,SIMT 与 CUDA 编程之间的关系,并且会讨论 GPU 在 SIMT 编程本质,SIMD、SIMT 与 DSA 架构,DSA 架构的主要形态。目前已经有大量的 AI 芯片研发上市,但是如何开发基于硬件的编译栈与编程体系,让开发者更好地使用 AI 芯片,更好的发挥 AI 芯片的算力,让生态更加繁荣,因此理解 AI 芯片的编程体系就显得尤为重要。

AI 芯片并行分类

AI 芯片主要是为实现并行计算,从程序并行的角度出发,主要可以分为指令级并行、数据级并行和任务级并行:

  1. 指令级并行(Instruction Level Parallelism,ILP):在同一时间内执行多条指令,这些指令可能是不同的程序段或者同一程序段的不同部分。这种并行性是通过流水线技术实现的,即在处理器中同时执行多个指令的不同阶段,从而提高处理器的效率。

  2. 数据级并行(Data Level Parallelism,DLP):在同一时间内处理多个数据元素,这些数据元素可能是独立的或者相关的。数据级并行通常通过向量处理器或者并行处理器来实现,可以同时对多个数据元素进行相同的操作,从而提高数据处理的效率。

  3. 任务级并行(Task Level Parallelism):将一个任务分解成多个子任务,然后同时执行这些子任务,可以通过多线程或者分布式计算来实现。

并行处理硬件架构

按照数据与指令之间的关系,关于并行处理的硬件架构主要有 SISD(单指令流单数据流)、SIMD(单指令流多数据流)、MSID(多指令流单数据流)和 MIMD(多指令流多数据流)四种:

  1. 单指令流单数据流(Single Instruction Single Data,SISD):这种架构中只有一个处理器执行单个指令流,处理单个数据流。这是传统的单处理器系统,适用于串行计算任务。

  2. 单指令流多数据流(Single Instruction Multiple Data,SIMD):这种架构中有多个处理器同时执行相同的指令流,但处理不同的数据流,每个处理器执行相同的操作,但是操作的数据不同。适用于向量处理器或者 GPU 等并行处理器架构。

  3. 多指令流单数据流(Multiple Instruction Single Data,MISD):这种架构中有多个处理器执行不同的指令流,但处理相同的数据流。每个处理器执行不同的操作,但是操作的数据相同。MISD 系统在实际应用中较为罕见。

  4. 多指令流多数据流(Multiple Instruction Multiple Data,MIMD):这种架构中有多个处理器执行不同的指令流,处理不同的数据流,每个处理器可以独立执行不同的任务,适用于多核处理器、分布式系统或者并行计算集群等场景。

SISD 系统中每个指令部件每次仅译码一条指令,而且在执行时仅为操作部件提供一份数据,此时支持串行计算,硬件并不支持并行计算,在时钟周期内 CPU 只能处理一个数据流。

SISD

目前 CPU 和 GPU 主要用到的并行计算架构是 SIMD,处理器硬件中添加了多个 PU(Process Unit)单元,此时一个控制器控制多个处理器,同时对一组数据中每一个数据分别执行相同的操作,实现并行计算。SIMD 主要执行向量、矩阵等数组运算,处理单元数目固定,适用于科学计算,特点是处理单元数量很多,但是处理单元速度会受到计算机通信带宽数据传输速率的限制。

SIMD

英伟达 GPU 架构围绕可扩展的多线程流式多处理器 (Streaming Multiprocessors,SM) 阵列构建,当主机 CPU 上的 CUDA 程序调用内核网格时,网格的块被枚举并分发到具有可用执行能力的多处理器。一个线程块的线程在一个 SM 上并发执行,多个线程块可以在一个 SM 上并发执行,当线程块终止时,新块在空出的 SM 上启动,SM 使 GPU 同时执行数百个线程。

为了管理如此大量的线程,英伟达 GPU 实际上采用了 SIMT(Single-Instruction Multiple-Thread,单指令多线程)架构,SIMT 体系结构属于 SIMD 中的一种特殊形态,但是 SIMT 使程序员能够为独立的标量线程编写线程级并行代码,以及为协调线程编写数据并行代码。

AI 计算方式与硬件模型

AI 计算方式

在神经网络中,单个神经元展开,其中最核心的计算为矩阵乘 $(X·W)$,无论 FFN 还是 CNN,早期的 ALSTN,亦或是大模型中的 Transformer 都大量地使用到矩阵乘计算。

神经网络架构图

FFN (Feedforward Neural Network):是一种最简单的神经网络结构,由多个全连接层组成,每一层的神经元与下一层的神经元全连接。FFN 主要用于在神经网络中进行特征提取和非线性变换。

CNN (Convolutional Neural Network):卷积神经网络是一种专门用于处理图像和视频等二维数据的神经网络结构。它通过卷积层、池化层和全连接层等组件来提取图像特征,并在图像分类、目标检测等任务中取得了很好的效果。

ALSTN (Attention-based Long Short-Term Neural Network):是一种结合了注意力机制和长短时记忆网络(LSTM)的神经网络模型。ALSTN 在序列建模、语音识别等领域中具有很好的应用前景,能够更好地捕捉序列数据之间的长期依赖关系。

Transformer:Transformer 是一种基于自注意力机制的神经网络模型,广泛应用于自然语言处理领域。Transformer 取代了传统的循环神经网络(RNN)和长短时记忆网络(LSTM),在机器翻译、文本生成等任务中取得了很好的效果。

神经网络中,训练(Training)和推理(Inference)是两个重要的阶段。

训练(Training):在训练阶段,神经网络通过输入数据和对应的标签(ground truth)来学习模式和特征,以调整网络中的参数(如权重和偏置)以最小化损失函数。训练的目标是使神经网络能够准确地预测输出结果。训练阶段通常包括前向传播(forward propagation)计算输出,反向传播(backpropagation)计算梯度,并使用优化算法(如梯度下降)更新参数。

推理(Inference):在推理阶段,经过训练的神经网络被用于对新的未见数据进行预测或分类。在推理阶段,神经网络的参数保持不变,不再进行参数调整。推理阶段的目标是利用训练好的神经网络模型对输入数据进行预测,并生成输出结果。推理阶段通常只包括前向传播计算,不涉及反向传播或参数更新。

无论是训练还是推理阶段都需要执行大量的矩阵乘计算。训练阶段中,矩阵乘法通常用于计算前向传播(输入数据与权重矩阵相乘,生成输出结果)和反向传播中的梯度传播(梯度与权重矩阵的转置相乘,计算参数的梯度)。在推理阶段中,矩阵乘法用于计算输入数据与训练好的权重矩阵之间的乘积,从而生成预测结果,该过程与训练阶段的前向传播过程类似。

在 AI 框架的开发流程中,首先由算法工程师定义神经网络,然后使用 AI 框架(如 PyTorch、MindSpore、PaddlePaddle 等框架)编写对应的程序;AI 框架自动构建正向计算图,根据自动微分机制构建反向计算图;最后将计算图转变成算子的执行序列,算子最终会执行在底层 AI 芯片上。

AI 框架的开发流程

硬件模型

为了通过 AI 框架实现神经网络模型中大量的矩阵乘等计算,如何基于不同的硬件并行处理架构(如 SIMD、SIMT)来实现呢?AI 系统需要关心和解决该问题吗?SIMD 是否只对底层硬件设计有约束?

为了解决上面的问题,因此有了硬件执行模型编程模型两个概念。

针对 AI 框架中具体的数学计算业界一般称为算子,其在 AI 芯片等硬件上提供了具体的 Kernel 实现,需要根据硬件执行模型(Execution Model)来确定编程模型(Programming Model)。程序员只关心编程模型,如何编写具体的算子,而硬件关心的是具体的指令执行。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/ 或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
5天前
|
人工智能 前端开发 小程序
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
AigcPanel 是一款开源的 AI 虚拟数字人系统,支持视频合成、声音克隆等功能,适用于影视制作、虚拟主播、教育培训等多种场景。
32 12
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
|
2天前
|
存储 人工智能 开发框架
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
Eliza 是一个开源的多代理模拟框架,支持多平台连接、多模型集成,能够快速构建智能、高效的AI系统。
31 8
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
|
7天前
|
人工智能 自然语言处理 测试技术
DeepSeek V3:DeepSeek 开源的最新多模态 AI 模型,编程能力超越Claude,生成速度提升至 60 TPS
DeepSeek V3 是深度求索公司开源的最新 AI 模型,采用混合专家架构,具备强大的编程和多语言处理能力,性能超越多个竞争对手。
159 4
DeepSeek V3:DeepSeek 开源的最新多模态 AI 模型,编程能力超越Claude,生成速度提升至 60 TPS
|
1天前
|
机器学习/深度学习 人工智能 监控
AI在交通管理系统中的应用
AI在交通管理系统中的应用
31 23
|
3天前
|
人工智能 自然语言处理 API
大模型编程(3)让 AI 帮我调接口
这是大模型编程系列第三篇,分享学习某云大模型工程师ACA认证免费课程的笔记。本文通过订机票和查天气的例子,介绍了如何利用大模型API实现函数调用,解决实际业务需求。课程内容详实,推荐感兴趣的朋友点击底部链接查看原文,完全免费。通过这种方式,AI可以主动调用接口并返回结果,极大简化了开发流程。欢迎在评论区交流实现思路。
30 1
|
9天前
|
机器学习/深度学习 传感器 人工智能
开源AI视频监控系统在监狱安全中的应用——实时情绪与行为分析、暴力预警技术详解
针对监狱环境中囚犯情绪波动和复杂人际互动带来的监控挑战,传统CCTV系统难以有效预警暴力事件。AI视频监控系统基于深度学习与计算机视觉技术,实现对行为、情绪的实时分析,尤其在低光环境下表现优异。该系统通过多设备协同、数据同步及自适应训练,确保高精度识别(95%以上)、快速响应(<5秒),并具备24小时不间断运行能力,极大提升了监狱安全管理的效率与准确性。
|
2天前
|
人工智能 运维 API
PAI企业级能力升级:应用系统构建、高效资源管理、AI治理
PAI平台针对企业用户在AI应用中的复杂需求,提供了全面的企业级能力。涵盖权限管理、资源分配、任务调度与资产管理等模块,确保高效利用AI资源。通过API和SDK支持定制化开发,满足不同企业的特殊需求。典型案例中,某顶尖高校基于PAI构建了融合AI与HPC的科研计算平台,实现了作业、运营及运维三大中心的高效管理,成功服务于校内外多个场景。
|
存储 算法 AI芯片
地平线谭洪贺:AI芯片怎么降功耗?从ISSCC2017说起
先来一张slide镇镇场,tutorial上Verhelst总结了近几年VLSI和ISSCC会议上发表的一些结果。其中,灰色的图标应该都是ISSCC2017以前的结果。这张图体现了性能、错误率、能效三方面的trade off。
1905 0
|
8天前
|
机器学习/深度学习 人工智能 自动驾驶
企业内训|AI大模型在汽车行业的前沿应用研修-某汽车集团
本课程是TsingtaoAI为某汽车集团高级项目经理设计研发,课程全面系统地解析AI的发展历程、技术基础及其在汽车行业的深度应用。通过深入浅出的理论讲解、丰富的行业案例分析以及实战项目训练,学员将全面掌握机器学习、深度学习、NLP与CV等核心技术,了解自动驾驶、智能制造、车联网与智能营销等关键应用场景,洞悉AI技术对企业战略布局的深远影响。
138 97