Show HN:Nvidia CUDA パソコン向け連続サンプリングプロファイラー

2026/06/16 0:49

Show HN:Nvidia CUDA パソコン向け連続サンプリングプロファイラー

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

NVIDIA は、Volta アーキテクチャの GPU におけるプログラムカウンター(PC)サンプリングによる微細なパフォーマンス分析を可能にし、CUDA Profiling Tools Interface (CUPTI) に重要な機能を追加しました。Maxwell の単純な API を基盤とし、Volta は専用ワープごとのハードウェアサンプリングメカニズムを追加し、2^SAMPLING_FACTOR GPU クロックサイクル(係数 5〜31)ごとの間隔で PC オフセットと停滞理由「バケット」を記録します。この低オーバーヘッドアプローチは、生データとしてのサンプリング速度を 2k サンプル/秒以上達成でき、実際の収集量はワークロードに依存します。该系统では、コールスタックやタイムスタンプなどの重いメタデータを生サンプルから除外し、プロダクション利用を最適化しています。捕捉される停滞理由には、長尺のスコアボードメモリエイラウンシー、共有メモリの停滞、機能ユニットキューイング、同期バリア、メモリフェンスが含まれます。収集モードは 2 つあり、「continuous」モードは低オーバーヘッドですが、積極的なスケジュールリングによりカーネル帰属が困難になり、「kernel-serialized」モードはパフォーマンスコストの支払い代わり、精度の高いカーネル起動の帰属を可能にします。プロダクションでのオーバーヘッドを削減するために、新しい動的アルゴリズムは PC データを短い間隔(〜50ms)でサンプリングし、デフォルトでは約 100 つの pc/停滞理由ペア/秒を目指します。統合は、Kubernetes 向けオープンソースのパルカエージェントの v0.48.0 リリースを通じて利用可能であり(今日から 14 日間の無料トライアル付き)、データを Polar Signals または MCP サポートを持つ LLM モデルなどのバックエンド分析プラットフォームに送信します。エージェントは USDT プロブ上で BPF プログラムをインストールし、最近のカーネル起動を ID を通じて相関させるためキャッシュし、シンボライズのために cubins を debuginfo サービスにアップロードします。ユーザーは nvcc コマンドに

-lineinfo
フラグを含める必要があり(ソースレベル分析が必要な場合は DWARF 情報も含める)、cubins のアセンブリーを実現するためです。この進歩は、システム安定性を損なわずに複雑な GPU ボトルネックを診断することを可能にする決定的な一歩を表しています。

本文

CUA プログファイリング ツールインタフェース(CUPTI)による PC サンプリング機能の活用

CUA プログファイリング ツールインタフェース(CUPTI)のもっとも強力な機能の一つに、プログラムカウンター(PC)サンプリングのサポートがあります。この機能により、CUDA アプリケーションの開発者は、コードがどこで時間を消費しているのかを指令レベルまで可視化できます。

我々は低オーバーヘッドの連続プロファイラからの PC サンプルデータをバックエンドへ送信し、以下の機能を实装しました。

  • Polar Signals UI 上での分析
  • MCP サポートを活用した LLM モデルによる解析

PC サンプリングは従来、NVIDIA NSight や Triton の Proton プロファイラーといった開発者向けのワークフローで使用されてきましたが、我々のオーバーヘッド最小化のアプローチにより、実際にプロダクション環境でも活用可能となりました。

まずはオープンソースのパファエージェントの [v0.48.0 リリース版] で本機能をご利用いただけます。Kubernetes 上での試し方については別途ブログ記事もご参照ください。


PC サンプリングの仕組みと特徴

