作者:biosan | 来源:互联网 | 2023-10-17 12:50
全球最强超级计算机神威·太湖之光搭载的申威26010处理器每片处理器包含4个核心,片上的4个核心通过片上网络互联,并通过PCI-E3.0对外连接,每个核心拥有独立的128位DDR3
全球最强超级计算机神威·太湖之光搭载的申威26010处理器每片处理器包含4个核心,片上的4个核心通过片上网络互联,并通过PCI-E 3.0对外连接,每个核心拥有独立的128位DDR3控制器连接到8GB DDR3-2133内存,这样4个核心一共拥有32GB的DDR3内存。
从这里可以看出SW26010实际上类似于用胶水把4个独立的处理器粘在了一起,整合到了一个芯片里面,但是每个核心还是可以独立工作,而且拥有独立的128bit 8GB内存。这样单个核心的内存带宽达到了34GB/s,整个处理器达到了136GB/s,这样设计最大的好处就是每个核心的带宽是完全独享的,缺点是空闲核心的带宽无法共享给其他核心。
其中每个核心包含一个主处理器(MPE)和一个8*8的计算单元阵列(CPEs),主处理器是一个64位的RISC架构核心,用来跑操作系统,并且支持264位的矢量指令集,拥有32KB的L1指令缓存和32KB的L1数据缓存(总共64KB L1 cache),和256KB L2 Cache,应该说这样的缓存配置并不算大,应该是为了节约芯片面积考虑,4个核心的主处理器加起来一共有256KB L1 cache和1MB L2 cache。
计算单元阵列(CPEs)是一个由64个简化的62bit处理器(不是常见的64bit)组成,每个处理器只有16KB的L1指令缓存和64KB本地储存,没有L1数据缓存,并且和主处理器一样支持264位的矢量指令集,单片处理器拥有一共256个这样的计算单元。
于是加上4个主处理器,单片处理器一共拥有260个处理器核心。
神威·太湖之光的每个处理器卡有两片SW26010处理器,和一共64GB内存,长得像这样,每个处理器算一个计算节点,这样一块处理器卡和intel xeon phi协处理器卡类似,只是intel这样一块计算卡只有区区60个核心,而且不能独立工作,还需要另外购买一个独立的xeon主机作为管理处理器使用。而SW26010处理器集成了管理处理器,可以独立工作,并且单个处理器卡拥有高达520个处理器核心。
对比一下intel xeon phi计算系统的结构:
KNC Card就是一块intelXeon Phi协处理器卡,协处理器卡通过PCIE-X16和主处理器相连,其实看上去就像是一台PC上面插着好几块显卡。这样一台PC构成一个计算节点。
对比SW26010处理器的方案,单个节点来看,一块SW26010的核心数量和一台带有4块xeon phi计算卡的功能相当。Intel方案的麻烦在于,这样一个计算节点的功耗和体积远远大于SW26010,而且intel主处理器内存和协处理器卡的内存是分离的,需要先将要处理的数据通过PCI-E x16传输至计算卡内存,然后计算卡才能计算,最后将结果通过PCI-E x16读回主处理器,这样一来一回的性能损失很多时候远大于计算卡带来的好处。
SW26010的主处理器和协处理器的内存是共享的,这样无需来回从协处理器倒腾数据,而且可以实现类似AMD APU的统一内存寻址,大幅度提高了协处理器的使用效率,从这点来说SW26010的方案是优于intel方案的。
从单个核心对比来看,Intel的phi协处理器据说是基于最早的奔腾x86方案改进而成,多了一个512位的矢量处理器,而SW26010只有264位的矢量处理器,phi拥有32KB的L1指令缓存,32KB的L1数据缓存和512KB的L2 缓存,对比SW26010的协处理器只有16KB的L1指令缓存和64KB的本地存储,而且intel的phi核心可以支持4个物理线程,也就是超线程技术,单纯从技术来讲,intel的phi处理器拿出来单挑应该可以吊打单独的SW26010的计算核心。
理论性能可以看出,单个intel的phi处理器是高于SW26010的计算核心,得益于超宽的512位矢量处理器(VPU),intel phi上的处理器每个时钟可以执行16个单精度运算或8个双精度计算,而SW26010上的计算核心只有一半的宽度,所以最多也就8个单精度和4个双精度,不过SW26010的核心频率是1.45GHz,要比intel phi的1.3GHz稍高,但是这样也很难追平intel的单个核心的理论性能优势。
但是光比理论峰值性能是没有什么意义的,SW26010的VPU虽然比intel phi的宽度小,但是264bit的宽度而不是256bit的宽度可以提供比intel的单双精度浮点更高的计算精度,单精度浮点可以比intel的高一倍,而双精度可以高4倍,这在科学计算中是能够获得更大的优势,而且intel的512bit宽度的矢量运算需要更多的数据来填饱它,加上需要用PCI-E传输数据的瓶颈,大部分时候也只能挨饿,而SW26010可以直接访问主存,因此在实际使用效率上不见得就会比intel phi低多少,并且某些应用场合甚至可能大幅度超过intel。