HPL-AI测试正在利用针对AI的现代处理器的功能


在SC19会议之前的我们的HPC日活动中,超级计算专家和Linpack创建者Jack Dongarra谈到了他的新HPL-AI基准 。尽管名称如此,但HPL-AI并没有以某种方式使用AI来预测高性能Linpack(HPL) 。相反,HPL-AI测试正在利用针对AI的现代处理器的功能-特别是较低精度的浮点算术功能-来加速HPL核心的线性代数 。
Dongarra对HPC Day人群说:“认识到今天生产的硬件不仅能够执行64位操作,不仅可以执行32位操作,而且还可以执行16位操作,这是有动机的 。”
他指的是具有特定逻辑的处理器的行业趋势,该逻辑可用于加速人工神经网络的训练和推理 。对于更通用的CPU,这可能仅限于在同一数学单元中支持较低精度的16位和32位浮点数和8位整数格式以及更标准的64位格式 。但是,在Nvidia的V100 GPU的情况下,有更多针对性的硬件可以使用这些精度较低的格式来支持张量数学,并且该逻辑可以在很大程度上加速神经网络计算 。
可以从较小的数据格式和自定义硬件中提取更好的性能 。较小的数据意味着这些值可以更快的速率在系统中传递(在16位值的情况下是64位值的四倍),并且可以在芯片内部更快地进行分配 。这些处理器中的某些处理器(例如V100)中存在的自定义AI硬件可提高速度 。
对于Nvidia的Tesla GV100 GPU(目前是该公司最快的计算引擎),专用的Tensor Cores能够提供多达130 teraflops的混合精度16位/ 32位计算 。这比处理器以64位提供的8.2 teraflops快15倍以上 。
正如Dongarra指出的那样,可以同时执行64位和32位浮点计算的芯片已经存在了一段时间,如果适用的话,它们可以为低精度算法提供两倍的加速(请考虑32-位地震处理) 。但是,由于增加了16位支持以及用于AI工作的专用单元,因此开辟了一些新的可能性 。
Dongarra说,随着诸如V100 GPU加速卡(使用GV100 GPU)之类的硬件所带来的降低精度数学的性能提升,现在有了更大的动力来“看东西能被推进多远” 。有很多HPC代码可以潜在地利用这种降低精度的性能 。这些应用程序包括气候建模和QCD等特定应用程序,以及使用多网格和稀疏矩阵计算的其他应用程序 。
对于依赖于64位数学运算的HPL和现实世界中的HPC代码,挑战在于使用较低的精度值提供相同的结果 。由于降低的精度和较小的数值范围很容易使这些计算误入歧途,因此需要程序员额外注意 。
Dongarra指出,对于IEEE 16位浮点,可以表示的最大值为65504 。如果您的值将超过该值(许多科学计算代码都这样做),则必须相应地缩放数据以避免溢出情况,这需要额外的计算开销 。另外,并非所有的计算都可以降低的精度执行 。有些计算必须使用64位的完整补码来完成 。
他和他的团队开发的算法技术使用了使用相同V100张量核心的混合精度迭代优化 。这些技术随后被封装在HPL-AI基准中,我们在6月进行了预览,并在去年发表的一篇论文中对其进行了详细说明 。
【HPL-AI测试正在利用针对AI的现代处理器的功能】

    推荐阅读