数据与分析 ✓ NVIDIA · 官方 hdf5cupynumericlegateparallel-ioh5pygpudirect-storage

cuPyNumeric 并行 HDF5 I/O

让分布式 cuPyNumeric 数组高效读写单文件 HDF5。

FollowSkills 评估 · FSRS-2.0
谨慎使用
62/ 100 五分制 3.1 / 5
信任安全18 / 25 · 3.6/5

技能明确限定为单文件 HDF5 I/O,披露 h5py、Legate、GDS/cuFile 依赖,并警告异步写入、同一路径和 to_file 覆盖风险;但没有要求用户确认覆盖、提供回滚/备份方案,也缺少敏感数据处理和更细的数据流权限说明,因此扣分。

可靠稳定9 / 20 · 2.3/5

API、版本迁移、参数约束、常见错误和故障排查较完整,且附有往返与批量读取脚本及评估报告;但本次仅静态阅读,脚本未执行,GPU/GDS、多节点和边界行为的可复现性与失败反馈仍有限,因此按静态上限保守扣分。

适用触发12 / 15 · 4.0/5

触发条件、非适用场景、输入输出和纯 h5py/Parquet/Zarr/NPZ/原始二进制的分流较清晰;但未提供中文使用说明或中文示例,环境适配范围和大陆网络可达性证据有限,因此扣分。

规范维护11 / 15 · 3.7/5

文档结构清楚,包含安装、API、示例、限制、故障排查、版本信息、作者、许可证、上游和文档链接;但描述过长,缺少明确 changelog、长期维护责任和更新流程,且许可证元数据为 NOASSERTION 与文件内声明不完全一致,因此扣分。

有效结果7 / 15 · 2.3/5

技能覆盖保存、读取、批量读取、GPU I/O 和故障场景,示例输出可直接使用,提交的评估报告显示正向任务表现良好;但静态审查不能确认当前依赖版本和所有关键路径实际可用,且大规模性能收益缺少可核验基线,因此按静态上限计分。

证据核验5 / 10 · 2.5/5

存在 API/上游/文档引用、提交的测试脚本、评估任务和 NVSkills-Eval 报告,提供了一定审计线索;但没有本次独立执行,也缺少 CI 工作流或多源独立复核,故按静态上限计分。

证据充分度: 评估于 2026年7月20日 审查版本 55f18499943e
使用前请注意
  • to_file 会覆盖已有目标文件;生产使用前应由用户确认路径并自行实施备份或回滚。
  • GPU 大数据读取依赖特定 Legate、GDS/cuFile、驱动和硬件组合;文档中的强制性 GDS 建议应在目标环境中验证。
  • h5py、cuPyNumeric、Legate 版本兼容性和多节点共享文件系统行为未在本次审查中执行验证。
  • 文档主要为英文,未证明中文错误信息、示例或大陆网络环境下的文档可达性。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

该技能指导开发者使用 Legate 的并行 HDF5 I/O,将 cuPyNumeric 数组写入或读取为单个 HDF5 文件。它支持完整数据集读取、分块读取,以及通过 GPUDirect Storage 将大型数据直接读入 GPU。技能要求 cuPyNumeric、Legate 26.01 或更高版本和 h5py。它适合 HPC 和多 GPU 数据管线,但不覆盖 Zarr、Parquet、原始二进制或纯数组计算。

