Pertanyaan: Apakah ada emulator untuk kartu Geforce yang memungkinkan saya memprogram dan menguji CUDA tanpa memiliki perangkat keras sebenarnya?
Info:
Saya ingin mempercepat beberapa simulasi saya di CUDA, tetapi masalah saya adalah saya tidak selalu berada di sekitar desktop saya untuk melakukan pengembangan ini. Saya ingin melakukan beberapa pekerjaan pada netbook saya, tetapi netbook saya tidak memiliki GPU. Sejauh yang saya tahu, Anda membutuhkan GPU berkemampuan CUDA untuk menjalankan CUDA. Apakah ada cara untuk menyiasatinya? Sepertinya satu-satunya cara adalah emulator GPU (yang jelas akan sangat lambat, tetapi akan berfungsi). Tapi apapun cara untuk melakukan ini, saya ingin mendengar.
Saya memprogram di Ubuntu 10.04 LTS.
Jawaban:
Bagi mereka yang mencari jawabannya di tahun 2016 (dan bahkan 2017) ...
Penolakan
gpuocelot
jika Anda memenuhi daftar dependensinya.Saya sudah mencoba mendapatkan emulator untuk BunsenLabs (Linux 3.16.0-4-686-pae # 1 SMP Debian 3.16.7-ckt20-1 + deb8u4 (2016-02-29) i686 GNU / Linux).
Saya akan memberi tahu Anda apa yang telah saya pelajari.
nvcc
dulu memiliki-deviceemu
opsi kembali di CUDA Toolkit 3.0Saya mengunduh CUDA Toolkit 3.0, menginstalnya dan mencoba menjalankan program sederhana:
Perhatikan bahwa di CUDA Toolkit 3.0
nvcc
ada di file/usr/local/cuda/bin/
.Ternyata saya kesulitan menyusunnya:
Saya telah menemukan di Internet bahwa jika saya menggunakan
gcc-4.2
atau sama kunogcc-4.9.2
, kesalahan mungkin hilang. Aku menyerah.gpuocelot
Jawaban oleh Stringer memiliki tautan ke
gpuocelot
situs web proyek yang sangat lama . Jadi pada awalnya saya mengira proyek itu ditinggalkan pada tahun 2012 atau lebih. Sebenarnya, itu ditinggalkan beberapa tahun kemudian.Berikut beberapa situs web terbaru:
Saya mencoba menginstal gpuocelot dengan mengikuti panduan . Saya mengalami beberapa kesalahan selama instalasi dan saya menyerah lagi.
gpuocelot
tidak lagi didukung dan bergantung pada kumpulan versi pustaka dan perangkat lunak yang sangat spesifik.Anda dapat mencoba mengikuti tutorial ini dari Juli 2015 tetapi saya tidak menjamin itu akan berhasil. Saya belum mengujinya.
MCUDA
Mungkin berguna. Berikut ini tautan ke situs web .
Limbah CUDA
Ini adalah emulator untuk digunakan pada Windows 7 dan 8. Saya belum mencobanya. Tampaknya tidak dikembangkan lagi (komit terakhir tertanggal 4 Juli 2013).
Berikut tautan ke situs web proyek: https://code.google.com/archive/p/cuda-waste/
CU2CL
Pembaruan terakhir: 12.03.2017
Seperti yang ditunjukkan oleh tanda hubung di komentar, CU2CL tampaknya menjadi proyek yang menarik. Tampaknya dapat menerjemahkan kode CUDA ke kode OpenCL. Jadi jika GPU Anda mampu menjalankan kode OpenCL maka proyek CU2CL mungkin menarik bagi Anda.
Tautan:
sumber
nvcc -deviceemu
CUDA Waste
bekerjaCU2CL
bekerjaTanggapan ini mungkin terlambat, tetapi tetap perlu diperhatikan. GPU Ocelot ( di mana saya salah satu kontributor inti ) dapat dikompilasi tanpa driver perangkat CUDA (libcuda.so) diinstal jika Anda ingin menggunakan backend Emulator atau LLVM. Saya telah mendemonstrasikan emulator pada sistem tanpa GPU NVIDIA.
Emulator berupaya dengan setia menerapkan spesifikasi PTX 1.4 dan PTX 2.1 yang mungkin menyertakan fitur yang tidak didukung oleh GPU lama. Penerjemah LLVM mengupayakan terjemahan yang benar dan efisien dari PTX ke x86 yang diharapkan akan membuat CUDA cara yang efektif untuk memprogram CPU multicore serta GPU.
-deviceemu
telah menjadi fitur CUDA yang tidak digunakan lagi untuk beberapa waktu, tetapi penerjemah LLVM selalu lebih cepat.Selain itu, beberapa pemeriksa kebenaran dibangun ke dalam emulator untuk memverifikasi: akses memori yang diselaraskan, akses ke memori bersama disinkronkan dengan benar, dan dereferensi memori global mengakses wilayah memori yang dialokasikan. Kami juga telah menerapkan debugger interaktif baris perintah yang sebagian besar terinspirasi oleh gdb ke langkah tunggal melalui kernel CUDA, menetapkan titik putus dan titik pengawasan, dll. Alat ini secara khusus dikembangkan untuk mempercepat debugging program CUDA; Anda mungkin menganggapnya berguna.
Maaf tentang aspek khusus Linux. Kami telah memulai cabang Windows ( serta port Mac OS X ) tetapi beban teknis sudah cukup besar untuk menekankan pengejaran penelitian kami. Jika ada yang punya waktu dan minat, mereka mungkin ingin membantu kami memberikan dukungan untuk Windows!
Semoga ini membantu.
sumber
Anda juga dapat memeriksa proyek gpuocelot yang merupakan emulator sejati dalam artian bahwa PTX (bytecode tempat kode CUDA dikonversi) akan diemulasi.
Ada juga penerjemah LLVM, akan menarik untuk diuji apakah lebih cepat daripada saat menggunakan -deviceemu.
sumber
Toolkit CUDA memiliki satu perangkat di dalamnya hingga siklus rilis CUDA 3.0. Jika Anda menggunakan salah satu versi CUDA yang sangat lama ini, pastikan untuk menggunakan -deviceemu saat mengompilasi dengan nvcc.
sumber
https://github.com/hughperkins/cuda-on-cl memungkinkan Anda menjalankan program NVIDIA® CUDA ™ pada OpenCL 1.2 GPU (pengungkapan penuh: Saya penulisnya)
sumber
Berhati-hatilah saat Anda memprogram menggunakan -deviceemu karena ada operasi yang akan diterima nvcc saat berada dalam mode emulasi, tetapi tidak saat benar-benar berjalan di GPU. Ini sebagian besar ditemukan dengan interaksi perangkat-host.
Dan seperti yang Anda sebutkan, bersiaplah untuk eksekusi yang lambat.
sumber
GPGPU-Sim adalah simulator GPU yang dapat menjalankan program CUDA tanpa menggunakan GPU. Saya membuat gambar buruh pelabuhan dengan GPGPU-Sim diinstal untuk diri saya sendiri jika itu membantu.
sumber