数据科学

NVIDIA cuPyNumeric 25.03 现已完全开源,支持 PIP 和 HDF5

NVIDIA cuPyNumeric 是一个库,旨在为基于 Legate 框架构建的 NumPy 提供分布式和加速的插入式替换。它为多 GPU 和多节点 (MGMN) 加速计算带来了零代码更改扩展。

cuPyNumeric 25.03 是一次里程碑式的更新,为用户和开发者引入了强大的新功能,并增强了可访问性,详情请参阅本文。

全栈现已开源

“借助 cuPyNumeric 25.03,NVIDIA 在 Apache 2 许可证下开源了支持 cuPyNumeric 的 Legate 框架和运行时层。现在,cuPyNumeric 的整个堆栈均在 Apache 2 许可证下提供。此举符合 NVIDIA 对透明度、再现性和协作性的承诺。贡献者现在可以毫无障碍地探索、审核、贡献和扩展系统的任何组件。”

PIP 安装支持

cuPyNumeric 从一开始就支持通过 conda 进行安装。现在,用户也可以使用以下简单命令通过 pip 进行安装:

pip install nvidia-cupynumeric

这可显著简化设置,从而轻松将 cuPyNumeric 集成到您的工作流、虚拟环境和 CI 流水线中。除 MPI 外,所有主要依赖项均可通过 PyPI 捆绑或轻松解析。

与 OpenMPI 和 UCX 一起,PyPI 上的 cuPyNumeric 软件包支持多节点和多秩。它使开发者不仅可以在具有多个 GPU 的单个节点中使用 cuPyNumeric,还可以在多 GPU 多节点集群中使用 cuPyNumeric。

安装示例

以下各节将概述使用 PyPI wheel 包在 SLURM 集群上安装和运行 cuPyNumeric 的示例。

第 1 步:环境设置

登录集群后,加载包括 CUDA 和 MPI 在内的基本环境模块。这些是在多节点或多秩环境中执行 cuPyNumeric 所需的依赖包。如果集群上不可用,请手动安装,或联系系统管理员请求安装。

module purge # clear existing modules
module load cuda # CUDA toolkit
module load openmpi # Open MPI

接下来,创建并激活虚拟环境 (推荐) 。如果您想将软件包安装到当前的 Python 环境中,则无需执行此操作。

python -m venv legate
source legate/bin/activate

第 2 步:安装软件包

使用 pip 安装 cuPyNumeric 和 Legate:

pip install legate nvidia-cupynumeric

第 3 步:运行应用程序

使用 srun 分配交互式 compute nodes:

srun -p partition-name \    # Request a partition
     -N 2 \                 # 2 compute nodes
     --gres=gpu:8 \         # 8 GPU per node
     --time=00:30:00 \      # 30-minute time limit
     --pty bash             # Start interactive shell

然后运行 cuPyNumeric 程序:

legate --gpus 8 \              # GPUs per process
       --ranks-per-node 1 \    # Processes per node
       --nodes 2 \             # Total nodes (matches -N)
       --launcher mpirun \     # launch with MPI
       ./prog.py

还支持使用 SLURM 批量作业提交运行:

#!/bin/bash
#SBATCH --job-name=cupynumeric
#SBATCH --nodes=2
#SBATCH --gres=gpu:8
#SBATCH --time=00:30:00

module load cuda openmpi
source legate/bin/activate

legate --gpus 8 \
       --ranks-per-node 1 \
       --nodes ${SLURM_NNODES} \
       --launcher mpirun \
       ./prog.py

有关更多信息,请参阅 cuPyNumeric 25.03 安装指南

原生 HDF5 IO 支持

cuPyNumeric 25.03 通过 GPU Direct Storage 原生支持 HDF5,可高效处理大型数据集,并与科学计算环境实现无缝互操作。借助 HDF5,您现在可以使用紧凑、便携、高性能的格式将复杂的数据结构保存到磁盘,并且性能出色。

from legate.core.io.hdf5 import from_file
import cupynumeric as np

x = from_file("data.h5", dataset_name="x")
y = from_file("data.h5", dataset_name="y")
xx = np.asarray(x)
yy = np.asarray(y)
a = 8675.309

yy[:] = a * xx + yy

此功能对于 IO 效率至关重要的高性能计算和数据密集型应用程序尤为有用。

开始使用

NVIDIA cuPyNumeric 25.03 增强了 cuPyNumeric 在研究和生产环境中的基础。 如需了解 25.03 版本中的更多新特性和功能,请参阅版本说明 。团队对不断壮大的社区心存感激,并欢迎您为未来的版本提供反馈、贡献和想法。通过将问题直接提交到 nv-legate/cupynumeric GitHub 存储库,加入对话。

 

标签