专栏名称: NVIDIA企业开发者社区
NVIDIA 英伟达开发者社区是NVIDIA GPU开发者交流平台,通过此平台可第一时间获取NVIDIA GPU 开发相关的新产品、新工具、线上/线下活动的资讯。
目录
相关文章推荐
安徽工信  ·  力争突破2.8万亿元!安徽重要发布 ·  20 小时前  
上下五千年故事  ·  口腔的清道夫,牙齿的保护神——中药牙粉,改善 ... ·  2 天前  
大众新闻-大众日报  ·  12.9亿打卡!这届博物馆玩得真花 ·  2 天前  
大众新闻-大众日报  ·  12.9亿打卡!这届博物馆玩得真花 ·  2 天前  
51好读  ›  专栏  ›  NVIDIA企业开发者社区

开发者新闻 | cuTENSOR 2.0 : 用于加速张量计算的全面指南

NVIDIA企业开发者社区  · 公众号  ·  · 2024-03-22 09:38

正文


cuTENSOR 2.0 : 用于加速张量计算的全面指南


NVIDIA cuTENSOR 是一个 CUDA 数学库,提供经过优化的张量运算。张量是一种密集的多维数组或数组片段。cuTENSOR 2.0 的发布代表着功能和性能方面的重大更新,这一版本重构了其 API,使其更富有表现力,包括在 NVIDIA Ampere 和 NVIDIA Hopper GPU 架构上实现的出色性能。

本文介绍了 cuTENSOR 2.0 库,以及如何使用其运算。有关更多信息,请参阅系列中的下一篇文章 cuTENSOR 2.0 : 性能和应用。


虽然张量运算看起来很陌生,但它们描述了许多自然发生的算法。尤其是,这些运算在机器学习和量子化学中十分常见。


如果您已经使用 NVIDIA cuBLAS 或 BLAS,cuTENSOR 提供的三个例程可能会让您感到眼前一亮:

元素式 API 对应于 1 级 BLAS ( 向量-向量运算 )

归约 API 对应于 2 级 BLAS ( 矩阵-向量运算 )

收缩 API 对应于 3 级 B LAS ( 矩阵-矩阵运算 )


主要区别在于,cuTENSOR 可将这些运算扩展到多维度。cuTENSOR 使您无需担心这些运算的性能优化,而是可以依靠现成的加速例程。


cuTENSOR 的优势和进步不仅可以通过您的 CUDA 代码使用,而且还可以通过其他许多工具使用,这些工具目前均已提供对 cuTENSOR 的支持。


Fortran 开发者可以从 NVIDIA HPC SDK 中提供的 cuTENSOR Fortran API 绑定中受益,NVFORTRAN。


Python 开发者可以通过 CuPy 访问 cuTENSOR 中提供的 NVIDIA GPU 加速的张量收缩、归约和元素计算。


cuTENSOR 也可用于 Julia 开发者使用的 Julia Lang。


借助 cuTENSOR 加速的程序数量不断增加。我们还提供使用 TensorFlow 和 PyTorch 在 C++ 和 Python 中入门的示例代码。


在本文中,我们讨论了 cuTENSOR 支持的各种操作,以及如何作为 CUDA 编程人员利用这些操作。我们还分享了性能注意事项和其他有用的提示和技巧。最后,我们分享了我们使用的示例代码,这些代码也可以在 /NVIDIA/CUDALibrarySamples GitHub 资源库中找到。




全文链接:

https://developer.nvidia.com/blog/cutensor-2-0-a-comprehensive-guide-for-accelerating-tensor-computations/


WholeGraph 存储:优化图形神经网络的内存和检索



图形神经网络 (GNN) 彻底改变了图形结构数据的机器学习。与传统神经网络不同,GNN 擅长捕捉图形中的复杂关系,为从社交网络到化学领域的应用程序提供动力支持。在节点分类和边链预测等场景中,GNN 可预测图形节点的标签,并决定节点之间的边是否存在。


在单个前向或反向通道中处理大型图形会非常耗费计算资源和内存。


大规模 GNN 训练的工作流通常从子图形采样开始,以便使用 mini-batch 训练。这包括收集特征,以便在子图形中捕捉所需的上下文信息。随后,提取的特征和子图形将用于神经网络训练。在这一阶段,GNN 能够整合信息并实现节点知识的迭代传播。


但是,处理大型图形会带来挑战。在社交网络或个性化推荐等场景中,图形可能包含大量节点和边缘,每个节点都携带大量特征数据。






请到「今天看啥」查看全文