1. ホーム
  2. cuda

[解決済み] ハードウェアなしでCUDAプログラミングができるGPUエミュレータ【終了しました

2022-02-16 10:20:34

質問内容

質問です。実際のハードウェアを持たずにCUDAのプログラミングやテストができるGeforceカード用のエミュレータはありますか?


情報です。

私はCUDAでいくつかのシミュレーションを高速化したいと思っていますが、問題は、この開発を行うために常にデスクトップが近くにあるとは限らないということです。代わりにネットブックで作業を行いたいのですが、ネットブックにはGPUが搭載されていません。私の知る限りでは、CUDAを実行するにはCUDA対応のGPUが必要です。これを回避する方法はあるのでしょうか?唯一の方法はGPUエミュレータのような気がします(これは明らかにひどく遅いですが、動作するでしょう)。しかし、これを行う方法があれば、私はそれを聞きたいと思います。

Ubuntu 10.04 LTSでプログラミングしています。

どのように解決するのですか?

2016年(2017年も)答えを求める人のために・・・。


免責事項

  • 結局GPUのエミュレーションに失敗しました。
  • を使用することが可能かもしれません。 gpuocelot のリストを満たせば、その という依存関係があります。

文研のエミュレータを試してみました(Linux 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) i686 GNU/Linux)です。

学んだことをお伝えします。


  1. 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 というエラーはなくなるかもしれません。あきらめました。


  2. gpuocelot

    ストリンガーによる回答には、非常に古い gpuocelot プロジェクトのウェブサイトです。だから最初は、2012年くらいにプロジェクトが放棄されたのかと思っていました。実は、その数年後に放棄されたのです。

    最新のウェブサイトを紹介します。

    以下のようにgpuocelotをインストールしようとしました。 ガイド . しかし、インストール中に何度もエラーが発生し、またもや断念しました。 gpuocelot はもうサポートされておらず、非常に特殊なバージョンのライブラリとソフトウェアのセットに依存しています。

    を参考にしてみてください。 このチュートリアル 2015年7月からのものですが、動作保証はしていません。テストはしていません。


  3. MCUDA

    <ブロッククオート

    MCUDA翻訳フレームワークは、Linuxベースのツールで、以下のような目的で設計されています。 CUDAプログラミングモデルをCPUアーキテクチャに効果的にコンパイルします。

    便利かもしれませんね。以下は ウェブサイトへのリンク .


  4. CUDAの廃棄物

    Windows7、8で使用するエミュレータです。私は試していませんが。もう開発されていないようです(最後のコミットは2013年7月4日)。

    プロジェクトのウェブサイトへのリンクはこちらです。 https://code.google.com/archive/p/cuda-waste/


  1. CU2CL

    最終更新日:2017.12.03

    として ダッシュ がコメントで指摘した。 CU2CL は、面白いプロジェクトだと思います。ということができそうです。 翻訳する CUDAコードからOpenCLコードへ。ですから、もしあなたのGPUがOpenCLコードを実行できるのであれば、CU2CLプロジェクトはあなたの興味を引くかもしれません。

    リンク集