パフォーマンス
コード生成の問題をトラブルシューティングし、コード実行時間を改善して、生成コードのメモリ使用量を削減する
GPU Coder™ で生成されたコードが予想どおりに実行されない最もよくある理由は、以下のとおりです。
CUDA® カーネルが作成されていない。
ホストからデバイスおよびデバイスからホストへのメモリ転送 (
cudaMemcpy
) によってパフォーマンスが抑制されている。並列化不足またはデバイスに問題がある。
このトピックでは、これらの現象の一般的な原因について詳しく説明し、組み込みのスクリーナーを利用してこれらの問題を検出する方法を説明します。また、これらの問題に対処し、より効率的な CUDA コードを生成する方法についての情報も見つけることができます。
アプリ
関数
オブジェクト
トピック
- ワークフロー
GPU Coder トラブルシューティング ワークフロー。
- コード生成レポート
コード生成レポートを作成して確認する。
- 生成された CUDA コードおよび MATLAB ソース コード間でのトレース
GPU で実行される MATLAB® コードのセクションを強調表示する。
- MATLAB コードから生成されたコードに対する GPU コード メトリクス レポートの作成
GPU 静的コード メトリクス レポートを作成して確認する。
- GPU パフォーマンス アナライザー
コード メトリクスを可視化し、コードの最適化と調整の機会を特定する。
- CUDA MEX 関数のデバッグ
CUDA MEX 関数のデバッグに関する提案。
- カーネル解析
効率的な CUDA カーネルを生成するための推奨事項。
- メモリ ボトルネック解析
GPU Coder を使用するとメモリ ボトルネックの問題が減る。
- NVIDIA Profiler による解析
NVIDIA® Profiler (nvvp) から取得された情報を使用してパフォーマンスを改善する。
- レジスタ カウント nvlink エラー
レジスタ カウント
nvlink
エラーによるコンパイル エラーのトラブルシューティング。