問題タブ [jcuda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - エラーの原因となる JCuda グローバル共有メモリ
jcudaで共有メモリを使用して、非常に単純なことをしようとしています。私のカーネル:
共有メモリをグローバルにすると、デバイス関数で使用できるようになりますが、残念ながら、共有メモリをグローバルに宣言することさえできません。カーネルが起動できないという問題で Cuda がクラッシュするだけです。私もやってみました:
ただし、nvcc コンパイラは、共有メモリを外部リンクできないというエラーを返します。カーネルの記述を容易にするためにこれを機能させたいのですが、方法がわかりません。
maven - Maven で Maven 化された jCuda をビルドする
さて、私はNvidiaドライバーとcuda 7を正常にインストールし、すでにEclipseで多くのjcuda(Mavenizedではない)プロジェクトを構築して実行しています。
しかし、私は mavenized バージョン 1 に移行したかったのです。そこで、このリポジトリをクローンしてビルドしてみました。私はUbuntu 14.04 x64を使用しており、 nexusもセットアップしました。しかし、私がそれを構築したいとき、
mvn clean package
私はこれを手に入れました:
Downloading: http://localhost:8081/nexus/content/groups/public/jcuda/jcublas/0.7.0a/jcublas-0.7.0a.pom
[WARNING] The POM for jcuda:jcublas:jar:0.7.0a is missing, no dependency information available
すべての *. ポンポン
これらの警告の後、ビルドは次のように失敗して終了します。
Could not resolve dependencies for project org.mystic:mavenized-
jcuda:jar:0.1.2: The following artifacts could not be resolved: jcuda:jcublas:jar:0.7.0a, jcuda:jcuda:jar:0.7.0a ...
すべての jcuda * を一覧表示します。瓶と*。ソス
私は何かを忘れましたか?
更新:
オプションを使用-Dmaven.repo.local=repo
しましたがmvn clean package
、すべて問題ありません。
cuda - JCudaでネイティブポインタの構造体を作成するにはどうすればよいですか
構造体のリストを受け取る CUDA カーネルがあります。
各構造体には 3 つのポインターが含まれます。
float を含む 3 つのデバイス配列があり、構造体内の各ポインターは、3 つのデバイス配列のいずれか内の float を指しています。
構造体のリストは、カーネルに送信される構造体のリストの順序に応じて、カーネルが再帰的な操作を実行できるようにするツリー/グラフ構造を表します。(このビットは C++ で動作するため、私の問題とは関係ありません)
私がやりたいことは、JCuda からポインターの構造体を送信できるようにすることです。この投稿のようにパディングされた配列にフラット化されない限り、これはネイティブに可能ではないことを理解しています。
構造体のリストを送信するときに発生する可能性のある配置とパディングに関するすべての問題を理解しています。これは本質的に、私が問題なく繰り返しているパディングされた配列です。
どうすればよいかわからないのは、フラット化された構造体バッファーにポインターを設定することです。たとえば、次のようなことができると思います。
structListBuffer
次に、カーネルが期待する方法で構造体のリストを含めます。
someGetUnderlyingPointerValueFunction()
では、ByteBuffer から実行する方法はありますか?
cuda - JCuda での JIT、複数の ptx モジュールのロード
この質問で、JCuda で ptx モジュールをロードする際に問題があると言いました。@talonmies のアイデアの後、彼のソリューションの JCuda バージョンを実装して、複数の ptx ファイルをロードし、それらを単一のモジュールとしてロードしました。コードの関連部分は次のとおりです。
CUDA_ERROR_INVALID_IMAGE
しかし、メソッドの呼び出し時にエラーが発生しましたcuModuleLoadData
。cuLinkComplete
デバッグ中に、メソッドを呼び出して画像配列を出力として渡しても、配列は変更されておらず、クリアされていることがわかりました。出力パラメーターを正しく渡していますか? これは、JCudaで参照によって変数を渡す方法ですか?
jcuda - jcuda cuModuleLoad() は getClass().getResource().getPath() のパスを使用してファイルをロードできません
からファイルcuModuleLoad()
をロードするために JCuda で使用しようとしています。コードは次のとおりです。vectorAdd.ptx
/src/main/resources
しかし、cuModuleLoad()
はこのファイルを取得しません。の絶対パスを渡した場合にのみ機能しptx file
ます。ptx file
しかし、 compile を同梱したいと思いますjar files
。これを達成する方法はありますか?
jcuda - jCuda cuLaunchKernel の仕組みを理解できませんか?
JavaでCudaを使用する方法を理解しようとしています。jCudaを使用しています。
コードを含む例に出くわすまで、すべて問題ありませんでした:
カーネル関数のプロトタイプは次のとおりです。
問題は 、c に関しては、次のようなものを渡しているように見えませんか?
つまり、基本的に、常に次のものが必要ですか。
ありがとうございました
java - JCuda ラッパーを使用して memcheck で CUDA をデバッグする
JCuda を使用する画像セグメンテーション プログラムに取り組んでいます。このプロジェクトは Maven プロジェクトですが、JCuda の依存関係は dll ファイルに保存されており、maven では管理されていません。Jcuda によって呼び出される Cuda カーネル (*.ptx) でランタイム エラーが発生したため、Cuda の Java ラッパーを使用すると比較的困難なデバッグを開始したいと考えています。したがって、Java プログラムを呼び出す *.bat ファイルが必要な「memcheck」を使用したいと考えています。ここが迷うポイントです。*.bat ファイルの java コマンドで実行できる実行可能な jar ファイルを作成できません。私の質問は、実行可能なjarファイルを作成せずに、Cudaコードをデバッグできる別の方法はありますか? –そうでない場合、maven から実行可能な jar ファイルを作成するにはどうすればよいですか?
他の人にもその質問があったことは承知していますが、答えが得られなかったため、dll ファイルが関係していると思われます。プロジェクトをmavenでパッケージ化しようとしました(maven built… -> goal: package)。コマンド プロンプトを使用して jar ファイルが作成されたターゲット ディレクトリに移動すると、プログラムが実行されません。
応答は、主要なマニフェスト属性が見つからないことを意味します。メインクラスを定義することになっている私のpomファイルのスナップショットは次のとおりです。
ご協力ありがとうございました。これは、スタック オーバーフローに関する最初の投稿です。質問の矛盾点を指摘してください。
hadoop - Hadoop-2.6.0 では、仮想メモリが不足しているためコンテナが強制終了されました
Hadoop で jcuda コードを実装しようとしていますが、ローカル モードで動作しましたが、hadoop クラスターでジョブを実行すると、エラーが表示されます: コンテナーが強制終了されました。具体的なエラー レポートは次のとおりです。
16/04/29 10:18:07 INFO mapreduce.Job: Task Id: attempts_1461835313661_0014_r_000009_2, Status: FAILED Container [pid=19894,containerID=container_1461835313661_0014_01_000021] が仮想メモリの制限を超えて実行されています。現在の使用量: 1 GB の物理メモリのうち 197.5 MB が使用されています。2.1 GB の仮想メモリのうち 20.9 GB を使用。殺人コンテナ。
入力データはわずか 200MB ですが、ジョブは 20.9GB の仮想メモリを要求します。理由はわかりません。仮想メモリを増やそうとしましたが、構成は yarn-site.xml にあります。
それは機能していません、私はそれを愛することを知りません、そして私は私の貧弱な英語で申し訳ありません.
java - CUDA カーネルで変数にアクセスするときの CUDA_ERROR_ILLEGAL_ADDRESS
CUDA_ERROR_ILLEGAL_ADDRESS
ブッダブロ フラクタル軌道の計算に使用されるカーネルを実行しようとすると、例外が発生します。
私は今、複数のことを試しましたが、最初に考えたこととは反対に、エラーは配列に起因しているようには見えません。例えば、
うまくいきます。ただし、デバッグしようとしたときidx
(エラーは配列に関連していると最初に思ったことを思い出してください)、idx をそのように割り当てることもできないことがわかりました。
printfステートメントでも使用しないでください
curX
andでも同じことを試しましたが、curY
これも動作を拒否しましたがcR
、たとえば、エラーなしで動作します。最も内側のループ内で代入された変数に問題があるようです (私も代入できません)。そのため、関数の開始時にすべてのループの外側でk
宣言しようとしましたが、役に立ちませんでした。idx
それでも同じエラーです。
スタックトレース:
定数:
MCVE: