以下內容亦有部分轉載內容,如有冒犯請見諒
JCuda 可以將CUDA runtime 和driver api與java相連接,從而實現java程序調用GPU資源,進行並行加速的目的
具體介紹可參考http://www.jcuda.org/jcuda/JCuda.html
一。 安裝JCUDA
1. 下載JCUDA libraries(注意此前電腦上應該已經安裝CUDA的相應文件,並且根據CUDA版本進行下載,比如我的cuda是4.0的,就需要選擇 version 0.4.0-beta1,compiled for cuda4.0)
http://www.jcuda.org/downloads/downloads.html
2. 解壓下載的zip文件,得到以下文件。將jar文件拷貝到java jdk lib文件目錄,例如我的:D:\jdk\lib下,dll 文件拷貝到bin 文件下:eg:D:\jdk\bin
3.設置環境變量
(win7 64bit)右鍵我的電腦--屬性--高級系統設置--高級--環境變量
在CLASSPATH(不區分大小寫)中添加值,以我的文件目錄爲例D:\jdk\lib\jcurand-0.4.0-beta1.jar....將jar文件路徑全部添加上。如果沒有CLASSPATh,可自己重新添加。
在path中添加d:\jdk\bin文件路徑,及存放.dll的文件路徑。
設置ok
4. 測試
測試代碼如下
import jcuda.*;
import jcuda.runtime.*;
public class JCudaRuntimeTest
{
public static void main(String args[])
{
Pointer pointer = new Pointer();
JCuda.cudaMalloc(pointer, 4);
System.out.println("Pointer: "+pointer);
JCuda.cudaFree(pointer);
}
}
可得到結果
二。安裝JOGL
1. 下載joamp-windows-amd64.7z(64bit win7系統)
https://github.com/jard/cs447/blob/master/jogamp-windows-amd64.7z
以及
jogl-1.1.1a-windows-amd64.zip
http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1a/
2. 解壓相應文件,同理 將jar和dll文件分別拷貝到lib和bin文件夾下,注意先copy jogl-1.1.1a中的文件,然後在拷貝joamp中的文件,用後者覆蓋前者相同的文件即可。因爲在jogl-1.1.1的解壓文件中還有jogl.jar 和jogl.dll文件,而joamp中沒有。
3.將jogl.jar 和jogl.all.jar加入的classpath中。
4.運行測試程序
import javax.media.opengl.*;
public class HelloWorld
{
public static void main(String arg[])
{
try
{
System.loadLibrary("jogl");
System.out.println("Hello World");
GLProfile profile = GLProfile.getDefault();
GLCapabilities caps = new GLCapabilities(profile);
System.out.println("Hello JOGL"); //如果現實hello jogl說明可以正常調用。
}
catch (Exception e)
{
System.out.println(e);
}
}
}
另說明:
在配置過程中出現了許多問題。比如說之前根據http://jogamp.org/wiki/index.php/Downloading_and_installing_JOGL網上得說明只下載了jogamp-windows-amd64.7z,並將jar,dll等正確放置,但是運行例子時總是報錯,說 no jogl in ....libraries,後來我發現lib 和bin目錄下確實沒有jogl.jar 和jogl.dll,誤打誤撞下載到了
jogl-1.1.1a-windows-amd64.zip ,發現裏面有,於是將其copy到相應位置,重新設置環境變量就好了。
但是目前還沒有進行比較複雜的程序的測試。不知道是否是真的正確配置了。
嗨。。。如此糾結。。。弄個配置就搞了一天。。。ps;這只是用cmd運行的例子,不知道用eclipse等ide該如何配置呢~~~