8

リアルタイム 3D モデリングでアプリケーションを最適化しようとしています。アプリケーションの計算部分は、ほぼ完全に CUDA の GPU 上で実行されます。このアプリケーションでは、小さな (6x6) 倍精度対称正定線形システム Ax = b を毎秒 500 回以上解く必要があります。現在、これは Cholesky を使用した効率的な CPU ベースの線形代数ライブラリで行われていますが、CPU から GPU へのデータのコピー、および GPU へのデータのコピーが 1 秒あたり数百回必要であり、毎回のカーネル起動のオーバーヘッドなどがあります。

データを CPU にまったく取り込まずに、GPU のみで線形システムの解を計算するにはどうすればよいですか? MAGMA ライブラリについて少し読んだことがありますが、GPU のみのアルゴリズムではなく、ハイブリッド アルゴリズムを使用しているようです。

GPU 上の個々の線形システムのソリューションは、既存の CPU ベースのライブラリよりもはるかに遅くなるという事実に備えていますが、間のデータ通信を削除することでそれを補うことができるかどうかを確認したいと考えていますホストとデバイス、およびカーネルの起動などのオーバーヘッドが毎秒数百回発生します。GPU のみの LAPACK のような代替手段がない場合、GPU のみでこの特定の 6x6 ケースを解決するために何かを実装するにはどうすればよいでしょうか? たとえば、GPU BLAS ライブラリを使用して、多大な時間の投資なしでそれを行うことができますか?

4

1 に答える 1

3

NVIDIAは、バッチ処理されたAx=bソルバーのコードを登録済みの開発者Webサイトに昨年秋に投稿しました。このコードは一般的な行列で機能し、対称行列を完全な行列に拡張できれば、ニーズに十分に対応できるはずです(6x6では問題になりませんか?)。コードはピボットを実行するため、正定行列には不要ですが、この場合には最適ではありませんが、コードはBSDライセンスに基づいているため、目的に合わせて変更できる場合があります。

NVIDIAの標準開発者Webサイトでは、現在いくつかの問題が発生しています。現時点でバッチソルバーコードをダウンロードする方法は次のとおりです。

(1)http://www.nvidia.com/content/cuda/cuda-toolkit.htmlにアクセスします

(2)既存のNVdeveloperアカウントをお持ちの場合(たとえばpartners.nvidia.com経由)、画面の右半分にある緑色の[Logintonvdeveloper]リンクをクリックします。それ以外の場合は、[nvdeveloperに参加]をクリックして新しいアカウントを申請してください。新しいアカウントのリクエストは通常​​、1営業日以内に承認されます。

(3)メールアドレスとパスワードを使用してプロンプトでログインします

(4)右側に「最新のダウンロード」というタイトルのセクションがあります。上から5番目のアイテムは「バッチソルバー」です。それをクリックすると、コードのダウンロードページが表示されます。

(5)「ダウンロード」リンクをクリックし、「同意する」をクリックしてライセンス条項に同意します。ダウンロードが開始されます。

于 2012-07-30T17:23:32.157 に答える