Question: Is there an emulator for a Geforce card that would allow me to program and test CUDA without having the actual hardware?
Info:
CUDA でいくつかのシミュレーションを高速化したいと考えていますが、開発を行うためにデスクトップに常にいるわけではないのが問題です。代わりにネットブックで作業したいのですが、ネットブックには GPU がありません。私が知る限り、CUDA を実行するには CUDA 対応の GPU が必要です。これを回避する方法はありますか? 唯一の方法は GPU エミュレーターを使用する方法のようです (明らかに非常に遅いですが、機能します)。しかし、これを実現する方法が何であれ、ぜひ教えてください。
私はUbuntu 10.04 LTSでプログラミングしています。
ベストアンサー1
2016 年 (さらには 2017 年) に答えを求めている人たちのために...
免責事項
- 結局、GPU のエミュレーションに失敗しました。
gpuocelot
依存関係のリストを満たしていれば使用できる可能性があります。
BunsenLabs (Linux 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) i686 GNU/Linux) のエミュレーターを入手しようとしました。
私が学んだことをお話しします。
nvcc
-deviceemu
CUDA Toolkit 3.0ではオプションがあったCUDA Toolkit 3.0 をダウンロードしてインストールし、簡単なプログラムを実行してみました。
#include <stdio.h> __global__ void helloWorld() { printf("Hello world! I am %d (Warp %d) from %d.\n", threadIdx.x, threadIdx.x / warpSize, blockIdx.x); } int main() { int blocks, threads; scanf("%d%d", &blocks, &threads); helloWorld<<<blocks, threads>>>(); cudaDeviceSynchronize(); return 0; }
CUDA Toolkit 3.0 では で
nvcc
あったことに注意してください/usr/local/cuda/bin/
。コンパイルに困難があることが判明しました。
NOTE: device emulation mode is deprecated in this release and will be removed in a future release. /usr/include/i386-linux-gnu/bits/byteswap.h(47): error: identifier "__builtin_bswap32" is undefined /usr/include/i386-linux-gnu/bits/byteswap.h(111): error: identifier "__builtin_bswap64" is undefined /home/user/Downloads/helloworld.cu(12): error: identifier "cudaDeviceSynchronize" is undefined 3 errors detected in the compilation of "/tmp/tmpxft_000011c2_00000000-4_helloworld.cpp1.ii".
インターネットで、 の
gcc-4.2
代わりに または同様の古いものを使用するとgcc-4.9.2
エラーが消える可能性があることを発見しました。あきらめました。gpuocelot
Stringer の回答には、非常に古いプロジェクト Web サイトへのリンクがありました
gpuocelot
。そのため、最初はプロジェクトが 2012 年頃に中止されたと思いました。実際には、数年後に中止されました。以下に最新のウェブサイトをいくつか紹介します。
私は次のようにgpuocelotをインストールしようとしましたガイドインストール中にいくつかのエラーが発生したため、再び諦めました。
gpuocelot
はサポートされなくなり、非常に特殊なバージョンのライブラリとソフトウェアのセットに依存します。フォローしてみるといいかもしれないこのチュートリアル2015 年 7 月から、動作を保証するものではありません。テストしていません。
マクダ
MCUDA 変換フレームワークは、CUDA プログラミング モデルを CPU アーキテクチャに効率的にコンパイルするように設計された Linux ベースのツールです。
役に立つかもしれない。ここにウェブサイトへのリンク。
CUDA廃棄物
これは、Windows 7 および 8 で使用するエミュレーターです。ただし、試したことはありません。もう開発されていないようです (最後のコミットは 2013 年 7 月 4 日です)。
プロジェクトのウェブサイトへのリンクは次のとおりです:https://code.google.com/archive/p/cuda-waste/