赞
踩
本文是乔治亚理工公开课程Interconnection Networks (Spring 2017)的教程,共有7个主题13堂课加上4个lab,目录在最后的部分。这里是第一堂课INtroduction简介的部分。
什么是互联网络:有不同的级别,数据中心与超算级别,片上微架构级别,还有电路级别。
GEM5 garnet做的是什么:是processor和memory之间,以及他们各自之间的连接
具体一点,则会出现相互之间链接的线。
原则是1.高带宽 低延迟
2. 共享资源来减少电路面积和功耗
我们研究的是Noc,互联尺度在1-100个设备左右。
在2017年的角度看,这几年核心猛猛多了呀。
核心多了就有问题了,之前是简单的点对点,如果核心多就如下右图,线很多很乱。
其实下面这个slide讲的东西听有意思的,和超算的人接触一会后会发现做的东西都很接近,只是尺度不一样,hpc的人们做的是机箱之间的互联或者是集群之间的互联。
作为片上互联,贷款高很多,延迟低很多,线路也短很多。
目标是差不多一样的,但是条件和约束不一样不能通用:
这个课比较特别,因为它是计算机体系架构,并行与分布式系统,计算机网络,和VLSI超大规模集成电路。
(在我看来,它是计算机体系架构,通讯网络,集成电路三大方向的交叉。他是计算机体系架构但它并不关心分支预测解码发射等inside core的设计。是通讯网络但是路由算法都限定了有线且超短,在2023年看,做通讯的挺多都默认指无线通讯了。是集成电路但是大多只关心到router的微架构,对于很多bus协议还有电路面积以及制程并不太深入,也就是和每天写synopsys的人比,做IC的能里差距很多。但是对这三个领域交叉的NoC而言,那就近乎无敌了,这也是下面这个slide说,没有任何其他大学有标准的课程。但是这个话也只代表2017年他的观点。)
然后是强组的自信:大意就是顶会HPCA也是可以试试的嘛,和intel AMD IBM Nvida啥的合作也是可以的。 高校确实很多顶级IC企业的校企合作。
然后是课程日程介绍,大概8周,必备要一本书“Onchip Networks”和可选的 Dally的 “Principles and practives of interconnection networks”. Dally的这本我翻过很多次。
然后是四个lab,我们慢慢的都会做。
下图其实挺关键的,核心是l1私有,l2共享,core取的是l1的数据以及caches missing后取的l2的数据,至于l2怎么找memory取,那是l2看的事情而不是core看的事情。理解了这个,会对后面router以及NoC到底在做什么有比较清晰的了解。
做到事情如下:
这里还有一个关键的单词 tile出现了,而且NI NetworkInterface也出现了。以及NoC领域的计算机体系架构的特点,他研究的不是核心不是核心不是核心,重要的话说三遍。不是核心,是router。
四大模块,拓扑结构,路由转发,流量控制,还有路由器微架构。前两个其实有点把router当节点来看,第三个流量控制可能看到了NI和router的port接口层面,第四个路由微架构则深入到路由器里面。 相当于从大到小看网络架构。
拓扑就是如何互联,现在常见的是ring,mesh,torus。
路由是如何到达:比如gem5 garnet用的 mesh_xy, 就是用的x-yrouting。 x-y routing挺简单也挺好用的。
流量控制的核心是,放进网络里可能因为竞争链路link或者占用了太多buffer,导致网络性能变差,还不如少塞一点进去。类似于堵车,1个小时的车堵成了5个小时。 不如这个时候先在服务站休息,不堵车了再开一小时到目的地。这样在网络里也就是在路上的时间从5个小时减少到了1个小时。但是一些问题:
1 服务站休息的时间也许很长也许很久,这样路上的时间虽然短了,到达的时间可能很晚。万一一个月后春运结束才走,还不如忍忍。
2 额外的缓存要求。 buffer或者服务器的停车位得多呀。
3 额外的控制器开销。 需要一个信息来通知buffer/服务站里的停车位什么时候把车开走,这需要监控网络的运输情况,传递网络信息,还有在服务站里的调控。
4. 有时候这个堵是flow control调控不了的。愿因有很多,比如数据依赖性一类的。有的是更需要有QoS qulity of service,简单的说就是不需要网络很好,重要的flit例如救护车能先走就够了。
终于看到了Sparc的实例了,gem5里一直有这个sparc我都不知道是哪一家的isa,原来是oracle。
Ring NoC是IBM的例子,但是intel消费者级也用的很多。不过我去年才知道,其实intel xenon用的也是mesh。
然后今天又看到了Intel的mesh。 AMD 最近(指radeon和epyc)也用非常多mesh。
下面这个图很有意思,大意就是noc的延迟提升是非线性的,负载低的时候延迟变化不明显,负载快到横坐标某个点的时候延迟显著上升。横左边的这个点一般就是极限带宽,这个一般是文章里是用uniform random测出来的报告,Dally的书里也有理论带宽的计算。
Garnet其实是基于RUBY的。啊多么痛的领悟again。
这里叙说了dir的功能,是packet的目的地。
这是乔治亚理工课程-L01 简介。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。