2012-02-26 13 views
0

この質問はすべての関連バージョンを示しています。JCUDAを実行できません0.4.1 Windows 7 64ビット、Sun JDK 7、およびIntelliJ 11.1のCUDA 4.0以上

サンプルファイルの1つ、http://www.jcuda.org(JCublasMatrixInvert.java)を実行しようとしています。

NVIDIA CUDAドライバがインストールされています。私はJCUDA 0.4.1バインディングをダウンロードし、/ libディレクトリをjava.library.pathに追加しました。ここで私が実行したときに、私は設定JVMパラメータは、次のとおりです。

-ea -XX:+UseParNewGC -XX:+UseNUMA -XX:PermSize=128m -XX:MaxPermSize=256m -Xmx1024m -Djava.library.path=F:\Projects\Java\learning\out\production\learning 

しかし、私は、私は次のスタックトレースを取得するクラスを実行しようとすると:

Error while loading native library "JCublas-windows-x86_64" with base name "JCublas" 
Operating system name: Windows 7 
Architecture   : amd64 
Architecture bit size: 64 
Stack trace from the attempt to load the library as a resource: 
java.lang.NullPointerException: No resource found with name '/lib/JCublas-windows-x86_64.dll' 
    at jcuda.LibUtils.loadLibraryResource(LibUtils.java:151) 
    at jcuda.LibUtils.loadLibrary(LibUtils.java:83) 
    at jcuda.jcublas.JCublas.initialize(JCublas.java:82) 
    at jcuda.jcublas.JCublas.<clinit>(JCublas.java:70) 
    at matrix.jcuda.JCublasMatrixInvert.main(JCublasMatrixInvert.java:34) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Stack trace from the attempt to load the library as a file: 
java.lang.UnsatisfiedLinkError: F:\Projects\Java\learning\out\production\learning\JCublas-windows-x86_64.dll: Can't find dependent libraries 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928) 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:845) 
    at java.lang.System.loadLibrary(System.java:1084) 
    at jcuda.LibUtils.loadLibrary(LibUtils.java:94) 
    at jcuda.jcublas.JCublas.initialize(JCublas.java:82) 
    at jcuda.jcublas.JCublas.<clinit>(JCublas.java:70) 
    at matrix.jcuda.JCublasMatrixInvert.main(JCublasMatrixInvert.java:34) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load the native library 
    at jcuda.LibUtils.loadLibrary(LibUtils.java:129) 
    at jcuda.jcublas.JCublas.initialize(JCublas.java:82) 
    at jcuda.jcublas.JCublas.<clinit>(JCublas.java:70) 
    at matrix.jcuda.JCublasMatrixInvert.main(JCublasMatrixInvert.java:34) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

Process finished with exit code 1 

私はパスで伝えられるところでは不足しているdllファイルを見ることができます

F:\Projects\Java\learning\out\production\learning\JCublas-windows-x86_64.dll 

私は何が欠けていますか?私は間違って何をしていますか?この例を実行して成功した人は、私に助言することができますか?ありがとう。

+0

'F:\ Projects \ Java \ learning \ out \ production \ learning \ JCublas-windows-x86_64.dll'に表示されるファイルは、' Can not (おそらく 'java.lang.NullPointerException:名前が '/ lib/JCublas-windows-x86_64.dll'のリソースが見つかりません)が存在しないか破損しているライブラリがあります。少なくともそれは私の推測だろう。 – ShoeMaker

+0

ありがとう、私はそれを試してみましょう。 – duffymo

答えて

0

jCudaダウンロードセクションからそのファイルをダウンロードして、ライブラリパスに挿入します。

+0

私は努力を感謝しますが、 "私は、パスにdllが見つからないと思われます"という行を読んでいましたか?私はDLLを持っていますが、私はそれをパスで見ることができます。私のjava.library.pathはそのディレクトリを指しています。申し訳ありませんが、これは役に立ちません。 – duffymo

+0

申し訳ありませんが、私はこれを忘れてしまいました。 "自分の/ libディレクトリをjava.library.pathに追加しましたが、" -Djava.library.path = F:¥Projects¥Java¥learning¥out¥production¥learning "にはlibがありません – djmj

+0

心配することはありません、ありがとうございます探している。私は努力を感謝します。あなたが最初に試してみてください。 – duffymo

1

標準的な方法が難しい場合 - 私はあなたがJCudaのmavenizedバージョンを使用することをお勧めします。あなたがここにあなたのプラットフォーム用のクーダ5.5をインストールする必要が

  • - https://developer.nvidia.com/cuda-downloadsを:すべてを行う必要が実行することですhttps://github.com/MysterionRise/mavenized-jcudaは、Windows/Linuxの32/64ビット

    のために自動的に働いている - あなたはここで、標準的なプロジェクトのクローンを作成することができあなたはJCudaコード

  • でメインクラスを置き換えることができた後、「こんにちは、JCuda」サンプル:)
  • でメインクラスを実行するためのexec:プロジェクト
  • コールMVN execを構築するための
  • コールMVNきれいなパッケージ
関連する問題