调用 legate.io.hdf5 的 to_file 将 cuPyNumeric 数组或 LogicalArray 写入 HDF5 虚拟数据集;调用 from_file 将单个 HDF5 数据集读取为分布式 LogicalArray;调用 from_file_batched 按指定 chunk_size 分块读取并返回各块及其全局偏移;使用 cn.asarray 将 LogicalArray 转回 cuPyNumeric 数组;在外部读取器访问异步写入结果前,通过 Legate execution fence 等待写入完成;GPU 读取时配置 LEGATE_IO_USE_VFD_GDS=1。

  1. HPC 开发者需要让多进程或多 GPU 将大型 cuPyNumeric 数组写入一个共享的 .h5 或 .hdf5 文件。
  2. 数据工程师需要把 HDF5 中的单个数据集加载为分布式 cuPyNumeric 数组。
  3. 内存受限的科学计算流程需要分块读取大型 HDF5 文件,再按实际块形状组装结果。
  4. GPU 数据管线需要将大型 HDF5 数据集读入 GPU,并通过 GDS VFD 避免约 128 MB ZCMEM 暂存限制。
  5. HPC 后处理流程要求上游程序产出单个 HDF5 文件,而不是每个进程各写一个文件。

这个 Skill 有哪些优点和局限?

优点
  • 每个 rank 并行读写自己的数据块,同时呈现为单个 HDF5 数据集。
  • 支持完整读取、分块读取和 LogicalArray 到 cuPyNumeric 的 cn.asarray 桥接。
  • 为大型 GPU 读取提供 GDS VFD 路径,可避免默认约 128 MB ZCMEM 暂存限制。
  • 技能正文包含 API 签名、边界条件、故障排查和可选验证脚本。
局限
  • 仅支持单文件 HDF5;不负责 Parquet、Arrow/cuDF、原始二进制、Zarr、S3、npz 或 pickle。
  • 必须显式安装 h5py,否则导入 legate.io.hdf5 会失败。
  • to_file 会覆盖已有目标文件,且写入是异步的;外部读取前必须正确 fence。
  • GPU 读取需要额外配置 GDS VFD、cuFile,并处理兼容模式。
  • 源材料未提供平台覆盖范围、性能基准数值或独立测试套件证据。

如何安装这个 Skill?

使用仓库 README 支持的 skills CLI 安装指定技能:npx skills add nvidia/skills --skill cupynumeric-hdf5 --yes。随后安装必需的 h5py:conda install -c conda-forge h5py。源材料未说明 cuPyNumeric 和 Legate 的具体安装步骤;它只要求 Legate 26.01 或更高版本。

如何使用这个 Skill?

可向已加载技能的代理提出:“用 cuPyNumeric 和 Legate 将大型数组并行写入 out.h5,并在外部读取前正确 fence。”核心调用是 from legate.io.hdf5 import to_file, from_file, from_file_batched;将数组直接传给 to_file(array=a, path="out.h5", dataset_name="/data"),读取时用 cn.asarray(from_file("out.h5", "/data"))。to_file 和 from_file 必须在所有 rank 使用相同路径;to_file 后若要用 h5py 或其他外部工具读取,先调用 get_legate_runtime().issue_execution_fence(block=True)。GPU 读取前设置 LEGATE_IO_USE_VFD_GDS=1,并从 cuPyNumeric 源码树之外运行程序。

这个 Skill 与同类方案有什么区别?

与直接使用 h5py 相比,该技能面向 cuPyNumeric/Legate 的分布式数组和并行 I/O,而不是普通单进程 HDF5 读取。与 Zarr 相比,它针对单文件 HDF5,不覆盖分块对象存储或 S3 输出。与 Parquet/cuDF、原始二进制和 npz/pickle 相比,它不提供这些格式的读写路径。

常见问题

这个技能是否需要付费服务或特殊权限?
源材料没有提到服务费用或特殊账户权限;它要求本地安装 cuPyNumeric、Legate 和 h5py,并具备相应文件系统访问能力。
为什么 h5py 看到的文件为空或被截断?
to_file 只会异步排队写入。调用外部读取器前,使用 get_legate_runtime().issue_execution_fence(block=True) 等待写入完成。
from_file 返回 LogicalArray 是错误吗?
不是。这是预期行为;使用 cn.asarray(...) 将其桥接为 cuPyNumeric ndarray。
它能处理任意 HDF5 路径吗?
dataset_name 必须指向文件中的单个数组数据集,例如 /data 或 /group/x,不能直接传入组。

