GPU 問題判別 (Linux®、Windows のみ)
グラフィックス処理装置 (GPU) でアプリケーション処理の問題が発生する場合は、根本原因を特定するのに役立つ詳細ロギングを有効にすることができます。 標準 SDK トレース機能を使用して、アプリケーション処理をトレースすることもできます。
アプリケーション処理が GPU にオフロードされない理由としては、いくつかが考えられます。 以下の領域を確認してください。
- システムのセットアップ
- GPU システム要件 (Linux、Windows のみ)の説明に従って、ご使用のシステムが最小限のハードウェア要件およびソフトウェア要件を満たしていることを確認します。
- システム構成
- -Dcom.ibm.gpu.enable システム・プロパティーを使用して GPU 処理を有効にした場合、Java 仮想マシンが処理をオフロードするのは、その処理を CPU から移動するオーバーヘッドの価値がある場合のみです。 例えば、sort 操作をオフロードする前に、配列は約 20,000 項目の最小サイズを満たしていなければなりません。 ご使用のシステム構成を検証するために、システム・プロパティーが用意されています。
しきい値設定とは無関係に GPU 処理を実行するには、システム・プロパティー -Dcom.ibm.gpu.enforce をコマンド行で設定してください。 このプロパティーは検証目的でのみ提供されており、通常の環境下で設定してはいけません。
アプリケーションのパフォーマンスが低下するおそれがあります。
JITコンパイラーが処理タスクをGPUにオフロードできるようにした場合は、-Xjit:enableGPU={enforce|verbose}オプションを指定してシステム構成を検証できます。 このオプションを設定すると、JIT は、データ処理タスクを CPU ではなく GPU で処理する利点があるかどうかの判別をパフォーマンス・ヒューリスティックに依存しません。 JIT が処理を正常に GPU へ移動したかどうかを確認するには、詳細サブオプションによって生成されるシステム出力を調べてください。 詳しくは、 JIT コンパイラーと GPU の間の問題の診断 (Linux、Windows のみ)を参照してください。
- アプリケーション・プログラミング
- CUDA4J アプリケーション・プログラミング・インターフェースでクラスを指定することにより、直接 GPU を使用するアプリケーションを開発している場合は、コードにエラーがないかどうかを慎重に調べてください。
- -Dcom.ibm.gpu.enable システム・プロパティーを使用して GPU 処理を有効にした場合は、 -Dcom.ibm.gpu.verbose (Linux、Windows のみ) を設定して詳細レベルで GPU の操作を追跡することにより、詳細メッセージをオンにすることができます。 メッセージは STDOUT に出力されます。または、詳細分析を行うためにファイルにパイプ接続することができます。
- 標準 SDK トレース機能を使用すると、アプリケーション処理をトレースすることができます。 詳しくは、 GPU トレース・オプション (Linux、Windows のみ)を参照してください。
- JIT コンパイラーと GPU の間の操作をトラブルシューティングするには、 JIT コンパイラーと GPU の間の問題の診断 (Linux、Windows のみ)を参照してください。
注: GPU の使用に関して、いくつかの既知の制限があります。 詳しくは、 GPU の問題と制限を参照してください。