架构 | 互联架构的图建模分析

news/2024/11/12 7:11:15/文章来源:https://www.cnblogs.com/devil-sx/p/18331282

互联网络泛泛谈

互联网络是一种图结构,节点之间通过边连接。比如一般总线计算机架构中 CPU、Memory、Timer 等模块看作节点, 通过总线相连。

2D Mesh,节点只和相邻节点连接是非完全图

每个节点在网络中的身份是不对等的,有 Master 和 Slave 之分,或者按 TLM 中的模型 initiator 和 target。Initiator 有权申请发起传输事务,而 target 只能被动响应事务。最简单的结构中心架构——拥有唯一 initiator 和数个 target,由于所有事务必须经过唯一的 initiator 发起,该 initiator 知道所有的传输事务,进而了解所有 target 的工作状态,比如简化 SoC 总线系统由 CPU 作为唯一的 initiator 调度其余模块。

当网络中存在多个 initiator 时网络情况将变得复杂。比如 CPU 去调用其余模块时是 initiator,而其余中断源向 CPU 传递中断信息时 CPU 则变为 target。这种情况还较为容易处理,因为 initiator 之间(CPU 和 中断源)的 target 并不重叠(CPU 的 target 是除 CPU 的模块,其余中断源的 target 是 CPU)。但当网络中多个 initiator 重叠 target 时,每个 initiator 不能完全控制它 target 的行为,因此也不能掌握 target 状态的全部信息,比如多核系统中的缓存一致性问题。这种情况则需要某种同步机制来更新状态。

综上从三个角度理解互联网络:互联拓扑、通信带宽以及主从架构。

图论建模

考虑互联拓扑和主从关系,互联网络是有向图结构,可用邻接矩阵表示。每个节点代表一个模块,比如模块 A、模块 B、模块 C……

邻接矩阵表示

(initiator,target) 表示从 initiator 到 target 的有向边,红色/白色 表示俩模块之间 有互联/无互联。图(a)中 A 是 CPU,BCDE 是其他模块,其中 BCD 是中断源。任意一列只有一个红色方格,因此 initiator 的 target 之间互相不重叠;而图 (b)中 A、B 节点作为 initiator 时 C、D、E 的 target 重叠,对于 A、B 不能完全知道 C、D、E 的状态。图(c)则是表示任意节点之间都可以构成双向互联(不考虑对自己通信的情况)。

特殊架构

理想总线架构中挂载在总线的任意 initiator 都能对(除自身外的)任意 target 发起通信事务,假设某架构 A 作为 initiator 身份,B、C、D 作为 target 身份,E 既是 initiator 又是 target。邻接表示中纯 target 身份一行全为白色,是 initiator 的那一行则是标红所有 target。而考虑 2D Mesh 降维的 1D sequence,即 A-B-C-D-E 只能和相邻节点之间双向通信,则是图中俩条带状。

硬件模块的划分并不是唯一的,比如将 A、B、C 合成为一个节点,对外统一接口,这样在外面的网络看来 A、B、C 是一个节点,而 ABC 系统内部又有个小网络规划通信,很多加速器便是这种架构,将加速器挂在 SoC 总线上,而加速器内部又有矩阵单元、非线性单元、buffer 的互联网络。容易推导合并操作如何从原来一个邻接矩阵变化到表示大网络和小网络的俩个邻接矩阵。

网络的调度:软硬件同一图表示

程序可以用算法表示,计算图也是有向图结构。算法在硬件上执行首先要经过 mapping 将计算图的节点(算子)映射到具体执行硬件上,同一套算法和硬件存在不同的映射方式(比如系统中有多个矩阵乘法核,矩阵乘法可以映射到其中任意之一)。Mapping 完成后用硬件模块替换算子,根据数据依赖关系则可以绘制出这种映射策略下的软件执行邻接矩阵。由于程序不唯一、mapping 策略不唯一,硬件执行互联图并不唯一。而硬件固定了互联拓扑就是唯一的。

算法互联图

若软件执行图是硬件互联图的子图,则硬件直接将对应模块通信即可,否则则需要通过中间者传递通信事务。比如 Figure 1 的 2D mesh,mapping 后的程序要求节点 1 和节点 3 通信,但二者并不直接相连接,需要通过中间节点规划传输路径。直观感受规划通信路径越长,则开销越大。

设计复杂度感性体会

以上图表只反映了硬件逻辑的互联拓扑,未考虑时间上的调度信息(比如总线架构同一时刻只能有一个传输事务,计算图中执行的先后顺序)。不同网络控制器设计难度区别极大,感性理解决策空间复杂度由同一时刻系统要规划的通信路径数量、initiator 和 target 分布以及 mapping 策略决定。比如每个节点都是同质的 2D mesh 结构,不像金字塔结构构建层层抽象,有个高级节点统领全局,本文所提及的俩个问题都存在,一致性问题和中间节点通信问题,且同质意味着 mapping 空间也极大。{硬件异步通信策略、软件 mapping 策略、路径规划策略}几个决策空间叠加使得软硬件设计极其复杂。

