Gemini

news/2024/11/29 17:36:55/文章来源:https://www.cnblogs.com/mumujun12345/p/18577219

Gemini: 大规模DNN芯片阵列加速器的布局和架构

摘要

chiplet概要目标

  1. Chiplet(芯片阵列)技术允许在单一加速器上集成不断增加的晶体管的数量,在前摩尔定律时代获得了更高的效果,体现了在快速AI迭代进步中需要的大量算力。
  2. 但是,这样也引进了更高昂的大包开销,以及大量的d2d(芯片裸片间通信接口),需要更大的面积,更高的能耗,以及比单芯片内通信的更低的带宽
  3. 因此,对于芯片阵列,最大化优势最小化劣势十分重要,对布局架构都提出了很高的要求。

本文工作

  1. 提出了一个以层为中心的编码方式,来对层-流水线的空间布局进行编码,并且描述了其优化空间。基于此,我们分析了为探索过的优化机会。
  2. 基于编码方法和高度可配置和全局的硬件模版,我们提出了一个架构和布局协同探索的架构gemini,在考虑费用,表现和能耗的基础下,探索加速器的设计和布局空间。
  3. 利用gemini来发现一些有意思的在架构设计布局DNN工作负载方面使用芯片阵列技术的一些方法。

概述

面临挑战

chiplet技术在DNN加速器上已经兴起,然而存在以下问题:

  • 架构设计层面,主要的挑战是最优的芯片阵列粒度。chiplet花销包括:打包花销d2d开销。裸片通信耗能更多并且需要更多空间。这样就需要在更好的收获和更小的阵列花销中进行权衡。
  • DNN布局层面,主要的挑战还是来源于更大的规模更大花销的裸片间通信
    • 对于第一项,随着规模增大,维持高利用率提高能效愈发困难。
    • LP布局将MLP的各个层进行布局,核心是SPM。决定层的哪个部分分配给哪个核,对表现和能效都具有很大的影响。目前的方法仍然是启发式的。因此LP SPM的优化和问题并没有清晰地定义,探索和了解。这样限制了完全利用LP布局的优化机会。
    • 对于第二项,D2D链路导致了消耗能量更高,以及提供了更低的带宽。因此设计空间布局的策略会自动降低D2D通信

我们做出了如下贡献:

  1. 利用LP层级编码方法,描述了LP布局的与优化空间。计算了其巨大的尺寸,显著优于现存的启发式算法,清晰系统地定义了LP SPM和DNN推理的优化空间。
  2. 基于编码方法和一个可配置与全局硬件模版,我们发明了gemini,一个对布局和架构进行综合探索的框架。包括两大部分:布局引擎花销估计器
    布局引擎中模拟退火算法和五个特意设计的算子用于探索基于我们的编码方法定义的空间和自动减少D2D通信
    花销估计器自动对不同架构参数下的加速器开销进行估计。
  3. 利用gemini探索以下问题。
    (1) 过度的精调芯片阵列会同时降低花销,表现,能效。
    (2) 对于计算核心的粒度,能效和表现会随着粒度细化首先上升(并且增幅逐渐减缓),然后在随后遭到些微的下降。并且,花销会随着精细化不断上升。
    (3) 探索了在gemini的帮助下,正确的架构将一个芯片阵列部署到多个加速器上,以及在面对多样计算需求的限制。
    (4) 学习了空间布局架构的性质,并且发现了聚集具有大量数据传输的集群更加重要且有效。
  4. 效果好。

背景知识/动机

chiplet引入权衡

芯片阵列引入后,有:

  • 优势:更高良率,更大规模,异构集成,多片重用
  • 劣势:更差表现,更高能好,片间通信开销,更高包裹开销。

以上会引入对于芯片设计的三个方面的权衡:能量开销,表现和花销。这些对于部署阵列技术十分重要。成为动机。

布局挑战

理论计算能量转换为实际计算表现面临巨大困难。

  • 目前存在:关注层-序列布局在小规模加速器上的应用。
  • 但是随着加速器规模不断增大,出现了可扩展性限制,尽管LP(层级流水线)仍然具有很大潜力。
  • LP SPM还没有被广泛研究。其优化空间和效果也没有被正式定义。

