Ostatnimi czasy planuję coś liznąć programowania w CUDA.
Co prawda w domu nie posiadam grafiki wspierającej tą technologię ale mam dostęp do komputerów z odpowiednimi grafikami.
Nie wiem tylko nawet od czego tutaj zacząć :E Noramalnie piszę w Code::Blocks. Chcę się dopytać co tam powinienem zainstalować aby już za bardzo nie kombinować i za pierwszym razem było wszystko ok.
Wystarczy Developer Drivers + CUDA Toolkit? Czasem można jeszcze doczytać o Visual Studio (nawet Express) ale chyba można jego zastąpić dowolnym edytorem?
męcz sesefa :D on projektował soft na grafy :D i TJM :D
Zainstalowałem CUDA Toolkit, dedykowane drivery i przykładowe app od nVidii.
Nie mam jednak kompletnie pojęcia jak w tym utworzyć projekt i nawet wklepać jakiś przykładowy kod.
Przykładowe app chyba działają z Visual C++ (rozszerzenie vcproj) i za bardzo nie mogę ich zaimprotować do tego edytora nVidii.
Przy zakładaniu nowego projektu mam coś takiego jak niżej:
[smg id=290 caption="Cuda - zakładanie nowego projektu"]
Co powinienem podać w ścieżce "Launch"? Strasznie jakoś mało to intuicyjne i masa różnic przeskakując ze zwykłego C.
Mogłem napisać PM'kę do TJM'a lub sesef'a ale mam nadzieję, że ktoś tutaj odpowie, a i może ktoś skorzysta z rozwiązywanych problemów.
Tutaj akurat TJM ma master z CUDA i wjazd na deva do nich. Ogólnie ciężko powiedzieć czy odpalisz to w code::blocks ponieważ chyba nie ma libów skopilowanych pod windowsowego gcc głównych środowiskiem pod Windows jest Visual Studio i pod niego jest wszystko robione. Masz dostep do MSDNa ściągnij sobie VS2005/2008/2010 PRO (nie wiem pod co tam teraz CUDA robią) i rób w nim.
kompletnie się na tym nieznam ale jak już masz zaczynać od CUDA to może lepiej zacznij od openCL. wtedy będzie to chodziło na wszystkich kartach a i znacznie szybciej, widziałem taką prezentację jak szybko robi się obliczenia na CPU (około 6h) na CUDA (około 15min) i openCL( pare sekund) chyba nawet od nVidii to było. Myślę że wartoby było się tym zainteresować.
Właśnie jestem kompletny noob z tego, a trzeba jakoś zacząć. Tutaj jednak nawet na początek jakiegoś dobrego tutoriala ciężko mi znaleźć (już nawet nie wspominam o języku polskim). Myslałem o tym Visual Studio ale nie mam pojęcia jak jego połączyć z bibliotekami CUDA aby to wszystko zatrybiło, a czytałem, że sporo użytkowników ma z tym problemy.
więc lobbuje za openCL
po krótkich poszukiwaniach znalazłem trochę przykładów kodu http://developer.download.nvidia.com/compute/cuda/3_0/sdk/website/OpenCL/website/samples.html
postanowiłem też zgłębić ten problem.
Teoretycznie jeśli masz zainstalowane Visual Studio, to nic już nie musisz robić - po zainstalowaniu toolkita projekty CUDA powinny zacząć działać.
Podobnie jest na Linuksie, a nawet teoretycznie łatwiej.
Niestety w praktyce stopień dopracowania instalatorów jest znikomy i może się okazać, że będziesz musiał wbić na forum nvidii i poczytać jak rozwiązywali problemy inni :ph34r:
Nowy projekt łatwo utworzyć - najlepiej po prostu skopiować dołączony w toolkicie pusty plik przykładowy (zwie się to chyba project sample czy jakoś tak).
Co do OpenCL to nie wiem czy w praktyce jest tak różowo jak głoszą reklamy. Jakiś czas temu praktycznie w ogóle ciężko było uruchomić jakąś aplikację, nie mówiąc już o kompilacji samemu.
openCl ma tą przewagę że powinien iść i na AMD i nVidi a CUDA to nVidia a AMD ma Strima chyba, więc się już rozdrobnili. Po drugie może i rozwój openCL jest powolny a struktura skomplikowana ale to jest otwarty projekt więc społeczność po jakimś czasie "wypoleruje" to. Kolejna rzecz że ta reklama z szybkością naprawdę do mnie przemówiła jakkolwiec chociaż trochę prawdy w niej musi być ;) Do tego postawić to na GIT kompilować w GCC uruchamiać w Linuksie i wszystko gra XD
Kompletnie nie mogę niczego ugryźć.
Próbowałem kompilacji kodu z konsoli (nvcc) ale wywala, że brakuje jemu kompilatora "cl.exe". Szukałem co to jest i znalazłem, że to Kompilator Visual Studio i wygląda na to, że nawet jego trzeba będzie zainstalować aby cokolwiek zrobić.
(http://img200.imageshack.us/img200/3085/48098794.th.png) (http://img200.imageshack.us/i/48098794.png/)
Z poziomu samego CUDA Toolkit'a nie mam pojęcia jak pisać... Tam jest jakieś IDE? Niczego nie widzę. Początkowo myślałem, że rolę jakiegoś edytora spełnia CUDA Visual Profiler ale z tego co widzę on jest do czegoś innego (Benchmarking a CUDA).
NVIDIA Parallel Nsight może to pomorze, podobno to visual studio zastępuje czy coś.
Słyszałem o tym NVIDIA Parallel Nsight ale to chyba tylko jakieś rozszerzenie do Visual Studio.
Visual Studio w programowaniu jest tym czym Windows w prywatnych komputerach (tylko VS to jednak produkt za który MS można pochwalić) i nie ma co kombinować na około. 99% ludzi używa VS i wszystko co na winde jest pod niego robione.
Cytat: Rysiu w 21 Maj 2010, 10:46
Kompletnie nie mogę niczego ugryźć.
Próbowałem kompilacji kodu z konsoli (nvcc) ale wywala, że brakuje jemu kompilatora "cl.exe". Szukałem co to jest i znalazłem, że to Kompilator Visual Studio i wygląda na to, że nawet jego trzeba będzie zainstalować aby cokolwiek zrobić.
(http://img200.imageshack.us/img200/3085/48098794.th.png) (http://img200.imageshack.us/i/48098794.png/)
Z poziomu samego CUDA Toolkit'a nie mam pojęcia jak pisać... Tam jest jakieś IDE? Niczego nie widzę. Początkowo myślałem, że rolę jakiegoś edytora spełnia CUDA Visual Profiler ale z tego co widzę on jest do czegoś innego (Benchmarking a CUDA).
No co ty, nic takiego nie ma - albo podpinasz pod jakiś produkt MS (da się pod starsze wersje VC++ chyba też), albo przesiadasz się na linuksa %)
Visual profiler jest do analizy kodu pod względem wydajności, jest do niego osobna instrukcja - jeśli nie jest dostępna dla publiki to mogę pomóc w jej znalezieniu %)
Z Visual Studio nie było problemów - po instalacji wszystko zatrybio.
Chcę jednak móc coś kompilować na Linuxie (Ubuntu) i komputerze nie posiadającym karty graficznej wspierającej CUDA. Muszę coś dodatkowo instalować aby skorzystać emulacji?