mcpField
C
cuda-webdoc-search

cuda-webdoc-search

github.com/ultimatile開発280 回インストール30 週間前に更新
リポジトリ

cuda-webdoc-search について

CUDA-X ライブラリのAPIドキュメントを検索するコマンドラインツール兼スキルです。Sphinx inventory の検索、関数の有無の確認、ドキュメントの抽出に対応し、`cws` でライブラリ、APIドメイン、キーワードを指定できます。

主な機能

  1. 01CUDA-X APIの検索
  2. 02ライブラリとドメインによる絞り込み
  3. 03あいまいキーワード検索
  4. 04指定したドキュメント節の抽出
  5. 05ドキュメントソースの一覧と監査

活用シーン

  1. 01CUDAライブラリの特定関数を探す
  2. 02APIの有無を確認してURLを取得
  3. 03APIドキュメントの検索と抽出

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ultimatile/cuda-x-skills --skill cuda-webdoc-search

インストール後、Claude Code で/cuda-webdoc-searchを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

audit.py
cli.py
fetchers.py
get.py
Makefile
pyproject.toml
pyrightconfig.json
README.md
registry.py
registry.toml
scoring.py
search.py
references/
registry_schema.md
tests/
conftest.py
test_registry_audit.py
test_registry.py
test_search.py
test_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 には | を使用します(シェルでの引用が必要です):--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 - 数学関数

ワークフロー

  1. ライブラリを特定する:API が含まれている可能性の高い CUDA ライブラリを判断します
  2. ドメインを確認する:--stats を実行して、利用可能なドメインの種類を確認します
  3. 検索する:柔軟に一致させるには、--fuzzy とともに --keywords を使用します
  4. ドメインで絞り込む:C++ API には --domains cpp、C API には --domains c を使用します
  5. 詳細を抽出する: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

複数ソースの出力では、"source"(文字列)の代わりに "sources"(リスト)が使用され、"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-way マージ、それ以外の場合は連結)
cws get

波括弧で区切られたテキストツリーです。次のような形式になります。

  • { } は階層を示します
  • テキストの内容はそのまま保持されます
  • インライン要素(コード、リンク)はテキストに平坦化されます

オプション:

  • --section <id>:特定のセクションのみを抽出します
  • --main-only:メインコンテンツ領域のみを抽出します

ファイル

  • cli.py - 統合 CLI エントリーポイント(cws)
  • search.py - ライブラリのインベントリ全体から API を検索
  • audit.py - エンドポイントの健全性を確認するためにレジストリエントリーを監査
  • get.py - ドキュメントの内容をテキストツリーとして抽出
  • fetchers.py - Sphinx/Doxygen ソースのデータ取得
  • scoring.py - 検索のランキングおよびフィルタリングロジック
  • registry.py - レジストリ読み込みユーティリティ
  • registry.toml - ライブラリのメタデータ(URL、ドキュメントの種類)

コメント