一、自适应弹性加速是提升芯片能效比的有力手段

自适应弹性加速技术是现代芯片设计中提升能效比的关键路径之一。它摒弃了传统芯片在设计时采用的静态、固化的资源分配与功能设定模式,通过引入动态调整机制,使得芯片能够根据实时的应用需求和负载变化,智能地调配其计算资源、功耗模式和硬件功能。这种“按需服务”的设计哲学,不仅极大地提升了资源的利用效率,也显著降低了不必要的能量消耗,从而在整体上实现了性能与功耗的最佳平衡。以下将从资源、功耗和功能三个层面,结合实际应用场景,深入分析自适应弹性加速的优势。

  1. 资源层面:动态激活与高效共享

在资源层面,自适应弹性的核心在于动态的资源管理与高效的硬件共享。其最具代表性的实现方式就是异构计算(Heterogeneous Computing),即在一颗芯片上集成不同类型的处理器核心,以应对不同性质的工作负载。

这一理念的典范是ARM公司的big.LITTLE技术(现已演进为DynamIQ),它被广泛应用于全球几乎所有的智能手机SoC中,例如高通的骁龙(Snapdragon)系列和联发科的天玑(Dimensity)系列。图1为所有弹性的设计架构的核心DynamIQ Shared Unit(DSU)。DSU构建了CPU、L3 cache、Snoop Filter、外围设备总线buses、power management features之间异步通信的桥梁,同时也起到了节省功耗和时间的作用。这些芯片内部集成了用于处理高强度任务的大核(Performance Cores)和多个用于处理轻量级任务的小核(Efficiency Cores)。操作系统能够智能地将大型游戏等高负载任务调度到大核,而将消息接收等后台活动放在小核上运行,甚至在待机时完全关闭大核,从而极大延长电池续航。这一成功模式也延伸到了PC领域,英特尔(Intel)的酷睿(Core)处理器全面采纳了类似的性能混合架构,并辅以硬件线程调度器(Intel Thread Director)技术,向Windows 11等操作系统提供精准的调度建议,确保不同类型的任务总能在最合适的P-core(性能核)或E-core(能效核)上执行,实现了能效与性能的优化。

图1 DSU架构示意图[1]

  1. 功耗层面:精细化电源管理

功耗是制约芯片性能发挥的核心瓶颈。自适应弹性技术通过与PMIC(电源管理集成电路)的协同设计,实现了对芯片功耗的毫秒级、毫瓦级精细控制。

苹果的M系列芯片(Apple Silicon) 是展现这一优势的极致案例。得益于其强大的垂直整合能力,苹果自主设计了从处理器核心到PMIC乃至macOS操作系统的所有关键环节。这使得其PMIC能为芯片上成百上千个独立的电压域提供极其精准和迅速的动态电压与频率调整(DVFS)。当用户仅浏览网页时,核心可以低频运行;一旦开始视频剪辑,相关单元的电压和频率会瞬间拉满以保证性能。这种软硬件的无缝配合是其实现业界领先能效比的关键。同样,在其他高端移动SoC中,PMIC也将CPU、GPU、NPU等众多功能单元划分为独立电源域,在不使用时可通过电源门控(Power Gating)技术彻底切断供电,杜绝静态功耗,确保每一毫瓦电量都用在刀刃上。以M1 Pro/M1 Max芯片为例,如图2所示,M1 Pro和M1 Max内部集成多达10核中央处理器,同等功耗水平下的运行速度比最新款的8核PC笔记本电脑芯片快达1.7倍,达到其峰值水平性能所需功耗却少了70%。

图2 M1 Pro/M1 Max及PC笔记本电脑的功耗、性能比较[2]

  1. 功能层面:多模态与可重构加速

在功能层面,自适应弹性计算通过硬件的可重构性,打破了专用集成电路(ASIC)功能固化与通用处理器(CPU)效率低下的两难困境,赋予了芯片“随需而变”的能力。

