GPGPU (General Purpose GPU) 称为GPU通用计算。几十年来,计算机CPU芯片一直按照摩尔定律飞速发展,每隔十八个月,单位芯片面积上的晶体管数量就增加一倍,性能提高一倍。靠提高主频来提升性能的路线在21世纪初走到了尽头,CPU存在严重的内存墙和功耗墙。内存延时长、频率低导致缓存面积越来越大,逻辑控制越来越复杂。缓存消耗了70%以上的芯片面积,同时也消耗了70%以上的电能,真正有效的运算部件面积比重很小。芯片上的晶体管密度越来越大,使得单位面积上功耗持续增加,散热问题日益严重。
提高主频难以为继,CPU进入多核时代,在一个封装内放置多个频率较低的核心。虽然单个核心的性能有所下降,但整体性能有很大提升。多核CPU由双核发展到四核、八核、十六核。随着核心数的增加,核心间的通信、协作开销增大,整体性能没有随着核心数量线性长,缓存的面积也没有降低,内存墙依然存在。
GPU计算是指利用图形卡来进行一般意义上的计算,而不是传统意义上的图形绘制。时至今日,GPU已发展成为一种高度并行化、多线程、多核的处理器,具有杰出的计算功率和极高的存储器带宽。
GPU的优越性能来自特殊的体系结构。为将绝大部分晶体管用于运算器,而非浪费在缓存和逻辑单元上,GPU采用了多种有效措施。将核心频率降低到显存频率以下,解决数据需求、供应速度不匹配的问题;采用极轻量线程,用大量线程的快速切换来隐藏存储器延时;简化核心,同一个逻辑单元控制多个核心,减少了逻辑单元面积。
目前,各行业主流软件竞相采用通用GPU加速。如分子动力学软件Amber, DL-POLY, Gromacs, LAMMPS, NAMD; 量子化学软件GAMESS-US, TeraChem; 材料科学软件VASP, PWscf;计算流体力学软件FEFLO;计算结构力学软件ANSYS; 电子设计模拟软件CST Microwave Studio; 数值计算软件Jacket, Mathematica, MATLAB; 已经支持GPU加速的知名软件数以百计,而且在快速增加。
GPU加速的特点在于:擅长大规模并行数值运算,逻辑判断、分支跳转会导致性能急剧下降;适合在相对少量数据上做大量计算,否则数据在主机-设备间的传输开销会抵消GPU加速带来的收益;运算规模大、并行度高,线程数量最少5000;最新的GPU卡需要PCIe3.0接口,老旧的PCIe2.0会使数据传输成为瓶颈;不同节点上的GPU通信需要高速互连网络;很多应用软件目前不能在一个节点上使用多个GPU加速卡,不同节点上的GPU不通信;自编软件可以在同一个节点上使用多个GPU,最大数量与CPU核心数相同;多颗GPU通过MPI技术共同完成一个大任务时,若GPU数量超过8,性能不再有明显提升。
鉴于GPU通用计算的特点,曙光推荐以下GPGPU高性能计算解决方案:
A:使用CST Microwave Studio等软件加速本节点计算时,可配置大规模集群,计算节点采用灵活的1U机架服务器,如I6100-G15. 在散热良好的情况下,单节点配置两颗Tesla M2090; 网络采用高带宽低延时的InfiniBand FDR 56Gbps网络设备,以保证并行扩展性;存储可采用高性价比的盘阵方案(小规模集群),也可以采用高性能的并行文件系统,如果曙光paraStore200并行文件系统;由于GPU功耗大,基础设施采用水平送风、高效制冷的曙光C3000机柜系统。
B:若GPU承担应用软件的主要计算量,且应用软件支持单节点多GPU,计算节点推荐配置具有极高密度的曙光TC4600刀片,5U空间内包含八颗GPU。网络及存储系统同A。
C:自编GPU软件:几乎所有计算都在GPU上完成,需要在同一节点内使用尽可能多的GPU. 推荐配置曙光W580I机塔互换式服务器,4U空间内包含四颗GPU;互联网络采用InfiniBand FDR 56Gpbs设备。