cuPyNumeric 迁移就绪评估
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/cupynumeric-migration-readiness。
技能介绍
要解决什么问题
把 NumPy 工作负载迁到 cuPyNumeric / Legate GPU 栈之前,真正耗时间的是「先写几周移植代码再发现热路径跑不起来」。本技能针对的是预迁移场景:在用户改代码、上集群之前,回答现有 NumPy 用法里哪些能直接扩展、哪些会卡在分布式执行或同步上,以及值不值得投入移植。
它不做迁移后的性能剖析,也不帮写 CUDA 内核;图谱/稀疏/ML 等若明显不匹配 GPU 数组模型,会给出 NOT RECOMMENDED 这类结论,而不是泛泛拒绝评估。
技能如何工作
评估是静态、只读的:用 Read / Grep / Glob 读源码,不执行用户程序、不改文件。流程大致分五步:
- 收集上下文——源码路径、热路径数组规模(默认约 3000万~5000 万元素)、目标 GPU 数、主要计算模式;未说明的默认值会在报告顶部写明。
- 加载
assets/api-support.md——对照 NumPy 与 cuPyNumeric 的 API 符号(多 GPU 可用 / 单 GPU / 部分 / 未实现)。 - 语义读代码——按
idioms-that-scale与idioms-that-block标记元素循环、热路径上的.item()、归约条件、循环内分配、order=、np.random.*多 GPU、mpi4py热路径等。 - 输出八段结构化报告——结论、SCALES / BLOCKS / REFACTOR / INFO、API 缺口、决策框架关卡、后续步骤;每条发现带
file:line。 - 引导运行时验证——配方改完后由用户启用 cuPyNumeric Doctor,补抓源码审查易漏的问题。
结论按类型定性:READY、LIGHT REFACTOR、SIGNIFICANT REFACTOR、NOT RECOMMENDED(主要是数组规模低于约 65K 或计算模式不匹配关卡 4)。
适用边界
- 清单快照若超过约 90 天,需用户自行运行
scripts/fetch_api_support.py刷新;技能本身不替你抓网。 - 未实现 API 在热路径上视为迁移阻塞,不要假设会静默回退到主机 NumPy。
legate --profile与迁移后调优属于另一条工作流,应在本技能结论落地后再做。
使用场景
- 团队计划把蒙特卡洛或模板计算的 NumPy 热路径迁到 Legate 多 GPU,移植前先要知道哪些模块能只改 import
- 维护数万行 NumPy 仿真代码,需要在立项前产出带 file:line 的阻塞项清单和重构配方优先级
- SciPy 与 NumPy 混用的混合工作负载,要对照 API 支持表判断哪些调用会在分布式路径上成为热路径阻塞
- 数组规模在千万级、目标 1~4 卡单节点,想按决策框架关卡 2/4 判断是 READY 还是 NOT RECOMMENDED
适合人员
- 负责 NumPy 数值内核、即将向 cuPyNumeric 提交 MR 的科学计算工程师,需要先分清 SCALES 与 BLOCKS
- HPC 平台或基础设施同学,在集群推广 Legate 栈前要为业务方做预迁移就绪评估与成本说明
- 课题组 PI 或技术负责人被问「要不要上 GPU」,需要结构化八段报告支撑立项而不是口头判断
- 曾用 mpi4py 做数组分区的老代码维护者,需确认热路径 MPI 是否触发 SIGNIFICANT REFACTOR 而非误判为 READY