现场可编程门阵列(FPGA)是这一理念的经典代表,以AMD(原Xilinx)和Intel的产品为首,被大规模部署于云数据中心。例如,微软在其全球数据中心利用FPGA构建了“Catapult”加速平台,可根据业务需求,将FPGA重构为网络处理器以分担CPU负载,或重构为AI加速器执行必应搜索模型,通过软件推送即可完成芯片升级。面向未来,为应对AI算法的快速迭代,SambaNova Systems等公司研发了可重构数据流单元(RDU)。其编译器能将不同神经网络模型的数据流图直接映射到硬件上,通过软件配置“塑造”出最适合当前算法的硬件结构。这使得同一块芯片能高效处理从CNN到Transformer等各类模型,真正实现了“以软件定义硬件”,极大地扩展了芯片的通用性和生命周期。国内知存公司具有自研的用于神经网络映射的编译软件栈WITIN_MAPPER,如图3所示,可以将量化后的神经⽹络模型映射到WTM2101 MPU加速器上,是⼀种包括RISCV和MPU的完整解决⽅案,可以完成多种算子和图级别的转换和优化,将预训练权重编排到存算阵列中,并针对网络结构和算子给出存算优化方案,是自适应弹性计算的一个典型例子。

图3 编译软件栈WITIN_MAPPER架构图[3]

二、自适应弹性计算是优化浮点存内计算的方法论

为应对现代AI模型日益增长的复杂性与多样性,浮点存内计算技术的优化进入了新的阶段,其核心方法论便是自适应弹性计算。该方法论旨在打破传统计算硬件“一招鲜吃遍天”的僵化设计,赋予存算单元根据算法需求动态调整自身计算特性的能力,从而在各种应用场景下实现能效与性能的最优化。在本文中,我们将这一理念通过两个关键维度展开:自适应精度和可重构功能。

1.自适应精度

深度神经网络在推理和训练过程中,不同网络层对计算精度的要求存在显著差异。例如,一些层可能需要高精度的浮点(Floating-Point, FP) 运算来保留关键特征信息,而许多其他层的计算则可以在较低精度的定点或整数(Integer, INT)格式下完成,且对模型整体准确率的影响微乎其微。传统的固定精度硬件设计无法适应这种多样性,往往导致功耗和面积的冗余。自适应精度技术通过使CIM宏单元支持多种数据格式(如FP32、FP16、BF16、INT8、INT4等),并允许在运行时动态切换,实现了计算资源与算法需求的高度匹配,显著提升了芯片的能效与吞吐率。

目前,学术界与工业界提出了许多方式来实现浮点存内计算的自适应精度方案。台积电Khwa和Wu等人提出一种高精度的整数/浮点数双模存算宏[4],通过消除指数计算中的减法、重用INT模式中的对齐电路、指数加和与加法器树融合等方案,设计双模可复用的存内计算单元,使存算宏可在同时支持INT8、BF16计算的同时下保持高硬件资源复用。

图4 ISSCC 24 34.2提出的双模计算宏

清华大学Yue和Xiang等人提出一种支撑复合AI(Compound AI)应用的存算宏,支持INT8、FP8、FP16精度计算[5]。通过提出并行尾数乘积和指数和的异质CIM宏,并在计算过程中设计混合精度计算模式,并通过稀疏感知进行计算加速,与先前的工作相比性能提升2.7倍以上,并且在能效与面效上达到了新的突破。

图5 ISSCC 25 14.4提出的稀疏感知存算宏

2.可重构计算

如果说自适应精度是从数据层面赋予了存算单元灵活性,那么可重构功能则是从硬件架构的维度,通过重塑计算模式与数据路径,将存内计算的“弹性”提升至全新高度。现代AI模型的计算图谱远比单纯的矩阵乘法复杂,其中交织着大量的非线性激活、归一化、池化乃至更复杂的逐元素运算。在传统设计中,这些非MAC(乘加)操作往往需要中断存内计算流程,将数据在存储阵列与外部独立的数字处理单元之间来回搬运,这构成了显著的性能与功耗瓶颈。

可重构功能旨在打破这种化的“存储-计算”分离模式,其核心思想是使CIM宏单元的物理结构能够根据当前计算任务的需求,动态地改变其功能与内部数据流。这种重构体现在多个层次:

1)算子可重构: 使同一套硬件电路既能执行高并行的乘加运算,也能被配置执行非线性函数等其他关键算子。

2)计算模式与路径可重构:允许CIM宏根据不同类型的神经网络层(如卷积层、全连接层)或不同的数据复用需求,动态切换其内部的数据分发、累加路径与工作模式(如权重固定、输出固定数据流),以实现最优的计算效率。

