第28课
约 900 个字 89 张图片 预计阅读时间 3 分钟
阵列处理器¶
SIMD(Single Instruction Multiple Data)即单指令流多数据流。
Array Processor(阵列处理器):每个PE(Processing Element)在单一控制部件CU(Control Unit)都有自己的memory。
所有的PE共享memory
Distributed memory:分布式
Centralized shared memory:集中共享,memory并不指定哪个PE,大家都可以用
通过ICN(Information-Centric Networking)来实现任意两PE间的互联,如果直接互联,网络规模会很大。
通过一步或者有限的步数连通
一些基本概念
静态:网络连接好后就不会发生变化。
动态:网络运行过程中,网络连接方式可能会发生变化。
控制方式可以是全局控制,也可以是局部同级控制,也可能是个体控制
网络连接的分类¶
大的方面分成静态和动态的连接方式:
入端\(j\),出端\(f(j)\),那么这两个端口就满足函数关系\(f\),当然\(j\)和\(f(j)\)都是二进制的编码。
Single-stage interconnection network¶
1. Cube single-stage interconnection network¶
Cube0
Cube1
Cube2
三个Cube函数刚好就构成了一个立方体,这个网络符合任意两点之间都可以通过一步或者有限步到达
最多\(log_2n\)步
2. PM2I single-stage interconnection network¶
PM2I一共有2n-1个不同的函数,因为有两个函数是相同的(\(n = log_2N\))。
\(PM2_{+0}()\)
\(PM2_{-0}()\):和\(PM2_{+0}()\)相反
\(PM2_{+1}()\)
\(PM2_{-1}()\)
\(PM2_{+2}()\)或\(PM2_{-2}()\)
总结:最多需要两步就可以到达,如图0经过一步就可以到达12467,当N很大的时候,PM2I最多为n-1步,相比于cube的n步(\(n = log_2N\))。
3. Shuffle exchange network¶
由shuffle函数和exchange函数两部分组成
一次shuffle
两次shuffle和三次shuffle
shuffle函数不能实现两两互连,我们可以加上exchange函数,这里的exchange函数是cube0函数
在这里,两头的结点比较慢,中间的结点连接比较快,从一端到另一端需要3个exchange和2个shuffle。
所以从全部是0到全部是1的变化需要n次的exchange和n-1次的shuffle,最远距离就是2n-1。
Features of single-stage interconnection networks¶
结构相对简单,开销比较低,更加灵活。
静态网络连接¶
线性结构破坏了一个节点就会导致断裂。
用的比较多的是格网络
cube中加环来增加节点的稳定性
动态网络连接¶
多级网络的示意图:
交叉开关:
多级网络设计原则
多级立方体网络(考试会考),这里是级控制
其他多级网络
控制信号为000,那么连接不变,如果001那么使用cube0函数,4组2元的交换;010就是用cube1,2组4元的交换。
扩展成16个处理单元
需要知道状态的推演,所有取反的信号都是exchange
Multi-stage shuffle exchange network
也叫做omega网络,它的开关是四功能开关(直连交换上波下波),如果把omega网络的四功能变成两功能,单元控制变成级控制,那么正好是cube网络的逆网络
Omega网络和立方体网络对比
Omega网络和立方体网络互相连接
Omega网络可以实现一对多,如下图是从入端的2到所有的出端
总结¶
SIMD单指令流多数据流,当有多个数据流而且不互相依赖,SIMD有较好的效果。
GPU¶
是SIMT架构,也就是说是单指令流多线程,以线程为并行的最小粒度。
采用thread->blocks->grid的结构。
跨迭代相关:
本文总阅读量次