机器人与边缘 AI

NVIDIA Warp:用 Python 编写 CPU 与 GPU 仿真内核

NVIDIA/warp

把带类型的 Python 函数编译为计算内核,提供几何、物理仿真和可微计算能力,可接入机器学习流程。

★ 7.1K星级
⑂ 621Fork 数
242未解决的问题
Python语言
Apache-2.0许可证
Q92编辑评分

概览

Warp 让开发者用接近 Python 的方式编写并行计算内核,再通过即时编译在 CPU 或受支持的 NVIDIA GPU 上执行。它提供向量、矩阵、几何查询和仿真相关组件,并支持把可微计算接入 PyTorch、JAX 等流程。适合需要自定义粒子、几何或优化计算的团队,将一个可测量的计算热点提取成内核,再比较结果正确性和性能。

主要功能

  • Python 内核即时编译。
  • 支持 CPU 与 CUDA 执行设备。
  • 内建向量、矩阵和几何计算类型。
  • 支持可微内核与机器学习集成。
  • 包含物理、几何、优化与有限元示例。
  • 提供示例浏览器及部分 USD 动画输出。

要求、安装和快速入门

1. 准备 Python 3.10 或更新版本。
2. 执行 pip install warp-lang,注意包名是 warp-lang。
3. 需要完整示例依赖时安装 pip install "warp-lang[examples]"。
4. 运行 python -m warp.examples.browse 浏览示例。
5. 参考 README 使用 @wp.kernel 定义内核、wp.array 建立数组、wp.launch 启动并行计算。
6. 先用小规模输入校验数值结果,再扩大数据量并测量性能。

用法

例如实现粒子受力更新,可把位置与速度存入数组,让每个线程处理一个粒子,分多步调用内核推进状态。先与简单参考实现比较数值,再测量批量运行耗时。若把仿真用于参数拟合,可进一步研究自动微分与优化示例,明确哪些操作在目标流程中支持梯度。

实施要点
首次执行可能包含编译开销,计时需区分预热与稳定运行。数组在主机和设备间复制也有成本,频繁回传数据可能抵消并行计算收益。任意 Python 代码不能直接作为 Warp 内核运行,应遵循其类型与编译规则。

模型兼容性与使用场景

官方轮子覆盖 Windows x86-64、Linux x86-64/AArch64 和 Apple Silicon macOS。Windows 与 Linux 的 CUDA 加速需要兼容 NVIDIA GPU 与驱动;macOS 轮子支持 CPU,不提供 Metal 加速。

许可证与风险说明

Warp 主体采用 Apache-2.0;某些构建依赖和附带组件有单独条款,分发时应核对仓库 licenses 目录。

mediapipe

google-ai-edge/mediapipe

★ 36.9KC++

cosmos

NVIDIA/cosmos

★ 11.2KJupyter Notebook