普林斯顿大学N. Verma团队于2021年在ISSCC上发表的一项研究设计了一种可扩展、可重构的数字存算核阵列[6]。该存内计算芯片在架构设计时引入2×2核心阵列模块(CIMU),通过控制模块间的数据流通路、改变输入输出扩展等方法动态调整存算核的计算模式,以支持神经网络模型内不同层的空间映射。清华大学尹首一教授团队于2022年在ISSCC上发表的一项研究提出了一种可兼顾能效比、精度和灵活性的可重构数字存内计算芯片新范式[7]。如下图所示,该存内计算芯片在架构设计时引入不同层次的可重构计算,算力高达29.2TFLOPS/W(BF16浮点精度下)和26.5TOPS/W(INT8精度下)。

图6 ISSCC 21 15.1提出的可重构计算宏

图7 ISSCC 22 15.5提出的可重构计算宏

三、自适应弹性计算和浮点存算结合的优势与风险

总的来说,自适应弹性加速与浮点存内计算的结合,旨在将存内计算强大的并行处理能力与弹性架构的智能适应性融为一体,为芯片的能效比、吞吐量、实用性带来显著提升,同时延长芯片的生命周期,从而设计出兼具极致能效、强大性能与广泛通用性的AI芯片。

首先,存内计算从物理层面极大减少了数据在存储与计算单元间“往返跑”的巨大能耗,构筑了高能效的基石,自适应弹性架构则扮演了精明的管理者的角色,进一步优化能效表现。其次,存内计算天然具备大规模并行计算的能力,理论峰值性能极高。但不代表其处理复杂多变任务时拥有优秀的有效性能,自适应弹性正是提升有效性能的关键。此外,AI领域的发展一日千里,算法的迭代速度远超硬件的更新周期。正如前文所述,可重构功能使得当新的神经网络算子或模型架构出现时,无需重新设计芯片,只通过更新编译器和固件,就能重新配置硬件的数据通路和计算模式,高效地适应新算法。这赋予了芯片未来适应性,使其免于“一代算法,一代芯片”的窘境。

然而,为了实现这一美好愿景,当前在芯片设计和制造上,还面临诸多挑战。

存内计算高能效的前提是数据尽可能地存储在片上存储单元中,这使得存内计算芯片相比于传统芯片,拥有更大的片上存储容量。在此基础上,浮点计算单元、可重构单元和弹性控制相关的电路会进一步增加芯片面积,提升流片成本,并且片上逻辑的复杂化也会影响流片成功率。此外,自适应弹性计算为芯片提供了高灵活性,为了充分利用它,编译器需要建立一个能精确预测所有弹性状态下(不同精度、不同数据流、不同资源配置)性能和功耗的模型,对“如何进行最优的数据映射、指令调度和精度选择”等问题进行决策,这是一个巨大的组合优化问题。

因此,我们应在实现高精度存内计算的路上努力拥抱自适应弹性计算等先进设计理念,同时积极应对其带来的风险。

参考资料

  1. big.LITTLE&DynamIQ-阿里云开发者社区
  2. M1 Pro 与 M1 Max 隆重登场:Apple 迄今打造的最强芯片 - Apple (中国大陆)
  3. 知存官网
  4. Khwa, Win-San, et al. "34.2 a 16nm 96Kb integer/floating-point dual-mode-gain-cell-computing-in-memory macro achieving 73.3-163.3 TOPS/W and 33.2-91.2 TFLOPS/W for AI-edge devices." 2024 IEEE International Solid-State Circuits Conference (ISSCC). Vol. 67. IEEE, 2024.
  5. Yue, Zhiheng, et al. "14.4 A 51.6 TFLOPs/W Full-Datapath CIM Macro Approaching Sparsity Bound and< 2-30 Loss for Compound AI." 2025 IEEE International Solid-State Circuits Conference (ISSCC). Vol. 68. IEEE, 2025.
  6. Jia, Hongyang, et al. "15.1 a programmable neural-network inference accelerator based on scalable in-memory computing." 2021 IEEE International Solid-State Circuits Conference (ISSCC). Vol. 64. IEEE, 2021.
  7. Tu, Fengbin, et al. "A 28nm 29.2 TFLOPS/W BF16 and 36.5 TOPS/W INT8 reconfigurable digital CIM processor with unified FP/INT pipeline and bitwise in-memory booth multiplication for cloud deep learning acceleration." 2022 IEEE International Solid-State Circuits Conference (ISSCC). Vol. 65. IEEE, 2022.

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot测试陷阱:失败测试为何“传染”其他用例?

