【Interconnection Networks 互连网络】Torus 网络拓扑

embedded/2024/9/24 22:58:37/

1. Torus 网络拓扑

Torus 和 Mesh 网络拓扑,又可以称为 k-ary n-cubes,在规则的 n 维网格中包裹着 N = k^n 个节点,每个维度都有 k 个节点,并且最近邻居之间有通道。k-ary n-cubes包含一系列网络,从 rings (n = 1) 到 binary n-cubes (k = 2),也称为超立方体(hypercubes)。

这些网络的优势在于规则的物理排列与封装限制很好地匹配。在小尺寸下,tori具有统一的短线,允许高速运行而无需中继器。tori中逻辑上最小的路径几乎总是物理上最小的。这种物理的一致允许环面和网状网络利用通信节点之间的物理局部性。对于本地通信模式,例如每个节点在第一维中向其邻居发送消息,与随机流量相比,延迟要低得多,吞吐量要高得多,而蝴蝶网络无法利用这种局部性。

Tori 具有良好的路径多样性,即使在排列流量上也能具有良好的负载平衡。此外,由于torus或mesh网络中的所有通道都是双向的,因此它们可以利用双向信号,从而更有效地利用引脚和电线。

Tori网络的一个缺点是它们比对数网络具有更大的跳数。这使得它们的延迟略高于最小界限,并增加了网络的引脚成本。但请注意为了路径多样性,跳数的增加是必要的。设计者可以通过选择网络的维度 n 来确定环面网络的属性。网络的吞吐量随着维度单调增加,直到网络二分受限。对于低维度,延迟由高跳数 H 主导,而对于高维度,序列化延迟 Ts 占主导地位。最小延迟通常在相对较低的维度上实现,通常在 2 到 4 之间。为了最小化延迟和线路长度,我们通常选择 n 作为限制网络平分的最小维度。

2. Torus 网络拓扑结构

n-dimensional, radix-k torus或 k-ary n-cube,由 N = kn 个节点组成,每个维度上有 k 个节点。torus 作为一个直接网络,这N个节点中的每一个都同时充当网络的输入端、输出端和交换节点。每个节点都分配有一个 n 位 radix-k 的地址 {an−1,…,a0}作为坐标,并通过一对通道(每个方向一个)连接到地址相差 ±1 (mod k) 的节点,总共需要2nN 个 channels。Tori 是规则的(所有节点具有相同的度数)并且也是边对称的,这有助于改善通道之间的负载平衡。

一般来说,tori可以通过迭代添加维度来构造任意 k 元 n 立方体,如图 5.1 所示。 k-ary 1-cube(图 5.1[a]) 只是一个 k 节点环。将 k 个 1-cube 连接成一个循环会增加第二个维度,形成 k-ary 2-cube (图 5.1[b])。该过程持续一个维度,将 k 个 k-ary (n − 1)-cube 组合成一个 k-ary n-cube(图 5.1[c])。
在这里插入图片描述

Mesh 网络拓扑是 Torus 网络拓扑在每个方向上省略从节点 ak-1 到节点 a0 的连接。例如,图 5.2 将 4-ary 2-cube (torus)与 4-ary 2-mesh 进行了比较。Mesh 具有相同的节点的度,但对分带宽通道的数量是具有相同基数和维度的 torus 拓扑的一半。尽管 mesh 具有非常自然的二维布局,可以保持较短的通道长度,但它放弃了 torus 的边缘对称性。这可能会导致许多流量模式的负载不平衡,因为 mesh 拓扑的中央通道的需求可能明显高于边缘通道

从图中很容易看出,如果每个方向 channel 的信道带宽为 (b), a k-ary n-cube 的二等分带宽是 (B = 4k^{n-1} b )
在这里插入图片描述

torus 可以是单向的,在每一维中仅具有一个方向(从 ai 到 ai+1)的通道,也可以是双向的,在连接的节点之间具有两个方向的通道。mesh 也可以构成成单向或双向;然而,单向的 mesh 由于没有较长的边缘通道,因此必须在不同行之间交替改变方向,以保持网络完全连接。即使成本增加,双向网络通常也是首选,因为它们具有较低的跳数 H 和更大的路径多样性。一般来说,我们认为环面或网格是双向的

