优化卷积神经网络在Sunway TaihuLight Supercomputer

Optimizing Convolutional Neural Networks on the Sunway TaihuLight Supercomputer
文中是对之前的一篇论文进行拓展,主要的工作包含有

  1. 我们提出了一个更系统的算法设计和优化过程,包括与本地指令内存使用、寄存器通信和指令流水线相关的方法,包括一个改进的性能模型和一个基于以前工作的新的寄存器阻塞策略。
  2. 提出了支持单精度的算法设计和优化方法在SW2016上。
  3. 我们为swDNN库提供了四核组并行化,以支持不同的CNN层。
  4. 我们提出了swCaffe,一个优化的Caffe框架,可以支持高效的CNN训练过程在Sunway TaihuLight SuperComputer
  5. 我们提出了具有浮点和双精度的算法和框架评估,用于训练实际的CNN模型,以提供更全面的性能结果。

介绍
  CNN模型的成功,而且其的计算量非常大,已经成为了HPC领域的研究热点。GPU的出现也为加速CNN模型的训练做了非常大的贡献。
然而对于Sunway 超级计算机是最近排名第一的计算,其具有着很多的优点为:例如用户控制的本地指令存储器(LDM)、硬件支持的寄存器级数据共享以及由所有处理元件共享的统一存储空间。介绍了对用的SW2016的架构:

内容是:SW2016架构包含有许多的核处理器,由四个CGs组成,(core-groups)每一个CGs包含有65个核,一个管理处理元素(MPE)和64个计算处理元素(CPE),按照8X8的方式进行组织的,两者都是64位的精简指令类型,但是在计算的时候各自的角色不同。文中对于硬件的条件进行详细的介绍和分析!具体如下:

超级计算机的架构信息

  • MPE有一个32KB的L1指令缓存、一个32KB的L1数据缓存和一个256KB的L2缓存,支持完整的中断功能、内存管理、超标量和无序指令发布/执行。
  • CPE旨在最大化聚合计算吞吐量,同时最小化微体系结构的复杂性。每个CPE都有一个16KB的L1指令缓存和一个64KB的LDM指令缓存。LDM可以被认为是一个用户控制的快速缓冲区,它允许为不同的实现协调内存使用策略,因此LDM级优化是提高计算吞吐量的重要方法之一。
  • 一个CPE有32个向量寄存器(256位)和两个执行流水线(P0和P1)。P0支持浮点和整数的标量和矢量化计算操作,而P1支持标量和矢量化数据加载/存储、比较、跳转操作和标量整数操作。双管道为数据访问的重叠和计算操作复用提供了机会,因此,寄存器级和指令级优化对性能也很重要。在8 × 8 CPE网格内,有一个控制网络、一个数据传输网络(将CPE连接到内存接口)、八条列通信总线和八条行通信总线。每个CPE有两个1,024位发送缓冲区和两个1,024位接收缓冲区,分别用于列和行通信。通信总线和缓冲器支持同一列和同一行的处理器之间的快速寄存器级数据通信,在处理器网格内提供重要的数据共享和协作能力。
  • 在指令集中,有定制的加载/存储指令来支持非阻塞模式下的矢量化数据访问和数据共享。例如,vldr指令首先将256位数据加载到向量寄存器中,然后执行行广播;vlddec指令首先将64位数据载入标量寄存器,然后扩展(复制)数据以填充矢量寄存器,最后执行列广播。基于这些指令,可以实现高效的数据访问和寄存器通信。
  • 每个CG连接到一个内存控制器(MC),通过该控制器,MPE和CPE网格可以访问和共享8GB的内存空间。一个MC的最大内存带宽是36GB/s。一个片上网络(NoC)连接四个CGs,因此一个CG的内存也可以共享给其他CGs。用户可以明确设置每个CG的私有内存空间的大小和共享内存空间的大小。通过片上网络,可以在没有内存数据复制的情况下实现四个片上网络之间的数据共享,这使得通信密集型问题能够实现高效的片上网络级并行。在共享模式下,四个CGs的最大内存带宽高达144GB/s。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值