一个测试失败&#xff0c;为何“传染”其他测试&#xff1f;——Spring Boot 单元测试独立性与泛型陷阱实战解析 &#x1f6a9; 问题背景 在日常开发中&#xff0c;我们常会遇到这样的场景&#xff1a; 正在开发新功能 A&#xff0c;写了一个 testFeatureA() 测试方法&#xff…

Web开发中的CGI:通用网关接口详解

一、CGI的设计意图&#xff1a;解决Web的"静态"困境 在CGI出现之前&#xff0c;Web服务器只能做一件事&#xff1a;返回预先写好的静态文件&#xff08;HTML、图片等&#xff09;。每个用户看到的内容都是一模一样的。 设计意图很简单但却革命性&#xff1a; 让Web服…

在 SSMS 中查找和打开已保存的查询文件

在 SSMS 中查找和打开已保存的查询文件 在 SQL Server Management Studio (SSMS) 中&#xff0c;您可以轻松地查找并打开已保存的查询文件&#xff08;通常以 .sql 扩展名保存&#xff09;。SSMS 提供了直观的界面支持直接打开这些文件&#xff0c;无需额外工具。以下是详细步骤…

Protues使用说明及Protues与Keil联合仿真实现点亮小灯和流水灯

目录 1Protues介绍及新建工程 1.1进入软件 1.2文件创建 1.3默认选项 1.5设计面板 1.6添加元器件 1.7终端模式 1.8激励源模式 1.9探针模式 1.10仪表 1.11二维直线 1.12字符 2 Protues电路原理图仿真 2.1 220V交流电转5V直流电稳压电路仿真原理图 2.1.1 仿真原理图…

Linux PCI 子系统:工作原理与实现机制深度分析

Linux PCI 子系统&#xff1a;工作原理与实现机制深度分析 1. Linux PCI 子系统基础概念 1.1 PCI/PCIe 基础概念回顾 总线拓扑&#xff1a; PCI/PCIe 系统是一个树形结构。CPU 连接到 Root Complex (RC)&#xff0c;RC 连接至 PCIe 交换机 (Switch) 和 PCIe 端点设备 (Endpoint…

RabbitMQ 全面指南:架构解析与案例实战

目录一、RabbitMQ 简介1.1 什么是 RabbitMQ1.2 RabbitMQ 的核心组件1.3 RabbitMQ 的应用场景二、环境搭建2.1 安装 RabbitMQ2.2 安装 Erlang2.3 配置 RabbitMQ三、RabbitMQ 核心概念与工作原理3.1 消息模型3.2 交换机类型3.3 队列特性3.4 消息确认机制四、Spring Boot 集成 Rab…

6.2 el-menu

一、 <el-menu>: 菜单组件&#xff0c;定义了侧边栏内部的具体导航项、层级结构和交互行为。<el-container><!-- 侧边栏容器 --><el-aside width"200px"><!-- 菜单内容 --><el-menu default-active"1" class"el-men…

Windows 笔记本实现仅关屏仍工作:一种更便捷的 “伪熄屏” 方案

在使用 Windows 笔记本作为临时服务器或需要后台持续运行程序时&#xff0c;我们常面临一个需求&#xff1a;关闭屏幕以节省电量或减少光污染&#xff0c;同时保持系统正常工作。然而&#xff0c;网络上流传的诸多方法往往存在局限&#xff0c;要么无法兼顾 “熄屏” 与 “工作…

Linux应急响应一般思路(二)

进程排查进程(Process)是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础无论是在Windows系统还是Linux系统中&#xff0c;主机在感染恶意程序后&#xff0c;恶意程序都会启动相应的进程&#x…

基于 SkyWalking + Elasticsearch + Grafana 的可落地调用链监控方案

