Programowanie GPU, CUDA czy OpenCL? [zamknięte]

Jestem początkującym programistą GPU. Mam laptopa z kartą NVIDIA GeForce GT 640. Mam do czynienia z 2 dylematami, sugestie są mile widziane.

  1. Jeśli pójdę na CUDA -- Ubuntu lub Windows {[6] } oczywiście CUDA jest bardziej odpowiedni dla windows, podczas gdy może to być poważny problem, aby zainstalować na Ubuntu. Widziałem kilka blogów, które twierdzą, że zainstalowano CUDA 5 na Ubuntu 11.10 i Ubuntu 12.04 . Nie udało mi się jednak zmusić ich do pracy. Również, standardowe podręczniki CUDA wolą pracować w domenie windows i są mniej lub bardziej ciche w trosce o instalację i działanie Unix/Ubuntu.

  2. CUDA czy OpenCL -- Teraz jest to prawdopodobnie bardziej trudniejsze niż moje pierwsze pytanie ! Natknąłem się głównie na projekty GPGPU wykorzystujące CUDA/Nvidia, ale OpenCL jest prawdopodobnie kolejną najlepszą opcją w open source i instalacja w Ubuntu prawdopodobnie nie będzie problemem, choć niektóre sugestie tutaj będą najbardziej przydatne. Am Nie mam żadnej funkcjonalności, jeśli pójdę na OpenCL, a nie CUDA ?

Jakaś pomoc lub sugestie ?

Author: ChrisF, 2013-08-02

2 answers

  1. Jeśli używasz OpenCL, możesz go łatwo używać zarówno w systemie Windows, jak i Linux, ponieważ posiadanie sterowników wyświetlacza wystarczy do uruchamiania programów OpenCL, a do programowania wystarczy po prostu zainstalować SDK. CUDA ma więcej wymagań dotyczących konkretnych wersji GCC itp. Ale nie jest to dużo trudniejsze do zainstalowania również na Linuksie.

  2. W Linuksie CUDA ma dziwne wymagania, takie jak używanie GCC 4.6 lub 4.7. Jeśli użyjesz innej wersji GCC, nie będziesz mógł skompilować swojego programu już nie. Jeśli używasz OpenCL, możesz użyć dowolnego kompilatora, ponieważ wystarczy połączyć się ze wspólną biblioteką OpenCL. Tak więc OpenCL jest łatwiejszy w konfiguracji, użyciu i kompilacji. Po skompilowaniu programu OpenCL można go uruchomić na dowolnym sprzęcie (o ile jest to zakodowane w tym celu), nawet jeśli został skompilowany przy użyciu OpenCL SDK innej marki.

Możesz pisać programy OpenCL, które będą działać na sprzęcie Nvidia, AMD i Intel, na GPU, procesorach i akceleratorach. Co więcej, Altera działa o obsłudze OpenCL na FPGA! Jeśli używasz CUDA, będziesz musiał używać tylko GPU Nvidia i ponownie napisać kod w OpenCL lub innym języku dla innych platform. Poważne ograniczenie korzystania z CUDA i przyczyną poważnej straty czasu w dłuższej perspektywie.

Widzę, że ktoś zamieścił jakieś stare odniesienia między CUDA i OpenCL, ale są stare! Gdy te dokumenty były niedostępne, tylko AMD poprawnie obsługiwało OpenCL. Od 2013 roku OpenCL jest wspierany przez ARM, Altera, Intela itp. i stał się standard branżowy.

Jedynym minusem jest to, że ponieważ OpenCL jest tak elastyczny, masz do czynienia z większą ilością opcji i sposobów kodowania alokacji pamięci, transferów itp. w twoim programie. Dlatego może się to wydawać bardziej skomplikowane.

 85
Author: Evren Yurtesen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-28 17:04:39

Myślę, że nie jest bardzo trudno skonfigurować środowisko cuda na ubuntu, możesz spróbować.

Jako student architektury obliczeniowej, myślę, że musisz nauczyć się zarówno OpenCL i CUDA. I powinieneś najpierw nauczyć się cuda ponieważ CUDA udostępnia więcej informacji o sprzęcie i uruchomieniu, świadomość sprzętowa jest bardzo ważna, gdy chcesz zoptymalizować kody GPU.

 8
Author: Xiaolong Xie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-02 14:52:53