1

複数のGPUを初めて使用します。単一のGPUのコードを作成しましたが、複数のGPUを使用してさらに高速化したいと考えています。私はMSVS2008とcudatoolkit4.0を搭載した2つのGTX470を使用しています

私は2つの問題に直面しています。

最初の問題は、私のコードが4.0ビルドルールでは正常に実行されず、3.2ビルドルールでは正常に動作することです。また、multiGPUのSDKの例はVS2008に基づいて構築されておらず、エラーが発生します

エラーC3861:'cudaDeviceReset':識別子が見つかりません

私の2番目の問題は、3.2で作業する必要がある場合、ドキュメントによると、スレッドを個別に起動し、個別の割り当てを行う必要があることです。複数のGPUのスレッドを起動するための最も簡単なライブラリは何ですか。例を挙げてください。複数のGPUにアクセスするためのセットアップ用。

4

1 に答える 1

2

最初の質問に対する答えは、古いバージョンのCUDAランタイムライブラリを明確にリンクしているということです。cudaDeviceResetは、CUDA4.0で導入されたAPIに新しく追加されたものです。したがって、ビルドルールを再確認し、リンカーが以前のバージョンではなくCUDA4.0ツールキットを指していることを確認してください。

あなたの質問の2番目の部分は、「hai plz give me teh code」の質問のように聞こえますが、それはこの場所の目的ではありません。ただし、GPUWorker(現在ここで利用可能なコード)へのリンクを提供します。これは、元々HOOMD分子動力学パッケージの一部であったブーストスレッドベースのmultigpuフレームワークです。GPUWorkerがニーズに直接適用できないことが判明した場合でも、マルチスレッド、マルチgpuコードを実行する方法に関するヒントが得られるはずです。

于 2011-08-13T11:34:08.340 に答える