【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世界的无限奥秘~

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
29天前
|
人工智能 自然语言处理 搜索推荐
AI Compass前沿速览:Qoder Agentic编程、vivo Vision头显、AIRI桌面伴侣、RM-Gallery奖励模型平台
AI Compass前沿速览:Qoder Agentic编程、vivo Vision头显、AIRI桌面伴侣、RM-Gallery奖励模型平台
AI Compass前沿速览:Qoder Agentic编程、vivo Vision头显、AIRI桌面伴侣、RM-Gallery奖励模型平台
|
1月前
|
存储 人工智能 NoSQL
万字解码 Agentic AI 时代的记忆系统演进之路
本文深入探讨了在 Agentic AI 时代,记忆(Memory) 作为智能体核心能力的定义、构建与技术演进。
万字解码 Agentic AI 时代的记忆系统演进之路
|
27天前
|
人工智能 算法 前端开发
超越Prompt Engineering:揭秘高并发AI系统的上下文工程实践
本文系统解析AI工程范式从Prompt Engineering到Context Engineering的演进路径,深入探讨RAG、向量数据库、上下文压缩等关键技术,并结合LangGraph与智能体系统架构,助力开发者构建高可靠AI应用。
182 1
|
1月前
|
人工智能 监控 搜索推荐
使用LangGraph从零构建多智能体AI系统:实现智能协作的完整指南
本文将通过构建AI研究助手的完整案例,展示如何使用LangGraph框架实现这种架构转变,从理论基础到具体实现,帮助你掌握下一代AI系统的构建方法。
434 0
使用LangGraph从零构建多智能体AI系统:实现智能协作的完整指南
|
1月前
|
人工智能 Cloud Native Java
书本大纲:从芯片、分布式到云计算AI时代
本文深入探讨并发编程、JVM原理、RPC框架、高并发系统、分布式架构及云原生技术,涵盖内存模型、同步机制、垃圾回收、网络协议、存储优化、弹性伸缩等核心议题,揭示多线程运行逻辑与高并发实现路径,助你掌握现代软件底层原理与工程实践。
88 7
|
1月前
|
数据采集 人工智能 算法
面向AI应用开发的开源能源管理系统
人工智能在能源管理中发挥关键作用,通过优化资源分配、智能消费管理、精准监测预测以及改善客户体验等多方面推动行业转型。MyEMS作为重要工具,基于Python语言集成AI技术,实现数据采集处理、负荷预测、能源优化控制、故障诊断预警及可视化展示等功能,提供全面智能化解决方案,助力可持续发展与能源效率提升。
51 5
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
论文解读:单个标点符号如何欺骗LLM,攻破AI评判系统
可验证奖励强化学习(RLVR)通过规则函数或LLM评判器提供奖励信号,训练策略模型生成与参考答案一致的响应。研究发现,某些无意义模式(如标点或推理引导语)可误导评判器产生误判,称为“万能钥匙”攻击。为此,提出Master-RM模型,结合对抗训练有效抵御此类攻击,显著降低误报率,同时保持高性能与通用性。
64 0
论文解读:单个标点符号如何欺骗LLM,攻破AI评判系统
|
人工智能 缓存 NoSQL
【深度】企业 AI 落地实践(四):如何构建端到端的 AI 应用观测体系
本文探讨了AI应用在实际落地过程中面临的三大核心问题:如何高效使用AI模型、控制成本以及保障输出质量。文章详细分析了AI应用的典型架构,并提出通过全栈可观测体系实现从用户端到模型推理层的端到端监控与诊断。结合阿里云的实践经验,介绍了基于OpenTelemetry的Trace全链路追踪、关键性能指标(如TTFT、TPOT)采集、模型质量评估与MCP工具调用观测等技术手段,帮助企业在生产环境中实现AI应用的稳定、高效运行。同时,针对Dify等低代码平台的应用部署与优化提供了具体建议,助力企业构建可扩展、可观测的AI应用体系。

热门文章

最新文章