可扩展的硬件模版

  • 介绍全局/可配置硬件模版,从现存的chiplet加速器和大规模加速器上提取相同特征后创造而来。

  • 总体架构

img

提倡的架构包括了两种类型的芯片阵列:

  • IO芯片阵列和计算芯片阵列。

  • 网状的片上网络在计算阵列中将所有计算核心相互连接

  • 位于控制阵列中的控制器允许核心-核心,核心-DRAM,DRAM-核心的沟通。

  • 针对片间通信,D2D发送端将编码数据并发送给对应的D2D接收端(位于另一个芯片阵列内)。接收端解码并且采用片上网络进行传输。片间通信全自动化并且对于src和dst都同名。

  • 异构架构允许任意数量的IO和计算阵列,保证整个模版的可扩展性。

  • 支持多种拓扑结构。目前大部分芯片支持网状互联,因此默认采用网状架构。

  • 计算阵列架构

  • 网状片上网络。支持任意数量核心。

  • D2D接口环状布置于四周,提升可拓展性。可以与其他阵列构成大规模网状结构。

  • DMA,路由,便利通信。控制单元对管理计算任务和进程信息,以及管理数据传输接收的重要性。GLB对于所有核心透明公开用于读写数据。PE阵列和矩阵向量用于计算。

  • IO阵列架构

  • IO功能的序列部署,允许与DRAM沟通。控制器控制片上网络和DRAM保证高带宽利用率。

  • 可以配置的参数

  • NoC带宽,d2d带宽,核心数量(二维解耦),阵列数量(二维解耦),MAC数量,GLB大小。

  • PE阵列采用NVDLA架构。

层级流水线映射编码

编码格式和分割方法

  • 以层为中心的编码方法来描述层级流水线空间映射。
  • 包括两份信息:
    • 对每层的分配和分割到每个特定的核心上。
    • 数据来源和目的地在每个核上的工作负载。
  • 具有普遍性和可以在各种拓扑结构上使用。

考虑具有n层的DNN有向无环图。我们定义:

  • LP:层级流水线

  • CG:core-group核心集群。

  • DAG:Directed acyclic graph,有向无环图

  • LMS:层级流水线空间布局规划

  • MS:针对每层的空间布局规划

  • LG:层级组

  • MS:

  • 针对第i层,我们有一下三个属性:

    • 分割(\(\text{Part}_i=(H_i,W_i,B_i,K_i)\)),对应卷积核的长,宽,batch_size,以及通道数。
    • 核心集群:(\(\text{CG}_i=(C_{\text{id}_i,1},\ldots,C_{\text{id}_i,n_{c_{i}-1}})\))。其中\(n_{c_{i}}\)为第i个核心集群的数量。
    • 数据流。\((\text{FD}_i=(\text{IF}_i,\text{WGT}_i,\text{OF}_i))\)
  • 映射方法:

    • 分割部分:也就是对应卷积层的长、宽、batch_size、通道数目。
    • 核心集群部分:分割完成后,用于加载对应分割部分权重和进行矩阵运算的核心集群块号。
    • 工作负载ID:(h,w,b,k),4d工作负载ID。工作负载ID由分块后形成的位置所对应。
    • 转换成集群ID。方式为:
    • \(h\times W_i\times B_i\times K_i+w\times B_i\times K_i + b\times K_i+k+1\)
    • 数据流部分:表示数据的来源(IF), 采用的权重(WGT), 以及数据的目的地(OF).前两个指明了数据从哪个DRAM加载到CG中,OF指明了核心进行数据存储到哪个DRAM。没有明确指明的用-1来表示。
    • 需要明确指明的情况:
      • (1) 对于输出部分,当下面的层级不位于这个层级组或作为总体输出时,需要指明输出的特定DRAM。
      • (2) 对于输入图,只有当当前层输入是全局DNN的输入层时需要指明DRAM。
      • (3) 对于权重,无论一个层是否有权重都需要进行管理。

img

空间计算

N层映射到一个有着M个核核D个DRAMS的加速器上。下界为\(m!\sum\limits_{i=0}^{N-1}\binom{N}{i}\binom{N-i-1}{M-N_1}4^{N-i}\),计算方式。SOTA目前优化空间为N·part(M),后项是M的所有因数项。这样本作的优化空间显著优于SOTA。

揭露隐藏的优化机会

TODO

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

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

相关文章

