Warp性能评估Skill warp-eval

本技能用于评估现有代码库中的热路径/瓶颈接缝是否为 NVIDIA Warp GPU 加速的合适候选。它通过静态代码阅读、硬性门限筛选(Gate A–F)、性能/内存边界分析和(授权后)最小 Warp 原型基准测试,收集可复现证据并生成标准化评估报告,辅助用户决策。适用于 GPU 可行性分析、数值模拟/几何查询优化、分支稠密循环迁移和 CUDA 高性能代码选型。关键词:NVIDIA Warp、GPU加速、性能评估、热路径分析、CUDA、模拟、基准测试、技术选型、候选筛选、代码优化、并行计算。

Warp GPU编程 0 次安装 0 次浏览 更新于 9/7/2026
名称 warp-eval
描述 > 评估现有热路径是否为可信的 NVIDIA Warp 候选。适用于不规则或空间查询、粒子或几何模拟、分支密集循环、大量小型启动、主机回退或大型中间结果。除非明确禁止 NVIDIA,否则仅 CPU 代码和无 GPU 依赖属于正常。排除必须跨厂商或仅 CPU 部署、供应商底层化的稠密张量或神经网络层、通用 Warp API 问题以及已被选中的 Warp 内核。仅凭贡献策略不构成排除。
开源协议 Apache-2.0 metadata:
作者 NVIDIA Corporation warp-python@nvidia.com tags: [warp, gpu-acceleration, performance, simulation, evaluation] compatibility: > 筛选、静态评估和报告不需要 GPU。测量 Warp 需要 NVIDIA CUDA GPU、目标项目依赖项和代表性工作负载;不具备时,应在性能分析前中止。

Warp 评估

目的

收集关于现有代码库中一个狭窄接缝在 NVIDIA Warp 下表现的可复现证据,报告事实,由用户决策。第一行声明 Warp 是受评估选项且不提供采用建议。未经授权不进行实验。测量评估输出 warp-evaluation-report/;绝不修改生产代码。

硬性规则

  1. 默认目标为延迟、吞吐量及峰值或保留内存;除非用户点名,可维护性等只作为约束或成本。
  2. 正确性是门槛;现有契约不明时先明确 oracle 或契约,不修复缺陷。
  3. 不得从源码形态或相似负载预测收益;实际内存以分析器和分配器证据为准。
  4. “可以用 Warp 编写”只是假设。
  5. 门限精确触发,不得近似。
  6. 每条论断标注:观察事实、测量、假设或未知。
  7. 时间测量覆盖用户可见完整阶段,包含 Warp 冷启动/导入/JIT、传输、启动循环、构建/分配/转换/同步等全部成本。
  8. 无明确授权不进行 profile、原型、基准或 GPU 使用。
  9. 授权的测量工作包含 Warp;若无门触发,继续测得项目内最强基线、最小原型和端到端对比。
  10. 不推断环境意图;只有当用户明确给出约束才中止,否则询问一次并停在 AWAITING INTENT。
  11. Warp 测量仅限 CUDA 并需同步;丢弃 CPU 解析及派发计时。
  12. 不推荐或排序任何采用方案;只报告事实与测量。
  13. 到报告为止,不做生产修改。

要求

静态筛选需要目标仓库及产品约束。测量工作还需要显式授权、NVIDIA CUDA GPU、目标项目依赖和代表性负载。

局限性

  • Warp CPU 内核为串行且不在本评估范围。
  • 网格/几何查询在内部以 float32/int32 计算,即使公开 API 使用 float64。
  • Warp 不遵循 semver,仅最新特性线受维护,弃用周期约四个版本。
  • latest 文档对应开发版,应固定到目标项目声明的 Warp 版本。
  • 仅内核 builtin 无法从 Python 通过 hasattr 探测;需核对 stub 文件或对应版本文档。
  • 无需微分时设置 enable_backward=False 后再测量编译开销。

输出格式

状态 达到条件 报告目录
ABORT 任一门证明 Warp 无法满足范围 无(未测量时);有测量则保留证据
AWAITING INTENT 环境门取决于用户掌握的只有用户有的信息 无——一个问题,两个分支
AWAITING AUTHORIZATION 候选模式通过阶段 1 无——附早期发现和范围/资源预览
INCOMPLETE 授权后仍缺乏代表性证据 是——保留证据,指出缺失工件
报告交付 完成测量或已有报告目录 是——事实与缺失证据明确

早期退出形如:ABORT — Gate <letter>: <cited fact>; <why scoped warp-eval cannot proceed>。 交付目录遵循模板固定顺序并链接工具与结果。

示例

