关于 cuda-webdoc-search
用于查询 CUDA-X 库文档 API 的命令行工具与技能,可搜索 Sphinx inventory、检查函数是否存在并提取文档内容。它通过 `cws` 支持按库、API 域和关键词筛选结果。
主要功能
- 01搜索 CUDA-X API
- 02按库和域筛选结果
- 03模糊关键词匹配
- 04提取指定文档章节
- 05列出并审计文档源
适用场景
- 01查找 CUDA 库中的特定函数
- 02确认 API 是否存在并获取链接
- 03检索并提取 API 文档内容
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ultimatile/ cuda-x-skills --skill cuda-webdoc-search安装后在 Claude Code 中输入/cuda-webdoc-search确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
audit.pycli.pyfetchers.pyget.pyMakefilepyproject.tomlpyrightconfig.jsonREADME.mdregistry.pyregistry.tomlscoring.pysearch.pyreferences/registry_schema.mdtests/conftest.pytest_registry_audit.pytest_registry.pytest_search.pytest_structure_extractor.py详细介绍
CUDA-X 文档搜索指南
概述
通过查询 Sphinx 库存文件,搜索和发现 CUDA-X 库文档中的 API。需要查找特定 CUDA 库函数、检查可用 API 或获取文档链接时,可使用此技能。
设置
uv tool install "cuda-webdoc-search @ git+https://github.com/ultimatile/cuda-x-skills.git#subdirectory=skills/cuda-webdoc-search"
安装后,cws 可作为独立命令使用。无需安装即可一次性使用:
uvx --from "cuda-webdoc-search @ git+https://github.com/ultimatile/cuda-x-skills.git#subdirectory=skills/cuda-webdoc-search" cws search cublas --stats
适用场景
- 查找 CUDA 库 API(例如:“cuTensorNet 有哪些 SVD 函数?”)
- 检查某个特定函数是否存在于某个库中
- 获取 CUDA API 的文档 URL
- 探索库中可用的操作
快速参考
先检查可用域
搜索前,先检查有哪些可用域(API 类型):
cws search <library> --stats
这会返回各域的数量:cpp(C++ API)、c(C API)、py(Python 绑定)、std(文档标签)。
搜索 API
cws search <library> --domains <domain> --keywords "<terms>" --fuzzy --limit 20
关键词语法(fzf 子集)
- 空格分隔的词项表示 AND(必须全部匹配):
--keywords "SVD batch" - 使用
|表示 OR(需要用 shell 引号括起来):--keywords "SVD | QR" - AND 的优先级高于 OR:
--keywords "a b | c"= (a AND b) OR c - 注意:仅支持通过
|使用 AND/OR。不支持 fzf 运算符^、'、!、$。
可用库
完整列表请参阅 registry.toml。常用库包括:
cuquantum- cuTensorNet、cuStateVec(量子/张量网络)cublas- BLAS 运算cusolver- 稠密/稀疏求解器cusparse- 稀疏矩阵运算cufft- FFT 运算cudnn- 深度学习基本运算cutlass- GEMM 模板cuda_math- 数学函数
工作流
- 确定库:判断 API 可能属于哪个 CUDA 库
- 检查域:运行
--stats查看可用的域类型 - 搜索:使用
--keywords,并搭配--fuzzy进行灵活匹配 - 按域筛选:使用
--domains cpp搜索 C++ API,使用--domains c搜索 C API - 提取详情:使用
cws get获取完整文档内容
示例
在 cuTensorNet 中查找张量分解 API
cws search cuquantum --stats
# Shows: cpp:3179, py:1172, std:3378, c:4
cws search cuquantum --domains cpp --keywords "SVD" --fuzzy --limit 10
# Returns: cutensornetTensorSVD, etc. (functions ranked above enumerators)
cws search cuquantum --domains cpp --keywords "SVD | QR" --fuzzy
# Returns: entries matching SVD OR QR
跨多个库搜索
# "Where is SVD in CUDA-X?" — search cuSOLVER and cuDSS together
cws search cusolver cudss --keywords "svd" --fuzzy --limit 10
# Mix any number of sources
cws search cusolver cusparse cudss --keywords "solve" --fuzzy
多来源输出使用 "sources"(列表)而非 "source"(字符串),并且 "total_found" 会变为按来源区分的字典。
在 cuBLAS 中查找 GEMM 函数
cws search cublas --stats
# Shows: std:36 (only doc labels, no cpp/c domain)
cws search cublas --domains std --keywords "gemm"
# Returns: cublas-t-gemm, cublas-t-gemmex, etc. (doc section labels)
提取 API 文档详情
找到函数 URL 后,提取其完整文档:
cws get <url> --section <function_name>
示例:
cws get \
"https://docs.nvidia.com/cuda/cuquantum/latest/cutensornet/api/functions.html" \
--section "cutensornetTensorSVD"
输出为用大括号分隔的文本树:
{
cutensornetTensorSVD
{
cutensornetStatus_t cutensornetTensorSVD {
const cutensornetHandle_t handle
const cutensornetTensorDescriptor_t descTensorIn
...
}
Performs SVD decomposition of a tensor. { ... }
Parameters { ... }
}
}
列出可用来源
cws list # table format
cws list --json # JSON format
审核注册表健康状况
cws audit # audit all sources
cws audit --source cublas # audit single source
输出格式
cws search
JSON 输出包含:
单一来源:
source:库名称(字符串)total_found:经过筛选的域中的 API 总数filtered_count:匹配关键词的 API 数量candidates:匹配 API 的列表,包含group(名称)、url、domain、role
多来源(cws search A B):
sources:库名称(列表)total_found:各来源的总数(字典)filtered_count:所有来源中匹配关键词的 API 总数candidates:合并后的列表(若使用--fuzzy,按得分进行 k 路归并;否则直接拼接)
cws get
用大括号分隔的文本树,其中:
{}表示层级结构- 保留文本内容
- 行内元素(代码、链接)会展平为文本
选项:
--section <id>:仅提取指定章节--main-only:仅提取主要内容区域
文件
cli.py- 统一 CLI 入口(cws)search.py- 跨库库存搜索 APIaudit.py- 审核注册表条目的端点健康状况get.py- 将文档内容提取为文本树fetchers.py- 获取 Sphinx/Doxygen 来源数据scoring.py- 搜索排序和筛选逻辑registry.py- 注册表加载工具registry.toml- 库元数据(URL、文档类型)
评论
支持 Markdown