NVIDIA 将通用稀疏张量引入 nvmath-python - Blockchain.News

NVIDIA 将通用稀疏张量引入 nvmath-python

realtime news Apr 23, 2026 00:51

NVIDIA 将通用稀疏张量集成到 nvmath-python v0.9.0 中,通过零成本的 PyTorch 互操作性提升稀疏深度学习和科学计算。

NVIDIA 将通用稀疏张量引入 nvmath-python

NVIDIA 宣布将其通用稀疏张量(Universal Sparse Tensor,UST)框架整合到 nvmath-python v0.9.0 中,这是简化稀疏深度学习和科学计算的重要一步。UST 首次在早期的文章中被引入,其目标是将张量稀疏性与内存布局解耦,为开发者提供更大的灵活性和性能。此更新对从事稀疏数据格式的机器学习研究人员和开发者尤其相关,这些框架包括 PyTorchSciPyCuPy

为什么重要:稀疏数据是深度学习效率的基石,特别是在自然语言处理和推荐系统等领域。通过实现主要库和格式之间的零成本互操作性,UST 消除了通常阻碍性能的数据移动瓶颈。开发者现在可以在密集和稀疏格式之间(如 COO、CSR 和 CSC)进行转换,而无需数据复制,这得益于 UST 创新的直接引用原始存储缓冲区的方法。

通用稀疏张量的关键功能

nvmath-python 中的 UST 实现引入了几项前沿功能:

  • 零成本互操作性:在 PyTorch、SciPy、CuPy 和 NumPy 张量之间转换,无需数据移动。
  • 自定义稀疏格式:使用领域特定语言(DSL)定义新的稀疏方案,例如增量压缩格式。
  • 多态操作:执行如矩阵乘法等操作,自动分派到优化的内核,或生成自定义稀疏代码。
  • 轻松集成 PyTorch:通过自定义张量包装器和重新格式化工具,无需重写代码即可将 UST 的优势注入现有的 PyTorch 模型中。
  • 透明缓存:通过缓存的即时(JIT)规划减少运行时开销,非常适合重复计算,如迭代求解器。

工作原理

UST 的 DSL 允许开发者描述常见和自定义的稀疏存储格式。例如,可以使用简单的语法定义一个 CSC 格式,该语法映射了维度和压缩策略。这种灵活性延伸到运行时,支持动态构建和在稀疏计算中使用新格式。

与 PyTorch 的集成非常顺畅,为研究人员提供了在不更改现有模型代码的情况下注入 UST 功能的能力。例如,reformat_model() 函数允许用户对线性层的权重进行稀疏化,从而在推理期间提升性能。这一功能对于那些犹豫是否为稀疏优化大幅修改模型的 AI 研究人员来说可能是一个改变游戏规则的创新。

性能亮点

在基准测试中,UST 展现了显著的计算优势。在稀疏矩阵向量乘法(SpMV)中,与 CuPy 和 PyTorch 的原生实现相比,UST 实现了1.1 倍到 444 倍的速度提升。框架缓存规划阶段的能力也降低了重复操作的执行时间,这在涉及剪枝模型或迭代求解器的深度学习工作流中特别有价值。

另一个突出的例子是将增量压缩的 MACKO 格式集成到 SpMV 操作中。在测试不同稀疏级别的矩阵时,基于 UST 的实现表现优于密集和传统稀疏格式,证明了其在处理多样化工作负载时的适应性和效率。

对开发者的意义

UST 处理标准和自定义稀疏格式的能力使其成为深度学习社区的多功能工具。通过减少使用稀疏张量的复杂性,NVIDIA 为稀疏方法在 AI 研究和部署中的更广泛采用奠定了基础。与 PyTorch 和其他库的无缝互操作性也降低了实验高级稀疏技术的门槛。

有关 UST 功能和实现的详细分解,NVIDIA 提供了丰富的文档。随着稀疏计算在 AI 和科学领域中持续受到关注,像 UST 这样的工具将在推动性能和可扩展性的边界方面发挥越来越重要的作用。

Image source: Shutterstock