来源:半导体行业观察
2025-06-05 09:45:52
(原标题:用RISC-V打造GPU?太行了)
如果您希望可以时常见面,欢迎标星收藏哦~
图形处理单元 (GPU) 擅长并行处理,但由于其功耗和面积限制,以及缺乏合适的编程框架,在超低功耗边缘设备 (TinyAI) 中仍未得到广泛应用。
为了应对这些挑战,本研究引入了嵌入式 GPU (e-GPU),这是一个专为 TinyAI 设备设计的开源且可配置的 RISC-V GPU 平台。其广泛的可配置性可实现面积和功耗优化,而专用的 Tiny-OpenCL 实现则提供了一个针对资源受限环境的轻量级编程框架。
为了展示其在实际场景中的适应性,我们将 e-GPU 与可扩展异构节能平台 (XHEEP) 集成,为 TinyAI 应用实现了加速处理单元 (APU)。所提出的系统的多个实例,采用不同的 e-GPU 配置,采用台积电 (TSMC) 的 16 nm SVT CMOS 技术实现,工作频率为 300 MHz,电压为 0.8 V。
为了确保符合 TinyAI 的约束条件,我们对它们的面积和漏电特性进行了分析。而为了评估运行时开销和应用级效率,我们采用了两个基准测试:通用矩阵乘法 (GeMM) 和biosignal处理 (TinyBio) 工作负载。GeMM 基准测试用于量化 TinyOpenCL 框架引入的调度开销。
结果表明,对于大于 256 × 256(或等效问题规模)的矩阵,延迟可以忽略不计。然后,我们使用 TinyBio 基准测试来评估基线主机的性能和能耗改进。结果表明,具有 16 个线程的高端 e-GPU 配置可实现高达 15.1 倍的加速,并将能耗降低高达 3.1 倍,同时仅产生 2.5 倍的面积开销,并在 28 mW 的功率预算内运行。
简介
基于机器学习的实时计算需求日益增长,推动了边缘计算的快速发展。通过在本地处理数据而非依赖云服务器,边缘计算可以降低延迟、增强隐私性并提高能源效率,使其成为众多边缘应用的理想解决方案。然而,这些工作负载限制了计算性能、实时响应能力和功耗,因此需要专门的硬件架构。应对这些挑战的一种有效方法是采用异构架构,将主机中央处理器 (CPU) 与特定领域的加速器集成,以平衡效率和性能。
在这些加速器中,图形处理单元 (GPU) 已被证明在利用数据并行性进行机器学习和信号处理任务方面尤为有效。当与主机 CPU 结合使用时,GPU 可形成加速处理单元 (APU),从而实现一个统一的平台,能够高效处理通用任务和计算密集型工作负载。
虽然存在各种 GPU 实现方案,从高性能到嵌入式解决方案,但它们在超低功耗边缘设备(TinyAI)环境下的权衡利弊仍未得到深入研究。这些电池供电的设备在严格的功耗限制下运行,通常在几十毫瓦的范围内,因此需要高效的 GPU 架构。
它们小巧的外形也对面积造成了严格的限制,完整的片上系统 (SoC) 仅占用几平方毫米的面积。此外,由于缺乏文件系统和多线程支持,传统的 GPU 编程框架(例如标准开放计算语言 (OpenCL) 实现)无法使用,因此需要进行自定义优化。
由于上述限制,超低功耗设备通常依赖于专用加速器,例如粗粒度可重构阵列 (CGRA:coarsegrained reconfigurable arrays )、脉动阵列(systolic arrays)以及近内存或内存计算解决方案,而 GPU 在该领域的潜力仍未被充分开发。
本研究通过引入一个开源且可配置的 RISC-V 平台——嵌入式 GPU (e-GPU),探讨了将 GPU 用于 TinyAI 应用的可行性及其利弊权衡。该平台的广泛可配置性使其能够实现面积和功耗优化,以满足该领域的需求。此外,一种定制的微型开放计算语言 (Tiny-OpenCL) 实现克服了上述限制,并提供了专为资源受限设备开发的轻量级编程框架。为了证明所提平台在实际场景中的适应性,我们将 e-GPU 与可扩展异构节能平台 (X-HEEP) 相结合,实现了适用于 TinyAI 工作负载的 APU。
所提出的系统的多个实例,具有不同的 e-GPU 配置,采用台积电 (TSMC) 的 16 nm SVT CMOS 技术实现,工作频率为 300 MHz,电压为 0.8 V。我们分析了它们的面积和漏电特性,以确保其符合 TinyAI 的约束条件。为了评估运行时开销和应用级效率,我们采用了两个基准测试:通用矩阵乘法 (GeMM) 和bio-signal processing (TinyBio) 工作负载。GeMM 基准测试用于量化 Tiny-OpenCL 框架引入的调度开销,而 TinyBio 基准测试用于评估相对于基线主机的性能和能耗改进。
本研究的主要贡献如下:
我们提倡将领域专用 GPU 作为 TinyAI 领域的合适解决方案。
我们提出了 e-GPU ,这是一个专为 TinyAI 工作负载设计的开源、可配置的 RISC-V GPU 平台。
我们分析了该应用领域的编程局限性,并介绍了一个适用于资源受限设备的 Tiny-OpenCL 框架。
我们探讨了将 GPU 用于 TinyAI 应用的可行性及其利弊权衡。
我们发布了一个开源存储库,其中包含完整的 e-GPU1,以便研究人员根据其 TinyAI 领域定制该平台。
本文的其余部分组织如下:第 2 节讨论相关工作。第 3 节总结背景概念。第 4 节介绍 e-GPU 硬件,而第 5 节重点介绍 e-GPU 软件。第 6 节解释了与主机的集成。第 7 节概述了实验设置,第 8 节展示了实验结果。最后,第 9 节总结了全文。
行业最新进展
本节分析了与我们的平台设计选择最相关的商业和学术 GPU 解决方案。
A.
商用 GPU
商用边缘 GPU 市场呈现多元化格局,各种解决方案都在平衡性能和功耗。高通的 Adreno GPU 集成在骁龙 SoC 中,为移动和边缘应用提供高效的计算能力。尤其是 Adreno 600 系列,它广泛用于机器学习推理,并采用了先进的节能机制。同样,嵌入在各种 SoC 中的 ARM Mali GPU 也已发展出功耗优化的架构。MaliG52 和 Mali-G72 系列中的细粒度电源门控等创新技术提高了能效,使其适用于低功耗场景。另一个关键厂商,Imagination Technologies 的 PowerVR GPU,则优先考虑高能效性能,其 Series8XT 在边缘设备中展现了极具竞争力的计算能力。
尽管取得了这些进步,但商用 GPU 并非专为 TinyAI 应用而设计。它们的功耗通常在数百毫瓦到几瓦之间,超出了这些应用的严格要求,这些应用需要数十毫瓦的功率水平。此外,这些 GPU 的专有性阻碍了详细的性能和功耗特性描述,从而限制了它们在研究和节能设计探索中的应用。
B.
学术 GPU
学术 GPU 研究专注于开发适用于各种计算领域的可编程和可配置架构。表一基于以下六个基本特性比较了不同的 GPU 平台:(1) 开源代码,方便快速访问;(2) 开源指令集架构 (ISA),方便自定义扩展;(3) 可配置性,以适应特定应用需求;(4) 可综合的寄存器传输级 (RTL) 代码,用于精确的性能和功耗评估;(5) 可与主机 CPU 集成,用于研究 CPU-GPU 交互;以及 (6) 适用于 TinyAI 应用的超低功耗设计。
学术 GPU 解决方案涵盖从软件模拟器到硬件实现的各种类型。
1) 软件模拟器
GPGPU-Sim模拟基于 CUDA 的 GPU,模拟 NVIDIA Fermi 和 GT200 等架构。gem5-gpu 14 扩展了这一功能,集成了 gem5的 x86 CPU 和内存模型,从而促进了 CPU-GPU 交互的研究。另一个例子是 Multi2Sim 16,它模拟了 AMD Evergreen GPU 系列以及多线程 x86 处理器。
虽然软件模拟器有助于快速探索架构,但它们对 TinyAI 研究而言存在重大局限性,包括缺乏可综合的 RTL 代码(这阻碍了准确的功耗和能耗分析);缺乏开源 ISA(限制了扩展机会);以及它们主要侧重于高性能计算,因此不适用于超低功耗边缘应用。
(2)硬件实现
一些学术界的 GPU 项目提供了可综合的 RTL 代码,从而深入了解功耗和性能指标。
Skybox 是一个基于 RISC-V 的 GPU 框架,专为图形研究而设计,并支持 Vulkan API。然而,它依赖于与主机 PC 的 PCIe 通信,因此不适合集成到通常用于超低功耗应用的 SoC 中。
ZJX-RGPU将 RISC-V CPU 和片段引擎集成到一个 12.25 mm² 的芯片中,工作频率为 200 MHz,功耗约为 20 mW,但其闭源特性和有限的文档限制了其在架构探索中的应用。
Vortex 作为一款支持 OpenCL 和 OpenGL 的可配置 RISC-V GPU,代表了一项重大进步。
该芯片采用 15 nm 教育单元库,由单个计算单元综合而成,在 300 MHz 频率下功耗为 46.8 mW。
然而,如果不进行大量修改,其硬件无法原生综合,而且它面向 PC 级主机环境。这些特性阻碍了它集成到 SoC 中,而轻量级互连和紧密的软硬件耦合对于超低功耗应用至关重要。
METASAT 平台将 Vortex 适配至安全关键型 RISC-V SoC,并将其与 NOEL-V 处理器和 SPARROW 单指令多数据 (SIMD) 加速器集成。该平台设计为在 RTEMS 和 XtratuM 虚拟机管理程序下运行,消除了对 OpenCL 的依赖,并支持在分区实时环境中使用 GPU。然而,其 GPU 继承了 Vortex 的局限性,仅作为将 GPU 集成到未来空间系统的概念验证,而非 TinyAI 计算的解决方案,因为 TinyAI 计算的能源效率是其首要关注点。
Virgo 基于 Vortex 构建,引入了具有集群级矩阵单元的分解式 GPU 架构,与核心耦合设计相比,提高了数据重用率并降低了能耗。虽然 Virgo 实现了高能效且完全开源,但它面向大规模 GEMM 运算和数据中心级深度学习工作负载,这限制了其在问题规模较小的 TinyAI 场景中的灵活性。此外,Virgo 依赖于相对复杂的内存层次结构和跨计算单元的复杂同步机制,这可能难以适应面积和功耗受限的极简 SoC 设计。
Ventus 基于 RISC-V 矢量扩展 (RVV) 构建,并引入了高性能 GPGPU 架构,其中包含用于单指令多线程 (SIMT) 执行、预测分支、同步和张量运算的自定义指令。它可扩展至 16 个计算单元和 256 个 Warp,与 Vortex 相比,CPI 提升高达 87.4%,指令数减少 83.9%。然而,Ventus 专为大规模 FPGA 部署而设计,尚未集成到 SoC 中,其目标平台是 PC 级主机。虽然综合结果报告使用了台积电 12 纳米工艺库进行频率和面积评估,但并未提供低功耗或流片优化。因此,Ventus 的目标客户是高吞吐量应用和架构研究,而非 TinyAI 场景。
背景
本节根据标准 OpenCL 定义总结了所需的术语。这些术语根据平台、执行和运行时模型进行组织。平台模型定义了主机系统与负责执行内核的计算设备之间的关系。执行模型描述了内核的启动方式,以及如何在可用硬件上组织和执行工作项和工作组。最后,运行时模型指定了内核在硬件级别的执行行为,包括线程调度、同步和执行资源的利用率。
A.
平台模型
在平台模型中,主机是指运行 OpenCL 主机代码的主系统,通常为 CPU,负责管理和调度跨计算设备的内核执行。设备是指执行 OpenCL 内核的加速器,例如 GPU。每个设备由一个或多个计算单元组成,这些计算单元是负责执行工作组的架构模块。计算单元内包含多个处理单元,它们是最低级别的执行资源,执行工作项的算术和逻辑运算。
B.
执行模型
执行模型控制计算的组织和启动方式。主机代码从主机端协调执行过程,向设备发出命令并管理数据传输。内核是在计算设备上运行的 OpenCL 函数,由多个工作项并行执行。每个工作项对应一个内核执行实例,并对输入数据的不同部分进行操作,该部分由唯一的全局 ID 标识。工作项被分组到工作组中,并分配给计算单元。组内的工作项可以通过本地内存共享数据,并使用屏障相互同步。全局大小指定要启动的工作项总数,而本地大小则决定每个工作组中有多少个工作项。
C.
运行时模型
运行时模型描述了内核在硬件层面的执行方式。线程表示在处理单元上运行的内核实例,维护其自己的私有寄存器集。线程通常被分组到 Warp 中,Warp 是同步执行的线程集,这意味着它们共享相同的程序计数器并同时执行相同的指令。根据硬件功能,多个 Warp 可以在流水线中同时处于活动状态,从而实现细粒度的并行性和对执行资源的高效利用。
e-GPU 硬件
本节介绍 e-GPU 架构及其软硬件协同设计决策,旨在最大限度地减少面积、功耗和能耗,同时使平台适应 TinyAI 领域。图 1 展示了拟议 e-GPU 的架构,表 II 列出了可通过 SystemVerilog 参数访问的可配置旋钮。
A.
计算单元
计算单元基于 Vortex 内核。它采用乱序 RISC-V 架构,并具有内部可配置选项,允许调整并行线程和并发 Warp。调整线程数量可以通过改变处理单元的数量来修改数据并行性,而配置 Warp 数量则可以通过细粒度多线程并发执行多个 Warp,从而提高资源和内存带宽利用率。
由于功耗和面积限制,我们移除了浮点单元,优先执行整数和定点运算,因为该平台的目标是基于整数的 TinyAI 模型。此外,我们还扩展了 RISC-V ISA,添加了自定义的 SLEEP REQ 指令,以提高能效。在内核处理结束时,该指令会等待所有先前获取的指令执行完毕,然后向 GPU 控制器生成事件,以指示操作完成。此机制使 GPU 控制器能够在计算单元不再使用时,通过时钟或电源门控(如果可用)将其关闭,从而提高整体能效。在设计时,可以根据面积、功耗和处理需求进行配置。
B.
内存层级
内存层级采用统一架构,其中主机主内存和 e-GPU 全局内存映射到主机上的同一物理内存。这种共享内存模型无需在不同的内存区域之间进行显式数据传输,从而增强了可编程性。特别是,在主机主内存和 e-GPU 全局内存之间移动输入和输出数据时,不再需要复杂的显式双缓冲方案。
每个计算单元都包含一个私有指令缓存,以减少内存访问延迟并提高性能,而跨计算单元使用共享数据缓存。
缓存逻辑基于 Vortex 缓存,并采用直接映射、多存储体架构和行交错寻址方案。即使前一个 Warp 因缓存未命中而停滞,对未完成请求的支持也允许后续 Warp 发出新的缓存访问。在设计时,可以根据目标应用程序的具体需求调整缓存大小、存储体数量和行大小。我们集成了专用的内存包装器,以便为每个指令库无缝实例化生产级 SRAM 宏。
每个计算单元都连接到一个私有指令缓存。当多个计算单元执行同一个内核时,这种设计可以提高计算单元数量增加时的可扩展性,并避免共享指令缓存可能产生的冲突。事实上,无法保证每个计算单元在每个时钟周期都获取相同的指令。因此,拥有独立的私有指令缓存有助于减少未命中并减轻性能下降。此外,当不同的计算单元执行不同的内核时,独立的缓存可以提高局部性。
在数据方面,所有计算单元共享一个公共数据缓存。这种设计在主机较慢的主存储器和计算单元较快的寄存器文件之间提供了一个中间存储层,从而提高了数据访问效率。此外,使用共享缓存可以在计算单元之间直接共享数据,而无需与主机主存储器进行额外的数据传输。
输入数据在第一个内核开始时从主机加载到共享数据缓存中,并在中间内核的整个执行过程中保持可用状态(假设缓存足够大,可以容纳整个工作集)。这种方法通过最大限度地减少数据传输来提高性能,最终提高能效。
最后,我们重新设计了数据缓存接口,以支持所有计算单元并行发出的多线程请求。每个计算单元同时发出多个请求,每个活动线程一个,但会收到一个统一的响应。输入和输出数据会根据请求线程进行选择性屏蔽。这种对多维请求的支持,通过在未发生存储体冲突的情况下实现对共享缓存的并发访问,提高了带宽利用率。
在系统边界,内存接口能够有效地将缓存请求调整到主机内存事务。这些事务的管理分为三个步骤。(1) 发生未命中时,缓存请求整条多字线,然后将其序列化为单独的 32 位事务(transactions)。 (2)缓存协议被转换为OBI 协议,这是一种在边缘系统中广泛采用的低功耗总线协议。(3)仲裁器(arbiter)管理对共享输出端口的访问,确保公平高效的资源分配。
C
控制器
我们设计了一个专用控制器来管理 e-GPU 的操作。一组内存映射的配置寄存器支持诸如重置、启动和停止加速器等操作。此外,该控制器集成了一个电源控制器,该控制器与第四章 A 节中描述的低功耗 RISC-V 扩展协同工作。内核启动后,电源控制器会监控每个计算单元的执行结束事件。一旦收到事件,相应的计算单元就会关闭电源。一旦收到所有事件,表明所有计算单元都已完成执行,控制器就会生成外部中断通知主机 CPU。
e-GPU 软件
本节介绍 Tiny-OpenCL 框架,这是一个轻量级且高度优化的 OpenCL 实现,旨在编译可在 e-GPU 上执行的内核。该框架最大限度地提高了与现有 GPU 软件的兼容性,同时确保了跨平台的可移植性。
A.
Tiny-OpenCL 框架
该框架包含以下软件组件:(1) SIMT RISC-V 扩展 API ,用于访问底层计算单元功能,例如激活和停用线程和 Warp、通过拆分和合并处理分歧以及管理同步屏障;(2) 启动函数,负责初始化 e-GPU 并执行必要的设置操作,包括计算每个线程的堆栈指针;(3) 调度函数,用于协调可用计算资源(计算单元、线程和 Warp)中工作项的执行,确保高效的工作负载分配。这些组件使用标准 RISC-V GNU 工具链预编译为静态库。
随后,解析器脚本对 OpenCL 内核进行分析,执行必要的代码转换,将其转换为具有等效功能的标准 C 函数。然后,可以使用 RISCV GNU 工具链编译此 C 函数,生成相应的目标文件。这些转换可以与现有的编译工具无缝集成,无需专用的编译器。内核处理和编译完成后,会与 Tiny-OpenCL 静态库链接,生成最终的二进制文件。
在内核地址空间中,保留了一块内存区域用于存放内核参数,这些参数由主机在执行前写入。这些参数包括执行参数,例如全局和本地大小、指向输入和输出缓冲区的指针以及其他配置细节。
为了增强灵活性,该框架允许用户自定义表 II 中列出的参数。这些参数包括内核的基地址,该基地址用作 e-GPU 的启动地址,并允许执行位于系统内任意地址偏移量的内核。此外,还可以配置线程堆栈的位置和大小,以确保根据目标应用程序的特定需求进行正确的映射和大小调整。
B.
Tiny-OpenCL 执行
OpenCL 运行时(如第 VI-C 节所述,在主机上运行)启动 e-GPU 加速后,内核执行开始,并经历三个阶段:启动、调度和处理。在启动阶段,每个计算单元以单线程模式执行,这意味着只有一个线程和一个 Warp 处于活动状态。在此阶段,将执行启动函数以初始化系统。这包括激活所有并行线程和并发 Warp,并为每个线程和 Warp 设置堆栈指针等资源。初始化完成后,计算单元将返回单线程模式,然后开始调度阶段。在调度阶段,将调用调度函数。这些函数从内核参数区域读取全局和本地大小,以确定工作组的数量以及每个工作组的工作项数量。这些值将与从控制和状态寄存器 (CSR) 检索的硬件资源信息(计算单元、线程和 Warp)相结合。基于这些数据,调度函数会激活必要的资源,并将工作项分配到可用线程中,以最大限度地提高并行度并最大限度地缩短执行时间。此外,它们还会停用未使用的资源,以降低功耗并提高整体能效。
一旦工作项在线程上启动,处理阶段就开始了。在此阶段,用户定义的内核将执行目标算法。输入和输出参数从内核参数区域获取,工作项会根据其全局 ID(可以表示为一维或二维索引)计算其特定的数据部分。由于调度函数会预先执行边界检查,因此用户内核无需处理此类逻辑。
APU 系统
本节介绍如何将 e-GPU 与主机集成,以实现 TinyAI 应用的 APU。本节首先详细介绍 e-GPU 接口,然后介绍所选的主机系统及其配置。最后,介绍一个轻量级的主机端 Tiny-OpenCL 运行时,旨在克服资源受限设备固有的编程限制。
A.
e-GPU 接口
e-GPU 公开以下端口:(1) 用于配置的从 OBI 端口;(2) 用于从主机主内存读写内核指令和数据的主 OBI 端口;以及 (3) 连接到主机中断控制器的中断线,该中断线会在内核完成时通知 CPU。
e-GPU 在专用电源域内运行,可实现精细的电源管理。时钟门控可在短暂空闲期间降低功耗,而电源门控可在长时间不活动期间完全关闭加速器。这些机制的控制信号连接到主机电源管理器,从而确保高效且自主的能源管理。
B.
主机配置
X-HEEP 系统因其可配置和可扩展的架构而被选为平台的主机,这有助于加速器集成。所选配置包括:(1) 一个轻量级 CPU ,针对执行控制任务进行了优化,同时将性能密集型计算卸载到加速器,确保低功耗;(2) 两个 32 KiB 的 SRAM 组,配置为连续寻址模式,为 CPU 和加速器提供独立的内存分配,并减少访问冲突;(3) 一个完全连接的交叉开关,提供高带宽数据传输能力;(4) 一个中断控制器,用于管理内部和外部中断;(5) 一个电源控制器,负责管理内部和外部节能策略,包括时钟门控和电源门控;(6) 一个调试单元,用于通过 JTAG 实现完整的系统控制;(7)可扩展加速器接口 (XAIF),配置一个 OBI 主接口、一个 OBI 从接口和一个中断接口,用于连接 e-GPU 的相应端口。图 1 展示了连接的细节。
C.
Tiny-OpenCL 运行时
标准的开源 OpenCL 实现(例如 PoCL)需要能够运行操作系统的主机来支持其运行时,该运行时负责与加速器交互并控制加速器。然而,X-HEEP 是一款 RISC-V 微控制器,缺乏运行 Linux 等操作系统所需的 ISA 支持。因此,它依赖于 Newlib,这是一个针对边缘系统优化的开源 C 标准库,它提供了一整套基本功能,包括 I/O、内存和字符串实用程序,通常在缺乏支持文件系统和多线程的完整操作系统时使用。
由于缺乏文件系统,主机应用程序必须编译为单个二进制文件,从而无需进行动态库链接。同样,由于缺乏多线程,主机应用程序只能在单线程中执行。为了克服这些限制,第五节介绍的 Tiny-OpenCL 框架扩展了一个专用运行时,该运行时专为支持 Newlib 的微控制器(例如 X-HEEP)设计。该运行时使用标准 GNU RISC-V 工具链编译,并实现了标准 OpenCL 运行时 API 的一个子集。这些函数提供从主机对 e-GPU 的完全控制,包括初始化数据缓冲区、配置内核参数、内核调度以及通过等待操作完成来实现同步。
实验设置
本节介绍我们实验中所选用的 e-GPU 配置。然后,介绍所采用的基准测试,这些基准测试旨在证明所提出的平台能够满足 TinyAI 代表性应用领域——生物信号处理——的严格要求。随后,本节详细介绍了我们系统的实现,并描述了用于提取性能、功耗和面积指标的方法。
A.
e-GPU 配置
表三总结了所选的配置。每个实例包含两个计算单元,并行线程数量不断增加,每个计算单元从 2 到 8 个不等。此设置可提供足够的性能来执行内核,同时保持面积和功耗之间的平衡。为了降低内存访问延迟,每个计算单元配备了四个并发 Warp。鉴于共享数据缓存的访问延迟为四个周期,此配置允许缓存流水线被四个未完成的请求填充,从而实现每个周期一次访问的最大吞吐量。
指令缓存采用单存储体配置。这种布局节省面积和功耗,有助于提高整体能效。16 B 的指令行大小(四条指令)可最大限度地提高空间局部性并增强内核代码的预取,而 4 KiB(每个计算单元 2 KiB)的总指令缓存大小可确保我们基准测试的每个内核都能适应。
共享数据缓存采用多存储体配置,并采用行交错寻址。它包含两个存储体,每个计算单元一个,以最大限度地提高并行访问效率。行大小设置为 T x 4 B,其中 T 表示每个计算单元的并行线程数。这种设计允许所有线程在访问连续内存位置时同时读取数据,因为一次缓存行读取就足够了。最后,总数据缓存大小为 16 KiB,用于容纳所需的内核数据,从而最大限度地减少缓存与主机主内存之间的流量。
B.
基准测试
我们采用了两个基准测试:GeMM 和 TinyBio 工作负载。GeMM 基准测试包含大小递增的通用矩阵乘法核,范围从 32 × 32 到 256 × 256。相比之下,TinyBio 领域包含专门用于分析从人体获取的生物信号并提取有意义特征的核 。其中,我们选择了 MBio-Tracker 应用程序 ,它是专门为测量认知工作负载而开发的。该应用程序具有四个阶段的流水线:预处理、描绘、特征提取和预测。这些异构核融合了各种复杂度和内存需求各不相同的算法,使其成为我们实验的理想选择。在预处理过程中,对原始输入数据应用有限脉冲响应 (FIR) 滤波器。在描绘阶段,识别滤波信号的波峰和波谷,以确定吸气和呼气时间。然后使用提取的值计算时域特征,例如平均值、中值和均方根 (RMS),而通过对滤波信号执行 Stockham 快速傅里叶变换 (FFT) 来获得频域特征。最后,使用支持向量机 (SVM) 算法来估计认知工作量。
C.
方法论
每个系统均采用台积电 (TSMC) 的 16 nm FinFETSVT CMOS 技术进行综合,工作频率为 300 MHz,电压为 0.8 V。综合后进行仿真,提取开关活动进行功耗分析。这些数据随后用于估算功耗。
实验结果
本节介绍并分析了我们的实验结果。首先对每个系统进行静态特性描述,然后分析使用 e-GPU 的相关开销。接下来,我们介绍 TinyBio 基准测试的特性描述。最后,我们进行总体讨论,重点探讨如何有效利用每个系统。
A.
静态特性描述
图 2 显示了所分析系统面积的细分。e-GPU 系统的总面积从 0.24 平方毫米到 0.38 平方毫米不等。这些结果证明了所提出的系统在 TinyAI 应用中部署的可行性,因为目标设备的小尺寸对面积有着严格的限制,整个 SoC 通常只有几平方毫米。此外,e-GPU 的面积开销仅为独立主机系统(占用 0.15 平方毫米)的 1.6 到 2.5 倍,而运行 TinyBio 基准测试时,其速度提升高达 3.6 到 15.1 倍,如图 4 所示。
分解总面积的贡献后,指令缓存在所有 e-GPU 配置中保持不变。这是预料之中的,因为在增加线程数和性能时,指令缓存不会进行修改或扩展。
相比之下,数据缓存的面积略有增加,尽管其总容量在不同配置之间保持不变。这种增加源于内存层次结构的调整,旨在在更高并行度(即更高线程数)下最大化内存访问带宽。具体而言,需要更多缓存端口(每个线程一个端口)和更大的缓存行(每个线程一个字)。更大的线尺寸是通过增加bank数量来实现的:4线程e-GPU使用两个bank,8线程版本使用四个bank,16线程版本使用八个bank。相比于使用相同总尺寸的单个bank,拆分成多个子bank的面积效率较低。
最后,随着性能配置的提升,计算单元的面积显著增加,其贡献也几乎翻了一番。这种增长反映了集成更多资源的需求,例如更多运算单元、更大的寄存器文件和扩展的控制逻辑,以便高效地支持更多并行线程。
如图 2 所示,分析漏电功耗时也观察到了类似的趋势。e-GPU 系统的漏电功耗范围为 130.13 µW 至 305.32 µW,与功耗为 29.50 µW 的独立主机系统相比,其开销是前者的 4.4 倍至 10.3 倍。这进一步证明了所提设计对于 TinyAI 应用的适用性,因为此类应用的电池供电设备必须遵守严格的功耗预算,通常在数十毫瓦的量级。
总体而言,面积和泄漏分析一致表明,最显著的变化集中在计算单元内部,而除数据缓存中的适度调整外,缓存保持相对稳定。这些结果凸显了所提出的 e-GPU 架构的可扩展性,证实了其能够在严格的 TinyAI 部署约束下有效地权衡面积和泄漏开销,从而实现显著的性能提升,如图 4 所示。
B.
开销特性
图 3 展示了在所选 e-GPU 系统上执行的矩阵乘法的开销与计算时间的细分,矩阵乘法的规模随时间递增。
开销分为两种类型:传输和调度。传输是指用内核数据填充数据缓存所花费的时间。这发生在内核执行之前,数据从主机内存移动到 e-GPU 缓存,带宽为 32 位/周期。假设缓存足够大,可以容纳整个工作集,则传输的数据将在后续的内核执行过程中保持驻留,从而提高性能和能效。由于需要传输的数据越来越多,因此传输延迟会随着矩阵规模的增大而增加,对于高端 e-GPU 系统,传输延迟从大约 27 µs 增加到 1.7 ms。
在矩阵大小固定的情况下,使用更多并行线程来提升性能会略微减少传输时间。这可以归因于逐渐增大的缓存行,这使得每次读取未命中时可以将更多数据预取到数据缓存中。因此,计算和数据传输之间的重叠会增加,从而减少仅用于数据移动的时间比例。
总体而言,传输开销在不同矩阵大小下稳定在执行时间的 20% 以上,因为传输时间的增加会被性能逐步提升带来的计算延迟的减少所抵消。
与传输互补的是,调度表示分配计算资源并为其指派工作项所需的时间。e-GPU 依赖于第五节中描述的 Tiny-OpenCL 框架提供的运行时调度。随着工作项数量的增加,这种开销会变得更加明显,因为必须对可用资源执行更多迭代。
在我们的实验中,我们配置了矩阵乘法内核,使工作项数量与可用线程数(计算单元 × 并发 Warp × 并行线程)匹配。这种方法优化了调度时间并提升了内核的整体性能。因此,无论系统性能或矩阵规模如何增加,调度时间都保持在约 25 µs 的恒定水平。
然而,随着问题规模的增加,其对总执行时间的相对贡献会从约 15% 降至不到 1%。这证明了所提出的 Tiny-OpenCL 框架的可行性,它提供了高度的灵活性和改进的可编程性,并且对于大于 256 × 256(或同等问题规模)的矩阵,其开销几乎可以忽略不计。
C.
TinyBio 基准测试特性
图 4 展示了第 VII-B 节中描述的 TinyBio 基准测试的每个内核在所分析的 e-GPU 系统上执行时,相对于基准主机系统所实现的加速和能耗降低情况。
在预处理阶段,执行 FIR 滤波器。该算法高度可并行化,因为每个输出样本可以独立计算,从而允许多个线程同时处理不同的样本。计算涉及固定数量的乘法累加运算,这些运算可以高效地映射到 e-GPU 的处理单元。此外,FIR 滤波器表现出规则且连续的内存访问模式,增强了局部性并实现了高效的合并内存访问,从而最大限度地降低了延迟并最大限度地提高了带宽利用率。
得益于这些有利特性,e-GPU 系统相对于主机系统实现了 3.6 倍到 15.1 倍的加速,从而将能耗降低了 1.7 倍到 3.1 倍。
相比之下,描绘阶段的特点是使用控制密集型算法来检测局部最大值和最小值。此工作负载仅部分可并行化,无法充分利用 e-GPU 的功能。此外,GPU 并未针对涉及频繁分支的控制主导代码进行优化,这些代码使用线程屏蔽将不同的执行路径序列化,从而降低了并行效率。
尽管存在这些限制,e-GPU 系统在主机上仍实现了 3.1 倍至 13.1 倍的速度提升,同时能耗降低了 1.5 倍至 2.7 倍。
在特征提取阶段,执行 Stockham FFT 算法。与传统的 Cooley-Tukey FFT 不同,Stockham FFT 通过在每个阶段重新排序数据,消除了单独的位反转置换的需要。它采用双缓冲(乒乓)方案,在两个数组之间交替存储中间结果。在每个 log2 (N) 阶段,它都通过常规和顺序内存访问执行独立的蝶形运算,这使得它特别适合并行架构。计算结束时,输出数据已经处于正确的顺序,无需显式的最终置换步骤。
然而,此阶段的主要限制在于需要顺序阶段之间的同步,这降低了可用的并行度并限制了整体性能。尽管如此,e-GPU 系统仍实现了 3.3 倍至 14.0 倍的速度提升,同时能耗降低了 1.6 倍至 2.9 倍。
总体而言,从完整的应用角度考虑,eGPU 系统在处理阶段实现了 3.4 倍至 14.3 倍的整体性能提升,同时能耗降低了 1.6 倍至 2.9 倍。
D.
总体讨论
评估系统的特性凸显了在为 TinyAI 应用设计或选择平台时必须考虑的关键权衡因素。
基准主机系统复杂度最低,非常适合计算需求适中且资源限制严格的场景。其轻量级设计确保了最小的面积和功耗,这对于能源供应严重受限的应用(例如电池供电的边缘设备)至关重要。然而,这些优势是以牺牲计算能力为代价的。主机 CPU 难以高效地处理更密集的 TinyAI 工作负载,导致执行时间延长,从而导致总体能耗增加。随着 TinyAI 应用越来越需要更强大的处理能力来支持更复杂的模型和数据分析,基准主机 CPU 在这些用例中的适用性越来越差。
相比之下,与主机系统相比,e-GPU 系统在面积和漏电方面都引入了适度的开销。然而,这些额外的成本被性能和能效的显著提升所抵消。 e-GPU 的加速比可达 3.6 倍至 15.1 倍,能耗比则为 1.7 倍至 3.1 倍。这些改进对于 TinyAI 应用尤其重要,因为这些应用需要处理密集型数据,但仍必须在有限的面积和功耗预算内运行。尽管由于 SIMT 架构在管理不同分支时固有的低效率,控制密集型工作负载对 e-GPU 来说仍然更具挑战性,但该系统能够有效地处理此类情况,从而保持性能和能效。
总体而言,e-GPU 系统是 TinyAI 应用的高效且多功能的解决方案。其架构成功地平衡了计算吞吐量、能效和灵活性,解决了资源受限环境中面临的关键挑战。通过显著提升性能并降低能耗,同时保持适中的面积和功耗,e-GPU 满足了现代 TinyAI 工作负载的严格要求。
结论
对实时机器学习计算日益增长的需求加速了边缘计算的采用,本地数据处理可以增强延迟、隐私和能效。然而,这些工作负载对计算性能、面积和功耗施加了严格的限制,因此需要专门的硬件解决方案。在现有的加速器中,GPU 在利用数据并行性进行机器学习和信号处理任务方面具有强大的潜力。然而,它们在 TinyAI 设备环境中的利弊权衡在很大程度上尚未得到探索。
为了应对这些挑战,本研究引入了 eGPU,这是一个专为 TinyAI 应用设计的开源且可配置的 RISC-V GPU 平台。其广泛的可配置性可实现细粒度的面积和功耗优化,而专用的 Tiny-OpenCL 框架则提供了一个专为资源受限环境量身定制的轻量级灵活编程模型。
e-GPU 与 X-HEEP 主机集成,以实现针对 TinyAI 应用优化的 APU。所提出的系统的多个实例具有不同的 e-GPU 配置,采用台积电 (TSMC) 16 nm SVT CMOS 技术实现,工作频率为 300 MHz,电压为 0.8 V。分析了它们的面积和漏电特性,以确保符合 TinyAI 的约束条件。
为了评估运行时开销和应用级效率,我们使用了两个基准测试:GeMM 和 TinyBio 工作负载。GeMM 基准测试用于量化 Tiny-OpenCL 框架引入的调度开销。结果表明,对于大于 256 × 256(或等效问题规模)的矩阵,延迟可以忽略不计。然后,使用 TinyBio 基准测试来评估相对于基线主机的性能和能耗改进。结果表明,高端 e-GPU 配置可实现高达 15.1 倍的加速,并将能耗降低高达 3.1 倍,同时仅产生 2.5 倍的面积开销,并在 28 mW 的功耗预算内运行。
通过提供一个开源且高度可配置、具有竞争优势的面积、功耗和可编程性的 GPU 平台,这项工作为 TinyAI 应用的 GPU 平台的进一步研究奠定了基础,为灵活且节能的边缘计算开辟了新的机遇。
半导体精品公众号推荐
专注半导体领域更多原创内容
关注全球半导体产业动向与趋势
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第4056期内容,欢迎关注。
『半导体第一垂直媒体』
实时 专业 原创 深度
公众号ID:icbank
喜欢我们的内容就点“在看”分享给小伙伴哦
大众证券报
2025-06-06
AI蓝媒汇
2025-06-06
半导体行业观察
2025-06-06
半导体行业观察
2025-06-06
半导体行业观察
2025-06-06
半导体行业观察
2025-06-06
证券之星资讯
2025-06-06
证券之星资讯
2025-06-06
证券之星资讯
2025-06-06