ハードウェア構成

  • 導入アーキテクチャ: Maxwell から導入され、当初は CUPTI アクティビティ API に乗っかって提供されていました。Volta アーキテクチャ以降は専用の PC サンプリング APIが新設されました。
  • 動作原理: ワープ単位での専用ハードウェアを使用し、サンプリングティックごとに各ワープの状態を記録します。
  • サンプリング間隔:
    2
    のべき乗で表現されたサンプリング係数に基づき、ハードウェア側が
    $2^{\text{SAMPLING\_FACTOR}}$
    クロックサイクルごとにサンプルを行います。
    • サンプル係数の範囲:5 から 31 に制約されています(例:$2^5=32$ サイクルごと 〜 $2^{31}$周期ごと)。
  • サンプリング頻度: 毎秒数千万回から毎秒一回程度まで、幅広い範囲をカバーします。
  • デフォルト設定: 我々の目的においてサンプリング係数は 20 をデフォルトとしています(構成可能です)。
  • スループット: ハードウェア固有のスループットは1 秒あたり 2,000 サンプル以上

データ収集の効率性

サンプルが取得されるたびに「バケット」のカウンターを単に増やすため、以下のような軽量な設計になっています。

  • 記録内容: コールスタックやタイムスタンプを記録せず、PC オフセットと待機理由のペアのみを扱います。
  • データフロー: 情報はハードウェア内で収集され、定期的なフラッシュでソフトウェアバッファへ転送されます(下位処理は CUPTI とドライバーが担当)。
    • バッファサイズは設定可能です。

主な待機理由

PC/待機理由の情報はハードウェア内で収集されます。GPU における主な待機理由は以下の通りです。

  • 長スクリーンボード: メモリ遅延によるロード待機。
  • 短スクリーンボード: 共有メモリまたは専用機能ユニットの結果待ちによるレイテンシ。
  • キューイング: 忙しく機能ユニットが空くまで待つ。
  • 同期処理: シンクバリアやメモリーフェンスなど。

Polar Signals プロファイラでは、これらの待機理由の解釈を容易にするため、簡単な解説と NVIDIA のドキュメントへのリンクを付与して提供しています。


運用モード:連続モード vs コアネルシリアル化モード

モードの違い

PC サンプリングは以下の 2 つのモードで実行できます。

  • 連続モード:
    • 自然な動作ですが、サンプルを特定のコアネル起動に紐付けることが不可能です。
    • 理由: GPU は並列処理を行うため、異なるコアネル起動同士が同一の CUDA バイナリ(cubin)を共有し、同一の PC/待機理由ペアに寄与する可能性があるため。
  • コアネルシリアル化モード:
    • 推奨モード。推測を排除するため採用しています。
    • 性能低下は避けられない点ですが、プロダクション用プロファイラーとしての信頼性を担保します。

デフォルトの目標設定

我々は動的なアルゴリズムを実装し、一定期間(約 50ms)ごとに PC サンプリングを短時間活性化・停止させることでオーバーヘッドを低減しています。

  • 目標データ量: デフォルトでは毎秒 100 ペア(PC/待機理由ペア)。
  • 実運用上の振る舞い:
    • シンプルな GPU ワークロード: インターバル間の時間が短い。
    • 激しい PyTorch 学習ワークロード: 数秒もの間隔が生じることもあります。

データ収集と処理フロー

データ転送方法

ハードウェアからシムライブラリへのデータ取り出しは完了し、次にネットワーク経由で収集サービスへ返送する方法を採用しました。

  • 技術: 既存の仕組みを再利用し、USDTプローブを活用。
  • エージェント: シムライバリのフックを設定し、すべての有用データを抽出します。

追加された新しいプローブ

PC サンプリングサポート用のプローブは以下の通りです。

プローブ名説明
pc_sample_batch
PC サンプルのバッチデータ
pc_wait_reason_map
待機理由マップ(待機インデックスをデコード用)
loaded_cubin_bytes
ロードされた cubin バイト数(PC オフセットのソース再変換用)
gpu_config
GPU 設定情報(サンプルを時間に変換用)

注意点:

