Quantaichi:GPU上量化(“低精度”)模拟的编译器

2021-05-14 09:16:29

高分辨率模拟可以提供很大的视觉质量,但它们通常受到可用内存的限制,特别是在GPU上。我们通过启用灵活和积极的量化,提供了一个用于物理仿真的编译器,可以实现高性能并显着降低内存成本。使用低精度(“量化”)数值数据类型并打包以表示模拟状态,从而降低了内存空间和带宽消耗。量化仿真允许更高的存储器模拟,内存较少,这对GPU特别有吸引力。实现具有高性能的量化模拟器,并将数据紧密地用于积极存储减少,这将是使用传统编程语言的极其劳动密集型。为了创建量化模拟实用,我们开发了一组新的语言抽象和编译系统。尽管编码解码包装量化数据类型的开销,但是一套定制的域特定优化可确保量化的模拟器经常像全精密模拟器一样快速运行。我们的编程语言和编译器基于Taichi,允许开发人员轻松地在不同的全精密和量化的模拟器之间切换,探讨量化方案的完整设计空间,最终在空间和精度之间实现良好的平衡。在记忆消耗和性能方面,我们的系统创建量化模拟具有很大的好处。例如,在单个GPU上,我们可以模拟使用20亿个细胞的生命游戏(每像素的8倍),欧拉流体系统,具有42100万活性体素(每个voxel的1.6倍压缩),以及混合欧莱尼尔 - 拉格朗日弹性对象模拟,具有2.35亿颗粒(每次粒子1.7×压缩)。同时,量化模拟会产生物理合理的结果。我们的量化技术与物理仿真的现有加速度互补方法是互补的:它们可以与这些现有方法组合使用,例如稀疏数据结构,以实现更高的可扩展性和性能。