2016-11-07 36 views
3

私は、CPUまたはGPUで実行できるアルゴリズムを使ってライブラリを開発したいと考えています。 GPUはNvidia(アルゴリズムはCUDAを使用する)かどうか(アルゴリズムはOpenCLを使用します)。CUDA/OpenCLユニットのテスト用にGPUをエミュレートすることは可能ですか?

多分ので、私はこのプロジェクトではGPUをエミュレートしたいと思います:

  • 私はソフトウェアを開発するために別のコンピュータを使用し、そのうちのいくつかは、GPUを持っていません。

  • ソフトウェアは最終的にGPUを持つことができるサーバーで実行され、ユニットテストは実行され、実行されなければなりません。

単体テスト用にGPUをエミュレートする方法はありますか?次のリンクで

GPU Emulator for CUDA programming without the hardware

彼らはだけCUDAのための、ないのOpenCLと、彼らは「GPUOcelotが」もはや積極的に維持されている提案しないソフトウェアのソリューションを示しています。

+0

パフォーマンスは明らかにCPU上で悪化しますが、GPUがインストールされていないときにアルゴリズムが動作し、正しくプログラムされているかどうかをテストする方法があるかどうかを知る必要があります。単体テストでは、データベースがリストティングされていることをエミュレートするライブラリがあります。例えば、fakemongo https://github.com/fakemongoはmongodbデータベースをエミュレートして、SQL関数が正しいことをテストします。 – Rob

+0

[GPUエミュレータとハードウェアのないCUDAプログラミングの可能な複製](0120-17753-03) –

+1

そのリンクでのみ話すcuda(openclに関するものではない)と彼らが提案する解決策は、積極的に維持されていないソフトウェアです。 – Rob

答えて

3

エミュレーションの意味によって異なります。 GPUの速度をエミュレートすることはできません。

GPUはアーキテクチャ上、CPUとはかなり異なっており、多くの作業スレッド(1000s、10000s、...)が使用されています。 CPUは、コードを並列化しても、スレッドを数個しか持てません。それらはまた異なる命令セットを有する。

ただし、NVIDIA GPUの場合はNVEmulate、AMDの場合はOpenCL Emulator-Debuggerなどの特殊なソフトウェアを使用して実行をエミュレートできます。

関連する質問GPU Emulator for CUDA programming without the hardwareここでは、受け入れられた回答でCUDAエミュレーションのためにgpuocelotが推奨されています。

+0

ありがとう、これは私が探していたものです。私のコンピュータにはGPUがありますが、gpuのない古いノートパソコンを使ってソファにコードを書きたい場合があり、コードが動作するかどうかを知る必要があります。その場合、rCUDAを一見するとよいでしょう。 – Rob

+1

@Robこれにより、GPUなしでノードからリモートGPUにアクセスできます。参照:http://www.rcuda.net/index.php/what-s-rcuda.html –

関連する問題