用途:在正式投入工程师周之前回答一个问题——现有 NumPy 代码里哪些 API 能在 cuPyNumeric 上扩展,哪些必须先重构。适用于用户询问代码能否在 GPU 上扩展、是否值得迁移、哪些部分有收益、移植前需要改什么,或提到移植前评估、扩展性分析、惯用法分析、GPU 重构规划、识别 GPU 反模式等场景。不适用于已移植后的性能/剖析,以及自定义 CUDA 内核编写。
主要能力:这是一项静态、只读评估。用 Read、Grep、Glob 检查用户源码,不执行用户代码、不修改或写入文件、不打印环境变量或密钥。先收集上下文(源码位置、热路径数组规模、目标硬件、主导计算模式,并声明所用默认值),再加载 assets/api-support.md 快照,按前导符号判定各 API:✓✓ 多 GPU 可用、✓ 仅单 GPU/CPU、🟡 部分支持、✗ 分布式路径未实现。随后语义化阅读代码,依据 idioms-that-scale.md 与 idioms-that-block.md 分类,输出 8 个固定小节的结构化报告(结论、可扩展项、阻塞项、可修复项、兼容性/成本、API 缺口、决策框架、下一步),每条发现标注 file:line。
用法与限制:评估不运行 cuPyNumeric,不自动生成重构代码,不做性能剖析,也不能替代人工判断(模式匹配会漏掉日志中的隐式同步、隐藏 .tolist() 的装饰器、运行期数据相关的分区不匹配)。最后引导用户在应用配方后运行 cuPyNumeric Doctor 做运行时验证:CUPYNUMERIC_DOCTOR=1 CUPYNUMERIC_DOCTOR_FORMAT=json CUPYNUMERIC_DOCTOR_FILENAME=doctor-report.json legate --gpus 1 main.py。刷新 API 清单可运行 python scripts/fetch_api_support.py --default-path(由用户执行)。判定分四档:READY、LIGHT REFACTOR、SIGNIFICANT REFACTOR、NOT RECOMMENDED,按 Gate 4 → Gate 2 → R108 → BLOCKS → REFACTOR 顺序取首个匹配,侧重发现类型而非数量。