pc_sample_batch
単体では意味を持ちません。待機理由マップ、ロードされた cubin バイト数、GPU 設定情報との組み合わせが必要です。これらの情報は起動時や cubin ロード時のワンショットイベントであり、シムライブラリとエージェント間の同期は行いません。

コアネル起動のキャッシュ活用

エージェントは BPF プログラムをインストールし、イベントストリームを BPF リングバッファへ供給します。ここでは以下の技術を活用しています。

  • コアネル起動のキャッシュ:
    • PC サンプルは事後に相関 ID のみタグ付けされます。
    • エージェントは直近のコアネル起動をキャッシュし、各サンプルバッチをそのアプリケーションスタックと照合します。
    • これにより、PC と待機理由を「ラベル」として追加し、グループ化やフィルタリングが可能になります。

データ転送の効率化

  • Apache Arrow レコードへパッキング: 効率的なサーバー転送のため、サンプルは Arrow レコード形式に変換されます。
  • 重複排除なし: データが既にカウントとして報告されているため、重複除外を行う必要がありません。エージェントとバックエンドは到着するたびに単にバケットを足し合わせればよいだけです。

シンボライゼーション(ソースコードへのマッピング)

プロファイリング対象プロセス内部でのサイクル燃費を避けるため、以下の構成で動作します。

  1. エージェントは各 cubin をデバッグ情報サービスへアップロード
  2. バックエンド側でシンボライゼーションを実行。
  3. cubin には標準的な DWARF デバッグ情報が搭載されていないため、独自にアドレス対ソーステーブルを構築します(cubin の解凍とディスアッセンブルを含む)。

重要:

nvcc
コマンドラインに
-lineinfo
フラグ
を含めることで、PC オフセットを関数・ファイル・行への変換が可能になります。


まとめ

PC サンプリングは従来、オーバーヘッドの問題から開発ツール(NSight, Proton)に限定されていましたが、以下の工夫によりプロダクション環境での継続稼働が可能になりました。

  • サンプルのサンプリング
  • 遅結合エージェントでもコンテキストを欠かさずに動作するためのメタデータの再生
  • シンボライゼーションをバックエンドへシフトさせること

その結果、コアネルスタックや Polar Signals 連続プロファイラから得られるタイミング情報に加え、なぜワープが待機したかといった指令レベルの GPU 洞察を手にできるようになりました。


無料で14 日間のトライアルを開始できますので、今日からお試しください。Kubernetes をご利用のお客様は、ワークロードを変更せずに数分以内に開始する方法をご紹介しています。

同じ日のほかのニュース

一覧に戻る →

2026/06/20 0:10

ATProto のインスタンスはありません

## Japanese Translation: 以下は、不足していた特定の詳細を統合しつつ流れを保つ改訂版です。 # 改善されたサマリー 記事は、「Bluesky インスタンス」について尋ねることがカテゴリエラーであることを明確にし、atproto がデータのホスティングとアプリケーションを根本的に分離することにより、Mastodon のような孤立した「インスタンス」という概念を排除していることを説明します。従来のモデルでは、これらの結合されたシステムが「領邦」を生み出し、インスタンス所有者がユーザーを追放できる一方、atproto においてはアイデンティティはサーバーではなくユーザーのデータに属しています。この構造により、ユーザーはソーシャルグラフへのアクセスを失うことなくホスティングプロバイダーを即座に切り替えるか、自動的にデータを移行することが可能になります。エコシステムはまたアプリの独立性を育みます; ユーザーは特定のクライアントに依存するのではなく、「Tangled」や「Semble」などのさまざまなアプリケーション間で切り替えたり、著者が言及したプロジェクトのようなカスタムオープンソースアプリを構築して任意のホストからのデータを集約したりすることができるようになります。リレーや Cloudflare などの特定のインフラストラクチャツールがこのモデルを可能にしており、データベースは孤立したアイデンティティサイロとして機能するのではなく、モデレーションの多様性またはキャッシュのために複数のコピーを実行します。したがって、業界は「インスタンス数」のような誤解を招く指標から離れ、ユーザー主体性、多様なアプリ開発、そして真のデータポータビリティによって定義されるより健全なエコシステムへと移行します。