hhdb数据库介绍(10-19)

监控 智能物理拓扑 物理拓扑图主要以服务器为视角展示集群组件与服务器的所属关系,同时可查看服务器资源的使用情况以及各集群组件服务运行状态。使用前需保证为集群服务器配置了可用的SSH连接信息,否则只能查看当前服务器与集群组件的所属关系,无法查看服务器与组件程序的状…

IDEA 2024.3 安装激活教程(至2099年)

IntelliJ IDEA简介 IntelliJ IDEA是一款非常强大的Java集成开发环境(IDE),由JetBrains公司开发。它提供了丰富的功能和工具,帮助开发者更高效地编写、调试和部署代码。 要求 在开始之前,请确保您的计算机满足以下系统要求:操作系统:Windows、macOS或Linux 处理器:至少1 GH…

证书安装后为什么还显示证书无效

在数字化时代,网络安全和数据保护变得尤为重要。SSL/TLS证书作为保护网站和用户数据安全的重要工具,其正确安装和有效性是网站运营者必须关注的问题。然而,有时候即使证书已经安装,用户仍然会遇到“证书无效”的提示,这可能由多种原因引起。本文将探讨在证书安装后,为何用…

windows下netstat及网络查看工具的使用

1.打开cmd: win+R 输入cmd 2.查看工具相关指令可以看到相关指令能配置查看的内容 3.查看相应内容 例如我想查看当前主机UDP协议所使用的端口: netstat -ano -p UDP同理查看TCP所使用的端口: netstat -ano -p TCP二、windows 自带的网络监视工具的使用 1.打开资源管理器 快捷键…

CTP行情和交易接口的初始化流程

目录行情接口初始化交易接口初始化行情接口初始化mdapi->Init(); 初始化行情接口的工作线程初始化之后,线程自动启动,并使用注册的地址向服务端请求建立连接。综合交易平台接口都有独立的工作线程如果开发者在进行可视化程序的开发,请务必注意线程冲突的问题。api启动,I…

数字电子技术的课设,交通灯倒计时

想知道这个要怎么实现30,5,20的倒计时,这个只能实现,20,5,10的,请问要怎么修改,谢谢

C++下的gRPC与protobuf使用和介绍

目录gRPC允许定义四类服务方法流是会结束的stream(流式传输)编写流程客户端使用 ClientReader客户端使用 ClientWriter客户端使用 ClientReaderWriter服务器端gRPC允许定义四类服务方法一元RPC:客户端发送一次请求,等待服务端响应结构,会话结束,就像一次普通的函数调用这…

uniapp 微信小程序 子组件行内样式通过父组件参数获取

uniapp中正常按vue写法没问题,但是编译成微信小程序时,style中会变成[object object],如下图 子组件可以通过计算属性处理一下传进来的style对象,代码如下<template><div><div>我是自定义组件</div><div :style="generateStyle">00{{t…

HuggingFace入门与实践

现在全民AI大模型,虽然我不是算法工程师,但是作为IT从业者,多少应该了解一下。然而,论文太多,原理太难,那咱们就从实践开始,先实践看效果,再学习研究原理。 1. 存在价值及原因简而言之:HuggingFace是菜鸟的福音,大佬的舞台,学术与工程的桥梁!平台链接:https://hug…

Filter内存马

概述 最近感冒了,不想BB太多,直接开始调试吧,先写个Filter来调试 Filter代码 新建一个FilterShell类,代码如下: 一个类如果想要成为Filter则需要继承Filter,然后重写init、doFilter、destory这三个方法,分别表示了init::Filter在初始化时被调用 doFilter:在Filter被命…

探索 TypeScript 编程的利器:ts-morph 入门与实践

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:贝儿背景 在开发 web IDE 中生成代码大纲的功能时, 发现自己对 TypeScript 的了解知之甚少,以至于针对该功能的实现没有明确的思…

RK3562J正式支持NPU,性价比再提升!

RK3562J是瑞芯微最新推出的一款超高性价比工业处理器,四核Cortex-A53@1.8GHz + Cortex-M0@200MHz异构多核架构,并支持十路UART、两路CAN、两路网口、三种显示、双路Camera等,外设接口资源十分丰富,是RK3568J处理器降成本、降功耗的首选平台,在工商业储能EMS、通讯管理机、…