Setiap orang memiliki superkomputer paralel besar yang besar ini di desktop mereka dalam bentuk kartu grafis GPU.
- Apa yang setara dengan "hello world" dari komunitas GPU?
- Apa yang harus saya lakukan, ke mana saya pergi, untuk memulai pemrograman GPU untuk vendor GPU utama?
-Adam
Jawaban:
Lihat CUDA oleh NVidia, IMO itu platform paling mudah untuk melakukan pemrograman GPU. Ada banyak bahan keren untuk dibaca. http://www.nvidia.com/object/cuda_home.html
Hello world akan melakukan segala jenis perhitungan menggunakan GPU.
Semoga itu bisa membantu.
sumber
sumber
Saya pikir yang lain telah menjawab pertanyaan kedua Anda. Adapun yang pertama, "Hello World" dari CUDA, saya tidak berpikir ada standar yang ditetapkan, tetapi secara pribadi, saya akan merekomendasikan penambah paralel (yaitu program yang menjumlahkan bilangan bulat N).
Jika Anda melihat contoh "reduksi" dalam NVIDIA SDK, tugas dangkal yang sederhana dapat diperluas untuk menunjukkan berbagai pertimbangan CUDA seperti pembacaan gabungan, konflik bank memori, dan loop terbuka.
Lihat presentasi ini untuk info lebih lanjut:
http://www.gpgpu.org/sc2007/SC07_CUDA_5_Optimization_Harris.pdf
sumber
Lihatlah SDI Stream Computing SDK . Ini didasarkan pada BrookGPU dikembangkan di Stanford.
Di masa depan semua pekerjaan GPU akan distandarisasi menggunakan OpenCL . Ini adalah inisiatif yang disponsori Apple yang akan menjadi vendor kartu grafis netral.
sumber
OpenCL adalah upaya untuk membuat pustaka lintas platform yang mampu memrogram kode yang cocok untuk, antara lain, GPU. Hal ini memungkinkan seseorang untuk menulis kode tanpa mengetahui GPU apa yang akan dijalankan, sehingga membuatnya lebih mudah untuk menggunakan beberapa kekuatan GPU tanpa menargetkan beberapa jenis GPU secara khusus. Saya menduga itu tidak berkinerja seperti kode GPU asli (atau sebagai asli sebagai produsen GPU akan memungkinkan) tetapi tradeoff dapat sia-sia untuk beberapa aplikasi.
Ini masih dalam tahap yang relatif awal (1,1 pada jawaban ini), tetapi telah mendapatkan daya tarik dalam industri - misalnya didukung secara native pada OS X 10.5 dan di atasnya.
sumber
CUDA adalah kerangka kerja yang sangat baik untuk memulai. Ini memungkinkan Anda menulis kernel GPGPU dalam C. Kompiler akan menghasilkan mikrokode GPU dari kode Anda dan mengirimkan semua yang berjalan pada CPU ke kompiler biasa Anda. Ini hanya NVIDIA dan hanya bekerja pada kartu 8-seri atau lebih baik. Anda dapat memeriksa zona CUDA untuk melihat apa yang dapat dilakukan dengannya. Ada beberapa demo hebat di CUDA SDK . Dokumentasi yang disertakan dengan SDK adalah titik awal yang cukup bagus untuk benar-benar menulis kode. Ini akan memandu Anda melalui penulisan kernel multiplikasi matriks, yang merupakan tempat yang bagus untuk memulai.
sumber
Cara mudah lain untuk masuk ke pemrograman GPU, tanpa masuk ke CUDA atau OpenCL, adalah melakukannya melalui OpenACC .
OpenACC bekerja seperti OpenMP, dengan arahan compiler (seperti
#pragma acc kernels
) untuk mengirim pekerjaan ke GPU. Misalnya, jika Anda memiliki lingkaran besar (hanya yang lebih besar yang benar-benar diuntungkan):Sunting: sayangnya, hanya kompiler PGI yang benar-benar mendukung OpenACC sekarang, untuk kartu NVIDIA GPU.
sumber
Coba GPU ++ dan libSh
Tautan LibSh memiliki deskripsi yang baik tentang bagaimana mereka mengikat bahasa pemrograman ke primitif grafis (dan tentu saja, primitif itu sendiri), dan GPU ++ menjelaskan tentang apa semua itu, baik dengan contoh kode.
sumber
Jika Anda menggunakan MATLAB, menjadi sangat mudah untuk menggunakan GPU untuk komputasi teknis (perhitungan matriks dan penghitungan angka / matematika berat). Saya merasa berguna untuk penggunaan kartu GPU di luar game. Lihat tautan di bawah ini:
http://www.mathworks.com/discovery/matlab-gpu.html
sumber