2026/06/20 1:28

现代汽车收购波士顿动力

## Japanese Translation: 現代自動車グループは、ボストン・ダイナミクスの残りの株式 9.65%(ソフトバンク保有分)を約 11 億ドルの総評価額にて 3 億 2500 万ドルで買収し、2026 年 6 月 22 日に完了させる計画を発表しました。これによりボストン・ダイナミクスは現代自動車の完全子会社となり、ソフトバンクが保有していた行使権(put option)も終了します。現代自動車は、アトラス型ヒューマノイドロボットをその製造エコシステムへ統合することを意図しており、まず 2026 年 1 月 5 日にラスベガスで開催される CES において電気式のアトラスを実演し、その後 2028 年までにジョージア州サバnahna 附近的 EV 工場において生産モデルを立ち上げる予定(当初は部品の組立順序化に適用され、2030 年頃にはより重機業務へ拡大)です。商業的な実現可能性を確保するため、ボストン・ダイナミクスの CEO ロバート・プレイターは、アトラスが導入される前に新しい工場タスクを 1〜2 日以内に学習し、稼働率を 99.9% に達することを高い基準として設定しました。現代自動車モビスは、主要なハードウェアを一貫したグループの工業基盤と整合させるために重要なアクチュエータを生産します。競合他社がテスラのフリーモントでのオプティマスや、Figure AI の BMW との共同試験、または Unitree の低価格モデルなど「展示」に注力するのと対照的に、現代自動車は CES 会場でのデモではなく持続的な稼働時間を重視し、自社の工場を利用して制御された工場内導入を追求しており、ジョージア州のメタプラントから着手します。また、この動きはソフトバンクがボストン・ダイナミクスからの戦略的転換を図り、Roze AI へシフトすることで、単なる製品会社としての緩やかな収益曲線ではなく、物理インフラ(エネルギー・建設分野)での出資を求めていることとも反映しています。完全な所有権を確保した現代自動車は、マイノリティー株式や外部パートナーに依存するのではなく、高ボリューム製造環境におけるロボティクス未来を自社で掌握することを目指しています。

2026/06/13 17:21

音波を使ってエスプレッソを抽出。コーヒーの Brewing に必要なエネルギー使用量を 3 分の 1 に削減できる

## Japanese Translation: 研究者たちは、熱ではなく音波を用いて室温で濃厚で高い抽出強度を持つコーヒーを製造する革新的な「超音波エスプレッソ」法を成功裏に開発しました。 blind な味覚検査では、この飲料が従来のホットエスプレッソと区別不能であることを示し、芳香、風味、強度のすべてにおいて同様に優れており、熱エネルギーがクラシックなエスプレッソの特徴に必要なものではないことを証明しています。特にフィルタコーヒーとの比較において、超音波版の方が、より心地よい苦味のために参加者によって好まれるという結果となりました。この技術は、抽出時間を 3 分未満に縮めるために振動子を用いて音響カビテーション(コールドミルクのように小さな泡が生じ、コーヒー粉を破砕する現象)を生み出します。水をお湯まで加熱する必要がないため、標準的な淹れ方における高い熱エネルギー需要や、アイスドリップのような長時間 steep する必要性に対応し、最大 75% も少ないエネルギーを使用します。得られる濃縮液は強力かつ滑らかであるため、ボトル入り飲料、乳成分を含む飲料、または即席飲料製品での即時消費に最適です。もし工業的な生産が効果的にスケールすれば、この手法は品質を損なうことなく運営コストを大幅に削減し、炭素排出量を減らすことができ、世界中のコーヒー業界を持続可能な道筋を提供しつつ、消費者の満足度も保つことができるでしょう。

Show HN:Nvidia CUDA パソコン向け連続サンプリングプロファイラー | そっか~ニュース