問題タブ [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.
java - Java での GPU プログラミング
GPU プログラミングを使用して Java プログラムのパフォーマンスを向上させたい。インターネットで調べた結果、jcuda または jocl を使用すれば可能であることがわかりましたが、問題は、どちらの場合もカーネル コードを C で記述しなければならないことです。そして、すべてのスレッドに実行させたいアルゴリズムは、C で書くのは非常に複雑です (2 つの航空機の間で事故が発生するかどうかを知るためにいくつかの計算を行います)。そのため、オブジェクト指向言語が必要です。
解決策はありますか?それとも、プロジェクト全体を C++ に変換する必要がありますか?
ご協力いただきありがとうございます !
java - Eclipse で jcuda プログラムを実行するとエラーが発生する
私はJCudaが初めてです。Linux上のEclipseで簡単な例を書いてみます。このエラーが発生しましたが、その意味がわかりません。ここにコード:
Java ビルド パスからJcuda.jarを追加し、抽出したJCudaファイルを選択してネイティブ ライブラリの場所を編集します。エラーは次のとおりです。
どうか助けてください。本当に解決策が必要です。前もって感謝します。
cuda - libcudpp.so は CUDA 7.0 にありませんか?
私はjCudaを使用しており、CUDA 7.0を搭載したUbuntu 14.04のjcudaで利用可能なその例の1つ(JCudppHashSample)をコンパイルして実行しようとしました。
しかし、コンパイル時に、ライブラリ jcudpp は利用可能な libcudpp がないと言っています。そして、それがcuda sdkにないのかどうか疑問に思っていますか?
ソースを入手して手動で作成するという考えは好きではありません。
recursion - 並列処理を使用するには、この関数を再帰なしで解決してください
プレイヤーのすべての可能な組み合わせを計算してパーティションを形成するプロセスを最適化しようとしています。私の問題を理解するために、次の例を使用します。
たとえば、プレーヤーのセットがありN = {1,2,3,4,5}
、このプレーヤーは次のように再グループ化され{1,2},{3,4},{5}
ます。これは、プレイヤー 1 がプレイヤー 2 とシングル プレイヤーとしてプレイすることを意味します。プレーヤーの各グループには、一連の戦略または選択肢があります。各プレイヤーは、自分が所属したいグループを選択します。たとえば、グループ{1,2}
には次の可能性が{{1,2};{1,2,3,4}}
あります。つまり、プレイヤー{1,2}
は一緒にいるか、グループに参加するかを選択します{3,4}
。残りのプレイヤーに対する同じ説明:
これで、同じ戦略を選択したプレイヤーのグループが新しいグループ (連合) を形成します。たとえば、 group{1,2}
は戦略を選択しました。{1,2,3,4}
つまり、players は、players{1,2}
で新しいグループを形成したいと考えてい{3,4}
ます。プレイヤー{3,4}
は戦略を選択し{3,4,5}
、プレイヤーは戦略を{5}
選択します{3,4,5}
。同じ戦略を選択したプレーヤーはグループ化され、次のようなプレーヤーの最終的なパーティションが形成され{1,2},{3,4,5}
ます。プレイヤー{3,4,5}
は同じ戦略を選択したため、グループ化され、プレイヤー{1,2}
別の戦略を選んだので、彼らは一人でいました。このプロセスを再帰関数としてプログラムし、プレイヤーの許容可能なすべてのパーティションを取得しました。ここでの別の問題: 私の関数は可能なすべてのパーティションを生成し、多くの時間がかかる許容可能なものだけを取得します。
私の質問は、再帰関数を使用せずにこの問題を解決できるかどうかです。つまり、JCUDA で並列処理を使用するために、特に多くのプレーヤーと非常に多くのパーティションがある場合に、順次形式で使用します。ここでの理想的なソリューションは、MPI または JCUDA ですか?
java - cuMemcpyDtoH は CUDA_ERROR_INVALID_VALUE を生成します
非常に大きな配列を追加する非常に単純なscala jcudaプログラムがあります。デバイスからホストに 4 バイト以上をコピーするまで、すべてが正常にコンパイルおよび実行されます。4 バイトを超えてコピーしようとすると、CUDA_ERROR_INVALID_VALUE が発生します。
実際のプログラムのより良いコンテキストを提供するために、コンパイルして正常に実行されるカーネルコードを以下に示します。
また、いくつかの Java サンプル コードを自分の scala コードに変換しました。とにかく、以下は実行されるプログラム全体です。
とにかく、私のコンピューターのスペックを教えてください。コンピュート 3.0 対応の GTX 770M カードを使用したオプティマス セットアップで Ubuntu 14.04 を実行しています。NVCC バージョン 5.5 も実行しています。最後に、Java 8 でバージョン 2.11.6 の scala を実行しています。