問題タブ [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.

0 投票する
1 に答える
224 参照

cuda - Jcudaでエラー処理はどのように行われますか?

CUDA では、cudaSuccess で cudaError_t である cudaMemcpy()、cudaMalloc() などの関数の戻り値の型をチェックするだけで、エラーについて知ることができます。cuMemcpyHtoD()、cuMemAlloc()、cuLaunchKernel() などの関数のエラーをチェックするために JCuda で使用できるメソッドはありますか?

0 投票する
1 に答える
262 参照

cuda - jCUDA の関数 cuMemcpyHtoD のエラー

私はJavaプログラミングが初めてで、jCUDAで行列乗算プログラムをコーディングしようとしています。

ホストからデバイスへ、またはその逆にデータを転送するときに、次を使用します。

ここで、devMatrixA、devMatrixB、および devMatrixC は、デバイス メモリに格納されるマトリックスです。また、hostMatrixA、hostMatrixB、および hostMatrixC は、ホスト メモリに格納されている行列です。

データ転送のために上記の関数を呼び出すと、「ポインター型のメソッド to(byte[]) は引数 (float[][]) には適用されません」というエラーが表示されます。 (' には赤い下線が引かれています。Eclipse を使用しています。以下のように完全なコードを指定しました。

私のJavaの知識を許してください。間違った方向に進んでいるかどうかを提案してください。

0 投票する
1 に答える
524 参照

eclipse - Eclipse で SDK から jCUDA サンプルをコンパイル中にエラーが発生しました '入力ファイルが見つかりません: JCudaVectorAddKernel.cu'

私はjCUDAとJavaも初めてです。Redhat Linux で Eclipse を使用して、NVIDIA サンプルからベクトル加算プログラムをコンパイルしようとしています。

私が従った手順: 1. 入力: nvcc -ptx JCudaVectorAddKernel.cu -> JCudaVectorAddKernel.ptx ファイルを生成します 2. 次のプログラムを実行します: JCudaVectorAdd.java:

パッケージ JCudaVectorAdd;

JCudaVectorAddKernel.cu:

「JCudaVectorAddKernel.cu」と「JCudaVectorAddKernel.java」の両方が同じパスにあります: /home/sandeep/workspace1/jCuda/jCudaVectorAdd/src/jCudaVectorAdd

Eclipse でプログラムを実行すると、次のエラーが表示されます。

コンパイルコマンドに関連して何かすることはありますか? またはptx / .cuファイルパス?私が間違った方向に進んでいる場合は、私を導いてください。

0 投票する
1 に答える
967 参照

cuda - カーネル呼び出し cuLaunchKernel() の「sharedMemBytes」引数の意味は何ですか?

JCuda で共有メモリを使用して単純な行列乗算プログラムを実装しようとしています。

以下は私の JCudaSharedMatrixMul.java コードです:

以下は私の JCudaSharedMatrixMulKernel.cu コードです:

上記の例では、ブロックごとに使用される共有メモリの合計は 2*4*4*4 = 128 バイトです。cuLaunchKernel でsharedMemBytesパラメータを 0(ゼロ) として定義すると、次のエラーが表示されます。

128 と定義すると、上記と同じエラーが発生します。しかし、それを 129 にすると、正しい出力が得られます! 129 から 49024 までの値を指定すると、正しい結果が得られます。私の質問は、128 と定義しているときに正しい出力を取得できないのはなぜですか? また、定義できる最大共有メモリはいくつですか? この 129-49024 の範囲がここで機能しているのはなぜですか?

0 投票する
1 に答える
315 参照

cuda - 共有メモリを使用せずに行列要素の動径平均を効率的に実行する方法

CUDA で行列要素の放射平均を実装しようとしています。ここでは、すべての行列要素のすべての隣接要素 (それ自体を含む) の平均を見つけて出力する必要があります。以下は私が最終的に得たものです(半径= 1の場合):

上記のコードは、一番上の行、一番下の行、一番右と一番左の列要素の条件をチェックし、6 要素の平均を計算する必要があります。4つの要素の平均を計算する必要がある4つのコーナー要素についても答えます。残りの内部要素については、9 つ​​の要素の平均を計算する必要があります。上記のコードは、単純に C を CUDA プログラムに変換したものです。共有メモリを使用せずにプログラムを作成する最も効率的な方法を探しています。任意の半径について。任意のアルゴリズム、疑似コード、または提案で十分です。前もって感謝します。

0 投票する
0 に答える
336 参照

java - Jcuda 並列化 for ループ

私はJavaのcudaの初心者です。やるべきことは単純で、for ループを並列化します。

私の for ループは非常に単純です。オブジェクトの配列があり、配列内の各オブジェクトに対していくつかの「評価」を実行する必要があります。

これを並列化できるのだろうかと思っていました。JCuda では複雑なものの例しか見つかりませんでした。

助けてくれてありがとう

マリア

0 投票する
1 に答える
131 参照

java - JCufft を使用した実数から複素数への FFT

次のように、org.apache.commons.math3.transform ライブラリを使用して実数から複素数への FFT を実行しています。

これにより、結果を含む org.apache.commons.math3.complex 配列が得られます。これはうまくいきます。

ここで、JCufft ライブラリでまったく同じことを実行したいと考えています。私は次のようにそれをやろうとしました:

しかし、結果を比較していると、それらは互いに異なります。私が考慮していないこと、何が間違っているのですか?

ご協力いただきありがとうございます。