门退出示例:ABORT — Gate A: deployment.md requires one implementation with AMD, Apple and NVIDIA parity; a Warp-specific path cannot satisfy this scope.

通过候选示例:命名接缝与模式,标注假设,说明无门触发,给出 profile/基线/Warp 原型/基准范围及成本,再问授权问题。

输入

需要:目标仓库,以及存在候选接缝的性能/内存/规模问题。可选:部署约束、日志/profile、代表性数据集、验收标准。Prompt 约束优先。

可用脚本

脚本 用途 参数
scripts/driver-template.py 每瓶颈复制一份并定义负载/变体 编辑占位符后运行
scripts/measure.py 导入后用于同步计时、内存与隔离用例 Python API,勿直接执行
scripts/validate_report_schema.py 校验报告与证据链接 <report-directory>

故障排查

  • 无代表性负载:标为 INCOMPLETE,指出缺失工件,不编数据。
  • Warp 解析到 CPU 或无 CUDA:丢弃该运行并停止。
  • 报告验证失败:修复报告或工件,不豁免 schema 错误。

指令

除最后阶段外每阶段都可能结束评估;停止后不收集无关证据。

1. 读代码、定契约、查门

按 references/target-patterns.md 识别候选与指标;从仓库推导设备/驻留、dtype/shape、大小、频率、生命周期、梯度与打包,先推断后询问。用一句话陈述契约并要求纠正。频率/硬件/容差等推断不是测量,但可被修正。分析前查 Gates A–E;只有存在现成代表性证据时才查 Gate F。各门定义见 references/rejection-gates.md。

门表:A 生产已声明仅 CPU 或强制非 NVIDIA 移植且无可选 CUDA 路径;B 数据每小/少调用穿越主机/设备边界且无法拓宽;C 稠密张量已映射到调优框架;D 已有成熟 CUDA 实现且无其它非性能目标;E 政策阻止 Warp 依赖/编译/缓存/回退;F 代表性证据显示占比太小。Gates A/E 需要用户陈述;当候选模式存活但 A/E 未定时,询问是否接受可选 NVIDIA 路径。候选存活则结合授权检查点输出预览并停止。

2. 对真实应用做 profile

需授权与意图均已解决。使用项目 profiler,以公开入口和变体命名测量;确认在目标设备执行;时间与峰值内存通过同步端到端获得。若测量 ceiling 低于需求,以 Gate F 中止受影响范围。若无法获得代表性数据/入口,记录缺失工件并标 INCOMPLETE。

3. 形成可证伪假设

记录各候选的来源、瓶颈证据、目标、接缝、Warp 可改机制、最强基线、风险、验收阈值及最廉价证伪实验;再按 references/target-patterns.md 筛选。

4. 先写契约,再写原型

定义值、dtype/shape/设备/错误/顺序/容差/梯度/流/所有权等契约,观察 Warp 输出前固定容差。不能满足契则中止。预注册负载来源、成本状态变量、调优旋钮、基线抖动与 oracle。对抗检查见 references/semantic-contract.md。

5. 先改进基线

算法再后端;先启用项目已依赖的并行后端和编译器;打开项目已有能力;无项目内路由后才收窄到 Warp。对比对象只能是改进后的基线、现有依赖能达到的方案和 Warp。用无调优或劣化基线得不到有效结论。每条未豁免路由需先被测量或被证实缺乏;用户可书面豁免。

6. 最小 Warp 原型

在独立副本中改代码,生产不变。每次原型必须显式选择 CUDA 设备并确认 Warp 实际以 CUDA 运行,不运行 CPU 后端。单元大小按共享数据和生命周期摊销。每个方案以独立补丁保存,补丁要证明可干净应用并复现。先做对抗检查和破坏性测试;失败则 ABORT。

7. 全边界基准测试

从 scripts/driver-template.py 复制驱动,用 scripts/measure.py 的同步计时/内存测量;包含冷/暖启动、传输、JIT、构建、同步及下一步骤开销。用量化结果转写;报告 null_test,一次性成本单列并摊销。GPU 测量用设备锁串行化;低于 1.5× 不算差异;未达到预声明需求则 ABORT。

8. 汇总证据

按接缝/工况报告语义结果、最强基线、负载来源、时长、内存、生命周期、可移植性。状态必须用 pass/fail/not measured/unknown 等客观项。只有包含端到端 Warp 测量才能标记 complete;否则标注 aborted/incomplete。所有≥10% 的阶段加清点行。

9. 交回

按模板固定 schema 生成报告;每瓶颈一个表格比较基线、当前依赖方案与 Warp。运行校验:uv run python scripts/validate_report_schema.py <report-directory>,验证构建与导入后停止。