2011-06-23 27 views
12

首先:是否可以使用Java並讓它(部分)在GPU上運行或使用GPU? 如果可能的話,是否可以使用普通的Java語法,而不是使用特殊的cuda或opencl語法?Java上的GPU:直接在GPU上的完整方法in plain Java

我想只取我編碼的Java源代碼,讓它在GPU上執行最小的更改。

我將不勝感激代碼示例。

+1

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

+1

關閉選項可能是Tilera的它在其100個核心處理器上支持Java。 –

回答

6

有幾種Java綁定到CUDA和OpenCL(jcuda.orgjocl.org,別的東西也被稱爲jocl),但這些都只是途徑獲得通過Java GPU上運行CUDA和OpenCL的代碼,並要求專門編寫代碼爲了那個原因。我不認爲有一種簡單的方法可以在GPU上運行任意多線程Java程序,只需對代碼稍作更改即可。

您的Java程序在GPU上運行的是什麼?

您必須考慮到GPU的體系結構與CPU的體系結構完全不同; GPU上的內核不是通用的內核,可以做任何事情並獨立工作,就像在Intel x86 CPU中一樣。爲了充分利用GPU的特定SIMD架構,您的代碼必須考慮到該架構。

+0

嗨, 它模擬火箭的軌跡,只是整合了運動。我想把它放在GPU上,因爲它是用於我的Boinc項目http://aerospaceresearch.net/constellation/,而且有些用戶真的很想看到GPU應用程序。如果速度更快,那會更好。 Andreas –

+2

該算法是否可以大規模並行化?您可以學習其中一種CUDA或OpenCL綁定,瞭解GPU如何工作,並瞭解如何以適合GPU的方式實現算法。它不像重新編譯現有的Java程序那樣簡單... – Jesper

6

考慮Aparapi http://aparapi.github.io/。它試圖在運行時將字節碼轉換爲OpenCL。所以你可以用純Java編寫你的GPU。

完全披露,我是Aparapi的首席開發人員。

+1

嗯,會看看,謝謝! :) 因此,我需要更早購買一個新的gpu與gpu! :) –

+0

去看你的github頁面。有什麼地方出現Hello World教程?我想用GPU來做一些加密計算。在Java中 – Mordan

8

Rootbeer GPU編譯器支持在GPU上運行任意Java代碼。它比Aparapi更全面。 Rootbeer支持任何類型的arbirary對象圖。

這是剛剛發佈的開源對我的github帳戶: https://github.com/pcpratts/rootbeer1