View previous topic :: View next topic |
Author |
Message |
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 553
|
Posted: Fri Aug 26, 2011 10:26 am Post subject: GCC i Opencl - jak to ożenić? |
|
|
Aktualizacja Gentoo, na procku 100% na obu rdzeniach, a Nvidia z dość mocnym ukladem obliczeniowym ziewa i dłubie w nosie
Włączanie CUDA czy Vdpau w gcc nie miałoby sensu - nie tylko Nvidia jest w kompach, ale zarówno Nvidia, jak i ATI czy Intel, mają wsparcie dla interfejsu Opencl.
Sznurek:
http://pl.wikipedia.org/wiki/OpenCL
Czy da się jakoś wykorzystać Opencl przy kompilacji z użyciem GCC?
Pozdrawiam
|
|
Back to top |
|
|
Crenshaw Guru
Joined: 23 Jun 2004 Posts: 474 Location: Poland
|
Posted: Fri Aug 26, 2011 5:39 pm Post subject: |
|
|
Nie. |
|
Back to top |
|
|
one_and_only Apprentice
Joined: 13 May 2007 Posts: 250 Location: PL/Krakow
|
|
Back to top |
|
|
Crenshaw Guru
Joined: 23 Jun 2004 Posts: 474 Location: Poland
|
Posted: Sun Aug 28, 2011 12:25 am Post subject: |
|
|
Autor watku pytal o przyspieszanie gcc a nie kernela. |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 553
|
Posted: Sun Aug 28, 2011 2:48 pm Post subject: |
|
|
Kgpu jest nawet ciekawe.
A ja ogólnie szukam sposobu, żeby zaprząc GPU do roboty, kiedy umiera z nudów.
Najczęściej coś takiego wychodzi przy kompilacji, szyfrowaniu, itp.
Dlatego opencl jest mile widziany w gcc, openssl i gnutls, a vaapi/vdpau w xine-lib i gstreamerze (np do kaffeiny, na której mam dvb, totem bardzo dobrze obsługuje streaming w formacie WMP - nawet lepiej od vlc).
Z xine sprawa o tyle prosta - że xine-lib 1.2 ma obsługiwać vdpau, gstreamer-vaapi już jest - na razie nie działa, ale to kwestia czasu, żeby ruszył.
Co do opencl i gcc - to tutaj już conieco na ten temat było. |
|
Back to top |
|
|
Crenshaw Guru
Joined: 23 Jun 2004 Posts: 474 Location: Poland
|
Posted: Sun Aug 28, 2011 7:32 pm Post subject: |
|
|
Jacekalex wrote: | Kgpu jest nawet ciekawe.
A ja ogólnie szukam sposobu, żeby zaprząc GPU do roboty, kiedy umiera z nudów.
Najczęściej coś takiego wychodzi przy kompilacji, szyfrowaniu, itp.
Co do opencl i gcc - to tutaj już conieco na ten temat było. |
Kod generowany przez gcc to nie to samo co kod gcc. Jak najbardziej mozliwe jest aby na podstawie zwyklego kodu generowac kawalki OpenCL'owe. Jednak ze wzgledu na to w jaki sposob dziala przyspieszanie na gpu uzywanie tego do przyspieszania procesu kompilacji jest bez sensu. |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 553
|
Posted: Mon Aug 29, 2011 5:58 am Post subject: |
|
|
Crenshaw wrote: |
Kod generowany przez gcc to nie to samo co kod gcc. Jak najbardziej mozliwe jest aby na podstawie zwyklego kodu generowac kawalki OpenCL'owe. Jednak ze wzgledu na to w jaki sposob dziala przyspieszanie na gpu uzywanie tego do przyspieszania procesu kompilacji jest bez sensu. |
"de gustibus non est disputandum"
"Wszyscy wiedzą, że czegoś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi"
Ciekawe, skąd Albert wiedział, że kiedyś pojawi się taka dyskusja :DDDDD
Poza tym:
Według wiki:
Quote: | OpenCL zawiera w sobie język oparty na C99 służący do tworzenia jąder kodu |
A od C99 do GCC jest raczej niedaleko:
http://pl.wikipedia.org/wiki/C99
http://gcc.gnu.org/c99status.html
Stąd moje zainteresowanie ....
Pozdrawiam
|
|
Back to top |
|
|
lazy_bum l33t
Joined: 16 Feb 2005 Posts: 691
|
Posted: Mon Aug 29, 2011 5:50 pm Post subject: |
|
|
Licz BTC, jak Ci się nudzi GPU. (;
GPU mają _trochę_ inne procesory, więc zaprzęganie ich do „ogólnej” kompilacji jest rzeczywiście bez sensu (nawet gdyby cokolwiek to wspierało, to efekt byłby mizerny — czyli traciłbyś pewnie więcej prądu na zasilanie GPU niż zysk z przyspieszenia kompilacji). Co innego do innych zadań, np. łamania haseł — tu są wielokrotnie szybsze od zwykłego CPU.
Jest też kilka ciekawych projektów korzystających z pamięci karty graficznej — np. cudaram (mocno niestabilny) czy partycja swap/tmpfs w pamięci karty… _________________ roslin uberlay | grubelek |
|
Back to top |
|
|
Crenshaw Guru
Joined: 23 Jun 2004 Posts: 474 Location: Poland
|
Posted: Mon Aug 29, 2011 10:52 pm Post subject: |
|
|
Jacekalex wrote: | Crenshaw wrote: |
Kod generowany przez gcc to nie to samo co kod gcc. Jak najbardziej mozliwe jest aby na podstawie zwyklego kodu generowac kawalki OpenCL'owe. Jednak ze wzgledu na to w jaki sposob dziala przyspieszanie na gpu uzywanie tego do przyspieszania procesu kompilacji jest bez sensu. |
"de gustibus non est disputandum"
|
Moze z Twojego punktu widzenia to jest rzecz gustu ale fajnie by bylo zebys mial pojecie o czym piszesz. Zastanow sie na przyklad co to jest prawo Amdahla i jak sie to ma do obliczen na GPU oraz kompilacji. Ja za Ciebie nie bede myslal - chyba ze chcesz wynajac mnie jako konsultanta wtedy inna sprawa
Mieszasz pojecia. Gdybys przeczytal zamiast polskiej chocby angielska wikipedię to moze obeszloby sie bez poruszania jąder... :> Generalnie to polecam specyfikacje OpenCL jest dostepna i mozna wszystkiego na ten temat sie dowiedziec. Jak puszczac jądra na GPU i CPU też. |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 553
|
Posted: Tue Aug 30, 2011 2:58 am Post subject: |
|
|
Jeśli dobrze zrozumiałem, funkcje dostępne i ich charakterystyka w Opencl, - na tyle odstają od wymagań i specyfikacji gcc, że na razie nie jest możliwe wykorzystanie mechanizmu OpenCL jako akceleratora kompilacji?
W porządku, przyjmuję ten argument, jako aktualny obecnie, w przepowiadanie przyszłości się nie bawię.
Ale ponieważ przymierzam się instalacji systemu 64bit kompilowanego kompilatorem Ekopatch, chciałem najpierw się przekonać, czy w GCC nie pojawiły się jakieś nowe, ciekawe funkcje zwiazane z wydajnością i szybkością, zarówno kompilacji (np wykorzystanie GPU), jak i późniejszego działania kompilowanych programów.
Jedna uwaga - o dyskusji:
Pojęcia typu "jest sens" lub "nie ma sensu" niosą przeważnie subiektywne odczucia, nie zaś rzeczowe argumenty.
Stąd też wątek jest o około 3 posty dłuższy, niż być powinien.
Dzięki za wszystkie odpowiedzi.
Pozdrawiam
|
|
Back to top |
|
|
Crenshaw Guru
Joined: 23 Jun 2004 Posts: 474 Location: Poland
|
Posted: Wed Aug 31, 2011 4:50 pm Post subject: |
|
|
Quote: |
Ale ponieważ przymierzam się instalacji systemu 64bit kompilowanego kompilatorem Ekopatch, chciałem najpierw się przekonać, czy w GCC nie pojawiły się jakieś nowe, ciekawe funkcje zwiazane z wydajnością i szybkością, zarówno kompilacji (np wykorzystanie GPU), jak i późniejszego działania kompilowanych programów.
|
Gcc nie jest takie zle - tzn. w porownaniu do open64, icc i ekopatha. Z wewnetrznych testow jakie robilismy wychodzi ze czasem jest troche szybsze a czasem troche wolniejsze (jesli chodzi o szybkosc kompilowanego programu). Testy polegaly na wzieciu kilku programow z shootout.alioth.debian.org i przepuszczeniu przez kompilatory a potem pomierzenie wynikow.
Najfajniejsza rzecza jaka maja w gcc to jest wsparcie do OpenMP ale to przydaje sie przy pisaniu programow. W 4.7 wszedl support do OpenMP 3.1 gdzie sa tzw. taski i tym pewnie daloby sie przyspieszac proces kompilacji chociaz wymagaloby to modyfikacji w kodzie
Quote: |
Jedna uwaga - o dyskusji:
Pojęcia typu "jest sens" lub "nie ma sensu" niosą przeważnie subiektywne odczucia, nie zaś rzeczowe argumenty.
Stąd też wątek jest o około 3 posty dłuższy, niż być powinien.
|
ACK. |
|
Back to top |
|
|
|