可用资源检测
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/get-available-resources。
技能介绍
问题背景
在做数据分析、模型训练或大规模并行任务前,你往往不知道当前机器到底能扛多少:内存够不够装下数据集、有没有可用的 GPU 以及该用哪套后端、并行该开几个 worker、磁盘是否够写中间结果。凭感觉调参容易 OOM、空跑 CPU,或选错 Dask/Zarr 与 in-memory 路线。
技能如何工作
本技能通过运行 scripts/detect_resources.py 做一次系统快照,并在工作目录写出 .claude_resources.json,供后续决策引用。
检测范围包括:
- CPU:物理/逻辑核心、架构与型号、频率
- GPU:NVIDIA(
nvidia-smi)、AMD(rocm-smi)、Apple Silicon(Metal / 统一内存) - 内存与交换:总量、可用量、当前占用比例
- 磁盘:工作目录所在卷的总空间与可用空间
- 环境:操作系统、Python 版本等
策略建议(上下文感知) 会随检测结果给出,例如:
- 并行:
8+核心时倾向 Dask/joblib/multiprocessing,worker 数常取「核心数 − 2」;核心较少时相应保守 - 内存:可用内存偏紧时提示核外处理(如 Dask/Zarr);充裕时可考虑直接加载
- GPU:识别到 NVIDIA / AMD / Apple Silicon 时分别指向 PyTorch、ROCm、MPS/Metal 等常见栈;无 GPU 则强调 CPU 侧优化
- 磁盘:空间紧张时提醒压缩、流式或外存策略
典型用法是:在重计算任务开始前先跑检测,再读取 JSON 里的建议,再决定数据加载方式、并行度和是否上 GPU。
适用边界与注意
- 内存读数是瞬时快照,其它进程会改变「可用内存」;关键任务前可关无关应用或多次采样。
- GPU 未检出时,需确认驱动与
nvidia-smi/rocm-smi等是否在 PATH,而非假定无卡。 - 检测脚本依赖
psutil;其余多为标准库。资源会随时间变化,扩并行或加大数据量前宜重新检测。 - 不同机器能力差异大,保留
.claude_resources.json有助于记录「当时为何这样选架构」。
使用场景
- 准备加载数十 GB 基因组或表格数据前,先确认内存是否够用、是否该上 Dask 或 Zarr 做核外处理
- 在本地或服务器上启动神经网络训练前,检测 NVIDIA、ROCm 或 Apple MPS 是否可用及该选哪套框架
- 用 joblib 或 multiprocessing 批量处理上万个小文件前,根据 CPU 核心数确定合理的工作进程数
- 跑长时间数值模拟或生成大量中间文件前,核对工作目录磁盘剩余空间并选择是否压缩或外存
适合人员
- 在单机或集群节点上做生物信息、统计建模的数据科学家,需要在开跑前判断内存与并行策略
- 负责训练或微调深度学习模型的 ML 工程师,需要快速确认 GPU 型号、显存与可用后端再写训练脚本
- 用 Python 做 ETL 或批处理的后端/数据工程师,需要在扩容 worker 或数据量前核对 CPU 与磁盘约束
- 在新项目或新机器上搭建分析流水线的人,希望用一份 JSON 快照记录基线算力以便做架构选型