中文

Scorch:稀疏深度学习库

机器学习 2024-06-21 v2 人工智能 数学软件 编程语言

摘要

深度学习模型的规模快速增长,导致传统稠密计算范式的能力受到挑战。利用稀疏计算进行训练和部署大规模模型日益流行,但现有深度学习框架缺乏对稀疏操作的广泛支持。为弥合这一差距,我们介绍 Scorch——一个无缝集成高效稀疏张量计算到 PyTorch 生态系统的库,初期聚焦 CPU 上的推理工作负载。Scorch 提供灵活直观的稀疏张量接口,支持多种稀疏数据结构。Scorch 引入的编译堆栈自动执行关键优化,包括自动循环排序、分块和格式推断。结合能够适应稠密和稀疏数据的运行时,Scorch 在不牺牲可用性的前提下,为手写的 PyTorch Sparse(torch.sparse)操作提供显著的加速。更重要的是,Scorch 使能够高效计算缺乏手工优化 PyTorch 实现的复杂稀疏操作。这种灵活性对于探索新型稀疏架构至关重要。我们在多个领域的多样深度学习模型上展示了 Scorch 的易用性和性能提升。通过最小的代码更改,Scorch 在端到端任务上实现 1.05-5.78 倍的加速。Scorch 的无缝集成和性能提升使其成为 PyTorch 生态系统宝贵的补充。我们相信 Scorch 将促进稀疏性作为扩大深度学习规模的工具的更广泛探索,并为其他稀疏库的开发提供指导。

关键词

引用

@article{arxiv.2405.16883,
  title  = {Scorch: A Library for Sparse Deep Learning},
  author = {Bobby Yan and Alexander J. Root and Trevor Gale and David Broman and Fredrik Kjolstad},
  journal= {arXiv preprint arXiv:2405.16883},
  year   = {2024}
}

备注

25 pages, 8 figures