同仓库的其他 Skills

均来自 NVIDIA/skills

数据与分析 ✓ NVIDIA · 官方

cuPyNumeric 分片并行加载

为分片磁盘数据构建按处理器并行的 cuPyNumeric 加载路径。

开发与工程 ✓ NVIDIA · 官方

cuPyNumeric 安装助手

指导在受支持环境中安装并验证 cuPyNumeric。

开发与工程 ✓ NVIDIA · 官方

cuPyNumeric 迁移就绪度评估

在投入大规模移植工作前,判断 NumPy 代码能否在 GPU 和多 GPU 环境中有效扩展。

数据与分析 ✓ NVIDIA · 官方

I4H 模拟数据集扩增

通过加入动作和状态噪声,从现有 HDF5 录制数据复制轨迹并扩增数据集。

开发与工程 ✓ NVIDIA · 官方

Isaac for Healthcare 工作流验证

运行策略或状态机控制器并将验证回合记录到 HDF5。

开发与工程 ✓ NVIDIA · 官方

Isaac for Healthcare 数据集回放

在 Isaac Sim 中回放 HDF5 轨迹,检查机器人演示的视觉正确性。

数据与分析 ✓ NVIDIA · 官方

I4H 遥操作数据集录制

通过键盘、SO-ARM 主臂或 VR 遥操作,将人类示范录制为 HDF5 数据集。

数据与分析 ✓ NVIDIA · 官方

i4H 数据集标注工作流

使用视觉语言模型验证轨迹是否完成任务,并筛选可用于微调的数据。

数据与分析 ✓ NVIDIA · 官方

I4H 数据集转换器

将 Isaac for Healthcare 的 HDF5 录制转换为可用于训练的 LeRobot 数据集。

开发与工程 ✓ NVIDIA · 官方

DOCA Common 基础编程技能

为 BlueField 和 ConnectX DOCA 应用提供通用编程基础。

开发与工程 ✓ NVIDIA · 官方

DOCA Ethernet 队列开发技能

为 BlueField 与 ConnectX 开发和调试 DOCA Ethernet 收发队列。

开发与工程 ✓ NVIDIA · 官方

DOCA GPUNetIO 开发技能

指导开发者将 NVIDIA GPU 上的 CUDA 内核连接到 DOCA 网络队列,实现 GPU 侧收发包与调试。

开发与工程 ✓ NVIDIA · 官方

DOCA STA 存储目标加速

帮助开发者在 BlueField 上构建并调试 RDMA NVMe-oF 存储目标。

自动化与运维 ✓ NVIDIA · 官方

TAO SLURM 集群运行

通过 SSH、SLURM 和 Pyxis/Enroot 在远程 GPU 集群上运行 TAO 作业。

开发与工程 ✓ NVIDIA · 官方

TAO 平台执行 SDK

在多种 GPU 平台上提交、监控并管理 NVIDIA TAO 训练任务。

开发与工程 ✓ NVIDIA · 官方

NeMo MBridge MoE 性能优化工作流

系统化定位并优化 Megatron Bridge 中 MoE 训练吞吐瓶颈。

自动化与运维 ✓ NVIDIA · 官方

VIOS 视频输入输出与存储管理

通过 VIOS REST API 管理传感器、视频流、录制、快照和视频存储。

开发与工程 ✓ NVIDIA · 官方

DOCA GPI GPU 直驱 RDMA 技能

指导 CUDA 内核绕过主机 CPU,直接从 GPU 内存驱动 RDMA 队列。

开发与工程 ✓ NVIDIA · 官方

NeMo MBridge 分层上下文并行

帮助在 Megatron-Bridge 中启用、排查并验证分层上下文并行。

自动化与运维 ✓ NVIDIA · 官方

TAO Brev GPU 运行技能

在 Brev GPU 实例上运行和管理 TAO 训练、评估与推理任务。

相关 Skills