Torus 网络的每个维度可以具有不同的基数。例如,图 5.3 显示了一个 2,3,4-ary 3-mesh,其 y 维度的基数为 2,z 维度的基数为 3,x 维度的基数为 4。混合基数环面和网格通常是出于封装和模块化的实际原因而构建的。然而,混合基数 tori 不再是边对称的,并且与单基数 mesh 相比,混合基数网格更加不对称。这些不对称引入了负载的不平衡,并且对于许多流量模式(包括均匀流量),较长维度上的信道负载大于较短维度上的负载。对于均匀流量(例如 γx),图 5.3 中 x 维度上的负载将是 γz 的两倍(可以简单地理解,在 X 维度,每个节点需要和其余三个节点通信,其中设置一对一节点的通信量为r,总共通信量就是 X 维度上的总的通信量是 12r,而 Z 维度上任意link的通信量都是 6r,故在均匀随机流量模式下,x 维度上的负载将是 γz 的两倍)。

在这里插入图片描述

References

[1] Dally, William James, and Brian Patrick Towles. Principles and practices of interconnection networks. Elsevier, 2004.
[2] Jerger, Natalie D. Enright, et al. On-chip networks. Vol. 12. No. 3. Morgan & Claypool, 2017.


http://www.ppmy.cn/embedded/9675.html

相关文章

Linux 目录操作函数

目录操作函数 ls -l 可以查看目录中文件的信息,比如: petriXX:~/lesson01/05_io/目录操作函数$ ls -l a.txt -rw-r--r-- 1 petri petri 0 Apr 22 18:51 a.txtLinux系统中的目录操作函数: int rename(const char *oldpath, const char *new…

通过Docker新建并使用MySQL数据库

1. 安装Docker 确保您的系统上已经安装了Docker。可以通过以下命令检查Docker是否安装并运行: systemctl status docker如果没有安装或运行,请按照官方文档进行安装和启动。 2. 拉取MySQL镜像 从Docker Hub拉取MySQL官方镜像。这里以MySQL 5.7版本为…

一个typescript 5 + rollup 4 打包lib模板仓库实现

前言 昨天在写点什么东西的时候,发现有些逻辑可以搞成一个 npm 模块。 找了下看看,有没有什么好用现成模板用于开发。。发现并没有; 那有需求就解决需求。。 需求 基于当前的流行技术栈选型(rollup 4.x typescript 5.x)提供一个最小化模…

Leetcode 86. 分隔链表

题目链接: 86. 分隔链表 - 力扣(LeetCode)https://leetcode.cn/problems/partition-list/description/ 题目: 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出…

【推理优化】超详细!AIGC面试系列 大模型推理系列(2)

本期问题聚焦于大模型的推理优化技术 本期问题快览 有哪些常见的大模型推理优化技术介绍下通过流水线处理技术来加速大模型推理方案介绍下并行计算技术来加速大模型推理的方案有哪些通过硬件来加速大模型推理的方式?模型量化是如何加速大模型推理的?有哪…

【面试经典 150 | 链表】分隔链表

文章目录 写在前面Tag题目来源解题思路方法一:模拟 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾…

实现Spring底层机制(阶段1—编写自己的Spring容器,扫描包,得到bean的Class对象)

环境搭建抛出问题 1.环境搭建 1.创建maven项目 2.导入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.ap…

多模态之ALBEF—先对齐后融合,利用动量蒸馏学习视觉语言模型表征,学习细节理解与论文详细阅读:Align before Fuse

Align before Fuse: Vision and Language Representation Learning with Momentum Distillation &#xff08;ALBEF&#xff09;在融合之前对齐&#xff1a;利用动量蒸馏进行视觉与语言表示学习 Paper: arxiv.org/pdf/2107.07651.pdf Github: https://github.com/salesforce/…