問題タブ [opencl]
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++ - QtOpenClの例、つまりOpenClのQtをインストールして実行する方法は?
ここに示すように、OpenClの例を実行する必要があります。http://labs.trolltech.com/blogs/2010/04/07/using-opencl-with-qt/。
問題は、どこから始めればよいのかわからないことです。QtOpenClのソースをダウンロードしましたが、有効なOpenClインストールが必要です。Qtはすでにインストールされています。
OpenClをインストールするにはどうすればよいですか?残念ながら、自宅にGPUを持っていないので、今のところCPUにGPUを実装する必要があります。後で、GPUを備えたシステムが提供されるプレゼンテーションを行う必要があります。OpenClをインストールするにはどうすればよいですか?
opencl - NVidia Visual Profiler を使用して OpenCL コードをプロファイリングできない
2 つの配列を追加して出力を出力する OpenCL コードがあります。CUDA Toolkit 3.0 に付属の NVidia Visual Profiler を使用して、このプログラムのプロファイルを作成したいと考えています。プロファイリングする適切なプログラム (.exe) とプログラム ディレクトリを選択しました。プロファイラーはコードを正常に実行しますが、プロファイリング結果を生成できません。「CSVファイルに空のヘッダーが見つかりました」というエラーが表示されます。これの何が問題になるのでしょうか? プロファイリングできるようにするには、NVidia の CUDA コンパイラを使用してコードをビルドする必要がありますか? この点で私を助けてください。
ありがとう、Rakesh K.
c++ - QtOpenCl「未定義の参照」がエラーを起こす
そこで、ATI Stream SDK をダウンロードしました。現在 gpu を持っていないので、「-device cpu」を使用し、ディレクトリを LD_LIBRARY_PATH などに追加して、OpenCl ディレクトリ内のプログラム/サンプルを動作させました。
問題は、QtOpenCl をインストールするときです。
構成スクリプトは私に与えます:
Makeは私に与えます:
「-no-openclgl」を使用して試してみましたが、サンプルなどはコンパイルされていません。
シナプスからインストールされたQtを使用してubuntu 10.04を使用しています。
visual-studio - *.cl、*.cu、*.cuh の VisualAssist をオフにする
Visual Studio 2010 で VisualAssist の影響を受けるファイルの種類を定義するにはどうすればよいですか?
たとえば、このツールが openCL および cuda ファイルでどのように機能するかが気に入らないため、これらのファイル タイプでは無効にしたいと考えています (そうしないと、1000 個のエラーが強調表示されます)。
macos - Mac OS X 10.6 で OpenCL 1.1 を利用するには?
OpenCL 1.0 には、Mac OS X 10.6 用の nVidia ドライバーが付属していました。OpenCL 1.1 API を利用するためにヘッダー ファイルを更新できるかどうか、またはどのようにできるか疑問に思っています。あらかじめご了承ください。
c++ - デバッグ情報を使用して OpenCL カーネルをコンパイルしますか?
デバッグ情報を使用して opencl カーネルをコンパイルするにはどうすればよいですか? デバッグを聞くのが好きなら
[const char* options = "-g";
clBuildProgram( *hProgram, 0, 0, オプション,NULL,NULL);]:
次のエラーが表示されます:
clang: 不明なコマンド ライン引数 '-g' です。試してください:「clang --help」
visual-studio-2010 - VisualStudio 2010 を OpenCL 用にセットアップする正しい方法
*.cl ファイルを操作するために VisualStuio 2010 をセットアップする正しい方法は何ですか? Tool/Text editor/File extensions の下に *.cl を追加し、usertype.dat を common7/ide フォルダーにコピーしましたが、VS は float4 や cross などのキーワードに下線を引いています。
レジストリにいくつかのキーを追加する必要がありますか、または誰かがチュートリアルを提案できますか?
前もって感謝します。
PS私はすでに同様の質問古い質問をしていますが、今はvs2010での解決策を明示的に探しています. 悪くはありませんが、本当に神経質になり、プログラミング作業から私をそらします。
memory-management - OpenCLの問題
私は OpenCL で問題に直面しています。誰かが原因についてヒントを得られることを願っています。以下は、問題を軽減したバージョンのプログラムです。サイズ 4000 の入力 int 配列があります。カーネルでスキャンを実行しています。明らかに、これを並行して行う良い方法がありますが、問題を再現するために、1 つのスレッドのみが計算全体を実行します。スキャン前は、入力 (result_mask) の値は 0 または 1 のみです。
予想される結果は、最初に 0 以外の値を持ち、結果マスクに 5 しかなかった要素の数です。しかし、そうではありません。出力は次のようになります。
この 80 要素のブロックは、約 1 秒後にどこかで取得します。3200要素。常に同じ位置ではありませんが、常に同じ要素数 (80) です。さらに奇妙なことに、最初の行を if(gid == 2000) に変更すると、問題はなくなります。しかし、スレッド ID をいじってみたところ、問題が解決したのではなく、移動しただけだという結論に達しました。スレッド 1425 を使用すると、半分の時間で問題が発生し、問題が発生すると、バグのあるブロックが配列の最後にあります。したがって、0と1がない場合、ブロックはさらに「移動」したと思います。さらに興味深いことに、入力サイズを 5000 に増やすと、出力はすべて 0 で構成されます。さらに、次のコードは機能しません。
一方、
動作します (やはり、より大きな入力では動作しない可能性があります)。デバイスの詳細は次のとおりです。
明らかに、私はここで何か大きなものを見逃しています。私が最初に考えたのは、80 個の要素のブロックが別の「スレッド」によってオーバーライドされるメモリの競合であるということでした。しかし、考えれば考えるほど意味がわからなくなってきます。
ヒントをいただければ幸いです。ありがとう。
編集:応答が遅くなって申し訳ありません。そのため、問題を再現するためにコードを最小限に抑えてコードを修正しました。以下は、プログラムの C コードです。
結果はまだ非決定論的です。出力のランダムな位置で 0 と 1 を取得します。ローカル ワークグループのサイズが 1 の場合、それらは配列の前半にあり、サイズが 2 の場合は配列の後半にあり、サイズが 4 の場合は後半にあり、200 要素の場合は問題ないように見えますが、ここでも 0 と 1 があります。問題のサイズは 400 です。さらに、グローバル ワーク グループのサイズが 1 の場合、すべて正常に動作します。つまり、2 つのカーネルを使用すると、1 つは [problem size] のグローバル ワーク グループ サイズで並列計算を実行し、もう 1 つはグローバル ワーク グループ サイズ 1 で並列計算を実行すると、すべてがうまく機能します。繰り返しますが、これがそれを行う方法ではないことを完全に認識しています(カーネルがそのようなシーケンシャルコードを実行している)が、何かが欠けているように見えるので、なぜそれが機能しないのか知りたい.
ありがとう、ヴァシル
build - バイナリからの OpenCL ビルド プログラム
コンパイル済みバイナリからプログラムを構築する OpenCL 機能をテストしようとしています。これまでのところ、バイナリ ファイルを作成することはできましたが、読み込むのに問題があります。このコードを C++ バインディングで使用できるように調整しようとしています。
誰かが私にこれを手伝ってくれたり、解決できるリンクを提案したりできますか (C++ バインディングを使用する必要があります)?
前もって感謝します!
matrix - グローバル ワーク サイズは OpenCL のワーク グループ サイズの倍数である必要がありますか?
こんにちは: グローバル ワーク サイズ (ディメンション) は、OpenCL のワーク グループ サイズ (ディメンション) の倍数である必要がありますか?
もしそうなら、作業グループの次元の倍数ではなく、マトリックスを処理する標準的な方法はありますか? 次の 2 つの可能性が考えられます。
作業グループ ディメンションのサイズをグローバル作業ディメンションの係数に動的に設定します。(これにより、要素を見つけるオーバーヘッドが発生し、ワーク グループが最適でないサイズに設定される可能性があります。)
グローバル作業の次元を作業グループの次元の最も近い倍数に増やし、すべての入力および出力バッファーを同じに保ちますが、セグメンテーション違反を回避するためにカーネルの境界をチェックします。つまり、目的の出力の境界外の作業項目に対しては何もしません。 . (これはより良い方法のようです。)
2番目の方法は機能しますか?より良い方法はありますか?(または、作業グループのディメンションはグローバルな作業ディメンションを分割する必要がないため、必要ないのでしょうか?)
ありがとう!