2011-06-23 11 views
12

Po pierwsze: czy można używać Javy i pozwolić jej (częściowo) działać lub używać GPU? A jeśli to możliwe, czy można używać normalnej składni Java i nie używać specjalnej składni Cuda lub OpenCl?Java na GPU: pełna metoda bezpośrednio na GPUin plain Java

Chcę po prostu wziąć moje zakodowane źródło java i pozwolić mu działać z najmniejszymi możliwymi zmianami na GPU.

Byłbym bardzo wdzięczny za próbki kodu.

+1

http://gavab.escet.urjc.es/wiki/download/JavaOpenCL/Documentacion/JCUDA.pdf – duffymo

+1

Bliskie opcja może być Tilera który obsługuje Javę na swoich 100 rdzeniowych procesorach. –

Odpowiedz

6

Istnieje kilka Wiązania Java CUDA i OpenCL (jcuda.org, jocl.org, coś innego zwane również jocl), ale są to wszystko tylko sposoby, aby uzyskać CUDA lub OpenCL kodu działającego na GPU poprzez Java i wymaga, aby napisać kod specjalnie za to. Nie sądzę, że istnieje prosty sposób uruchomienia arbitralnego wielowątkowego programu Java na GPU z niewielkimi zmianami w kodzie.

Co robi twój program Java, który chcesz uruchomić na GPU?

Należy wziąć pod uwagę, że architektura GPU różni się znacznie od procesora; rdzenie na GPU nie są rdzeniami ogólnego przeznaczenia, które mogą robić wszystko i pracować niezależnie, tak jak w procesorze Intel x86. Aby naprawdę skorzystać z konkretnej architektury SIMD GPU, twój kod musi być napisany z myślą o tej architekturze.

+0

Witam, to symulacja trajektorii rakiety, po prostu integrując ruch. I chcę to zrobić na GPU, ponieważ jest to dla mojego projektu Boinc http://aerospaceresearch.net/constellation/, a niektórzy użytkownicy chcieliby zobaczyć aplikację GPU. A kiedy jest szybciej, jest jeszcze lepiej. Andreas –

+2

Czy algorytm jest masywnie konfigurowalny? Możesz studiować jedno z tych wiązań CUDA lub OpenCL, dowiedzieć się, jak działają GPU i zobaczyć, jak możesz zaimplementować swój algorytm w sposób odpowiedni dla GPU. To nie jest tak proste, jak po prostu rekompilacja istniejącego programu Java ... – Jesper

6

Rozważ Aparapi http://aparapi.github.io/. Próbuje konwertować kod bajtowy do OpenCL w środowisku wykonawczym. Możesz więc kodować swój GPU w czystej Javie.

Pełne ujawnienie, jestem głównym programistą Aparapi.

+1

Hmmm, będzie wyglądać, dziękuję! :) Więc będę musiał kupić newlaptop z gpu jeszcze wcześniej! :) –

+0

poszedłem zobaczyć twoją stronę github. Czy gdzieś jest samouczek Hello World? Chcę używać GPU do wykonywania niektórych obliczeń kryptograficznych. w Javie – Mordan

8

Kompilator GPU Rootbeer obsługuje uruchamianie dowolnego kodu Java na GPU. Jest bardziej w pełni funkcjonalny niż Aparapi. Rootbeer obsługuje arbirary grafów obiektów dowolnego typu.

To właśnie wydany open source na moim rachunku github: https://github.com/pcpratts/rootbeer1