0

私はRootbeerの使い方を学んでいるので、次のことをしました:

[1] ダウンロードした Rootbeer-1.2.3.jar

[2] CUDA ツールキットと CUDA ドライバーを以下からインストール: http://www.nvidia.com/content/cuda/cuda-downloads.html

[3] 以下のサンプルプログラムをコンパイルしました。

[4] NetBeans 8.0.2 から ArrayMultApp を実行

import java.util.List;
import java.util.ArrayList;
import org.trifort.rootbeer.runtime.Kernel;
import org.trifort.rootbeer.runtime.Rootbeer;

public class ArrayMultApp
{
  public void multArray(int[] array)
  {
    List<Kernel> jobs=new ArrayList();
    for (int i=0;i<array.length;++i) jobs.add(new ArrayMult(array,i));
    Rootbeer rootbeer=new Rootbeer();
    rootbeer.run(jobs);
  }

  public static void main(String[] args)
  {
    ArrayMultApp app=new ArrayMultApp();
    int[] array=new int[10];
    for (int i=0;i<array.length;++i) array[i]=i;
    for (int i=0;i<array.length;++i) System.out.println("start array["+i+"]: "+array[i]);
    app.multArray(array);
    for (int i=0;i<array.length;++i) System.out.println("final array["+i+"]: "+array[i]);
  }
}

class ArrayMult implements Kernel
{
  private int[] m_source;
  private int m_index;

  public ArrayMult(int[] source,int index)
  {
    m_source=source;
    m_index=index;
  }

  public void gpuMethod()
  {
    m_source[m_index]*=11;
  }
}

しかし、次のエラーメッセージが表示されました:

start array[0]: 0
start array[1]: 1
start array[2]: 2
start array[3]: 3
start array[4]: 4
start array[5]: 5
start array[6]: 6
start array[7]: 7
start array[8]: 8
start array[9]: 9
Exception in thread "main" java.lang.ClassCastException: ArrayMult cannot be cast to org.trifort.rootbeer.runtime.CompiledKernel
    at org.trifort.rootbeer.runtime.CUDAContext.setKernel(CUDAContext.java:119)Java Result: 1

Intel Core i7 x 980、NVIDA GeForce GTX 780、および Win 7 64 ビットの Java 8 を使用しています。

Rootbeer サイトからサンプル アプリをコピーしましたが、エラー メッセージが表示された理由とその修正方法を教えてください。

編集:1つ言い忘れましたが、インストール中に、Microsoft Visual Studioを持っていないと言われ、そのようなものと、それに関するいくつかの部分がインストールされていないと言われました。 Visual Studioが必要で、それらのパーツがなくてもかまいませんでした。それが問題でしょうか? Rootbeer を Java 開発に使用する前に、まず Microsoft Visual Studio を購入してインストールする必要があるということですか?

指示に従って [ C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.5\bin\win64\Release> ] に移動し、多くのテストを実行しました。それらはすべて正常に動作し、小さなウィンドウで画像が処理されているのを確認できます正しく。

jar しようとすると、次のエラーが発生しました。

C:\Dir_Rootbeer_Samples\dist>java -jar lib/Rootbeer-1.2.3.jar Rootbeer_Samples.jar Rootbeer_Samples-GPU.jar
warning: sm_12 and sm_11 not supported with recursion. use -norecursion to enable.
warning: sm_12 and sm_11 not supported with doubles. use -nodoubles to enable.
caching package names for: C:\Dir_Rootbeer_Samples\dist\Rootbeer_Samples.jar
cpool == null
java.lang.NullPointerException
        at soot.rbclassload.RootbeerClassLoader.loadHierarchySootClasses(RootbeerClassLoader.java:963)
        at soot.rbclassload.RootbeerClassLoader.loadNecessaryClasses(RootbeerClassLoader.java:294)
        at org.trifort.rootbeer.entry.RootbeerCompiler.setupSoot(RootbeerCompiler.java:198)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:219)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:213)
        at org.trifort.rootbeer.entry.Main.run(Main.java:208)
        at org.trifort.rootbeer.entry.Main.main(Main.java:244)
caching package names for: C:\Dir_Rootbeer_Samples\dist\lib\Rootbeer-1.2.3.jar
caching package names for: C:\Program Files\Java\jre1.8.0_20\lib\rt.jar
cpool == null
java.lang.NullPointerException
        at soot.rbclassload.RootbeerClassLoader.loadHierarchySootClasses(RootbeerClassLoader.java:963)
        at soot.rbclassload.RootbeerClassLoader.loadNecessaryClasses(RootbeerClassLoader.java:294)
        at org.trifort.rootbeer.entry.RootbeerCompiler.setupSoot(RootbeerCompiler.java:198)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:219)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:213)
        at org.trifort.rootbeer.entry.Main.run(Main.java:208)
        at org.trifort.rootbeer.entry.Main.main(Main.java:244)
caching package names for: Rootbeer_Samples.jar
cpool == null
java.lang.NullPointerException
        at soot.rbclassload.RootbeerClassLoader.loadHierarchySootClasses(RootbeerClassLoader.java:963)
        at soot.rbclassload.RootbeerClassLoader.loadNecessaryClasses(RootbeerClassLoader.java:294)
        at org.trifort.rootbeer.entry.RootbeerCompiler.setupSoot(RootbeerCompiler.java:198)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:219)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:213)
        at org.trifort.rootbeer.entry.Main.run(Main.java:208)
        at org.trifort.rootbeer.entry.Main.main(Main.java:244)
remapping class: java.util.concurrent.atomic.AtomicLong
java.lang.NullPointerException
        at soot.rbclassload.RootbeerClassLoader.remapClasses(RootbeerClassLoader.java:998)
        at soot.rbclassload.RootbeerClassLoader.loadNecessaryClasses(RootbeerClassLoader.java:295)
        at org.trifort.rootbeer.entry.RootbeerCompiler.setupSoot(RootbeerCompiler.java:198)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:219)
        at org.trifort.rootbeer.entry.RootbeerCompiler.compile(RootbeerCompiler.java:213)
        at org.trifort.rootbeer.entry.Main.run(Main.java:208)
        at org.trifort.rootbeer.entry.Main.main(Main.java:244)

C:\Dir_Rootbeer_Samples\dist>
4

0 に答える 0