这个方案成熟稳定、社区活跃、部署相对简单,非常适合中小型团队作为第一代调用链系统落地。 一、核心组件选型与角色 组件 版本建议 角色 优点 Apache SkyWalking v9.x+ 核心平台 (采集、分析、存储、UI) 国产优秀,Java Agent无侵入接入,功能全面,性能损耗低 Elasticsearc…

APP逆向——某站device-id参数

免责声明本博客所涉及的 爬虫技术、逆向分析方法 仅用于 学习、研究和技术交流。文中所有示例代码、工具和方法&#xff0c;均不得用于以下行为&#xff1a;未经授权的数据采集侵犯他人知识产权干扰或破坏正常业务系统任何违反国家法律法规的行为因读者将本教程内容用于 非法用…

C/C++数据结构之循环链表

概述循环链表本质上也是一个单向或双向链表&#xff0c;但其最后一个节点的指针并不指向NULL&#xff0c;而是指向链表的第一个节点&#xff0c;从而形成一个闭合的环。这种结构使得在遍历链表时&#xff0c;可以从任意一个节点开始&#xff0c;并最终回到起始点。音乐播放软件…

Mongodb的教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、mongodb是什么&#xff1f; 二、mongodb的下载与安装教程 三、mongodb的常见操作 总结 前言 在当今数据驱动的世界中&#xff0c;数据库技术是构建高效…

MySQL视图有什么用?一文读懂虚拟表的六大核心价值

引言 在数据库开发中&#xff0c;你是否遇到过这样的困境&#xff1a;业务人员需要查看复杂关联数据却难以理解多表JOIN&#xff0c;或需要限制某些用户只能访问特定字段&#xff1f;MySQL视图正是为此设计的"数据透视镜"。本文将通过官方定义、典型场景和最佳实践&a…

ubuntu24.04 frps服务器端自动启动设置【2025-08-20】

Ubuntu 24.04采用systemd作为默认的init系统&#xff0c;我们可以通过创建systemd服务单元文件来实现开机自启动。以下是具体实施步骤&#xff1a;创建服务文件使用文本编辑器创建服务配置文件&#xff1a;sudo nano /etc/systemd/system/frps.service编写服务配置内容在文件中…

数据结构与算法-字符串、数组和广义表(String Array List)

3 字符串、数组和广义表&#xff08;String Array List&#xff09; 3.1 字符串&#xff08;String&#xff09; 3.1.1 串的顺序存储 a. 定长顺序&#xff1a; #define MAXLEN 255 // 串的定长顺序存储结构 typedef struct {char ch[MAXLEN 1]; // 字符串数据&#xff0c;…

【网络运维】Shell 脚本编程:if 条件语句

Shell 脚本编程&#xff1a;if 条件语句 if 条件语句概述 if 条件语句是 Linux Shell 脚本编程中最基础且使用频率最高的控制结构之一&#xff0c;其语义类似于自然语言中的“如果…那么…”。熟练掌握 if 语句的用法&#xff0c;是成为一名合格运维工程师的基本要求。 if 语句…

浮点型的位结构和表示的值

位结构float 各部分的含义 符号位&#xff1a; 为 0 表示正数&#xff0c;为 1 表示负数。 指数部分&#xff1a; 指数部分是一个移码。指数部分有 8 位&#xff0c;首先当成无符号整型&#xff0c;则值域是 [0, 255] .因为是移码&#xff0c;所以 移码值 无符号整型值 - 127 …

39_基于深度学习的行人摔倒检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)

目录 项目介绍&#x1f3af; 功能展示&#x1f31f; 一、环境安装&#x1f386; 环境配置说明&#x1f4d8; 安装指南说明&#x1f3a5; 环境安装教学视频 &#x1f31f; 二、数据集介绍&#x1f31f; 三、系统环境&#xff08;框架/依赖库&#xff09;说明&#x1f9f1; 系统环…

【系统分析师】高分论文:论企业数据治理

【摘要】 2022年3月&#xff0c;我作为系统分析师及IT 负责人&#xff0c;参加了我司的企业级数据平台建设项目&#xff0c;该项目作为我司在企业数字化转型过程中重要的里程碑&#xff0c;在我司数字化运营中扮演着关键的角色。该项目主要包含企业级数据仓库&#xff0c;数据治…