SRAM 存算最诟病一点便是不能解决 DRAM 问题,而数据搬运核心开销在 DRAM 上,一种技术路线是用 chiplet 拼凑晶圆级系统提升 SRAM 容量规避 DRAM,chiplet 天然2D mesh 互联结构将使得软件编译器设计极其困难为了cue 2D mesh 这个醋包了本文这个饺子

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

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

相关文章

关于嵌入式QML dict_pinyin.dat的编译更新

硬件平台:全志的A40I-H 软件平台:Linux 内核版本3.10.65 QT版本:5.9.0重新编译dict_pinyin.dat的作用 1.解决输入"nss"导致输入法崩溃的问题 2.解决输入某些嵌入式平台不支持的字体,例如“捃”,导致程序崩溃的问题源码路径: ~/qt-everywhere-opensource-src-…

15-并发控制理论

15-并发控制理论 并发控制横跨了多个层级:operator Execution 操作执行 Access Methods 读表 buffer Pool Manager 缓存池日志恢复buffer Pool Manager 缓存池 Disk 磁盘管理Motivation:当多人修改数据库同一条数据,就会出现竞争问题 把100块钱从A账户转移到B账户,如果A账…

安装 jar包为windows服务

下载安装Java Service Wrapper 下载https://www.krenger.ch/blog/category/windows/ 安装 下载后在D盘找个位置解压: 在同级目录建一个新的文件夹,就命名JavaServiceWrapper吧:在文件夹JavaServiceWrapper下新建bin、conf、lib、logs、jre文件夹: 给下载解压的src/bin下边标…

2. GPIO读写

GPIO简介GPIO(全称为General Purpose Input/Output),即通用输入/输出,可以认为GPIO是片外外设与片内的通信接口,通过控制GPIO的电平状态,可以实现片外外设与片内的通信以及数据的输入输出。对于st32F103系列的GPIO,其命名规则为GPIO+端口号,如GPIOA,GPIOB。对于每个端口又…

使用 Easysearch 打造企业内部知识问答系统

大家可能都有这样的经历,刚入职一家企业时,同事往往会给你分享一些文档资料,有可能是产品信息、规章制度等等。这些文档有的过于冗长,很难第一时间找到想要的内容。有的已经有了新版本,但员工使用的还是老版本。 基于这种背景,我们可以利用 Easysearch 加 LLM 实现一个内…

Web系列-文件上传

Web系列-文件上传 做题思路 前端限制了上传文件的后缀,可以在前端修改代码或者bp抓包,再上传符合前端要求的文件类型,抓包后进行修改。 如果是php的环境,可以利用.user.ini,是一个局部配置文件,可以通过配置选项使每个php文件头或文件尾都进行文件包含 .user.ini利用需要…

【ollama】手把手教你布置本地大语言模型 以及各种常见用途#如何加载guff模型到ollama #如何更改ollama目录

ollama介绍 Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。 以下是其主要特点和功能概述:简化部署:Ollama 目标在于简化在 Docker 容器中部署大型语言模型的过程,使得非专业用户也能方便地管理和运行这些复杂的模型。轻量级与可扩展:作…

SPONGE常用教程0:软件安装教程

课程准备阶段,介绍最简明安装流程,安装过程中如果遇到其他问题,请移步官方教程。第三方软件只提供个人安装心得。 软件安装环境默认为linux。 软件支持 SPONGE(Simulation Package tOward Next GEneration molecular modelling)是由北京大学高毅勤课题组开发的分子动力学模…

使用高速收发器进行数据传输(一)

本来想做一个这样的项目,但是简单地使用这个方法传递数据实在是没意义; 我希望最后以万兆网来实现这点; 目前事实上只是按照UG476的要求给IP核数据和取数即可,并不困难;

虚拟机:GCC共享库在连接时的搜索位置和优选次序

假设有两个相同的共享库,一个在标准的共享库搜索目录(/lib/i386-linux-gnu), 一个在非标准目录(/home/charles/tmp):在/home/charles/tmp下有个测试程序main.c, 调用共享库里的函数。 用如下的命令编译: 用ldd看一下link的共享库:可以看出,虽然我们指定了 要使用 …

mysql导出csv文件中文乱码解决方案

确认csv文件导出编码格式,如果已经知道了 ->从文本/csv导出 ->选择文件原始格式 ->转换保存即可 如果不知道是什么编码可以通过记事本或者 nop++打开查看文件编码格式 一般导出和保存的编码格式为:utf8,gb2312,ANSI