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

0 投票する
10 に答える
15468 参照

encoding - DirectShow でのリアルタイム ビデオ エンコーディング

DirectShow を使用して外部デバイスからビデオをキャプチャする Windows アプリケーションを開発しました。画像の解像度は 640x480 で、圧縮せずに保存されたビデオは非常に巨大なサイズ (毎秒約 27MB) になります。

私の目標は、このサイズをできるだけ小さくすることなので、ビデオをリアルタイムで圧縮できるエンコーダーを探しています。H.264、MPEG-2、またはその他のものである可能性があります。ビデオをディスクに保存できるようにする必要があり、ネットワーク経由でリアルタイムでストリーミングすることもできれば最高です (Wi-Fi なので、サイズは毎秒約 1MB 以下にする必要があります)。大幅な品質低下は容認できません。

このタスクに適した DirectShow フィルターを入手するのは非常に難しいことがわかりました。クライアント マシンはかなり最新のもの (高速な 2 コア CPU) であり、CUDA/OpenCL を利用できると想定できます。CUDA を使用してビデオをエンコードし、優れたパフォーマンスを提供するアプリがいくつかありますが、開発に使用できる適切な DirectShow フィルターまたは API が見つかりませんでした。NVIDIA nvcuvenc.dll にはプライベート API があるようで、直接使用できません。私が見つけた CPU ベースのエンコーダーはどれも私の要件に対して遅すぎますが、見逃しているものもあるかもしれません。

CPU/CUDA/OpenCL または DirectCompute を使用しているかどうかに関係なく、優れたパフォーマンスを実現できるソリューション、つまりエンコーダー (クローズド ソース アプリで使用できる有料または無料) を誰かに勧めてもらえますか? それとも、外部ハードウェア ビデオ エンコーダーを使用する必要がありますか?

よろしくお願いします、

マッドバジャー

0 投票する
4 に答える
907 参照

matlab - matlab共有c++ライブラリとOpenCL

多くの画像処理を必要とするプロジェクトがあり、GPUサポートを追加して処理を高速化したいと考えていました。

matlabをc++共有ライブラリにコンパイルしてOpenCLプログラム内から呼び出したのではないかと思っていましたが、それはmatlabコードがGPUで実行されることを意味しますか?

0 投票する
5 に答える
21012 参照

opencl - OpenCLとDirectCompute?

OpenCLDirectComputeの比較を探していますが、何も見つかりませんでした。クロスプラットフォームであり、サポートされるGPUの範囲が広いというOpenCLの利点は、私には関係ありません。DX11GPUに対してのみWindowsでコーディングしても問題ありません。それを前提として、各APIの長所と短所は何ですか?

私はこの質問が以前に提起されたことを知っていますが、私はより多くの詳細を探しています。

Nvidiaハードウェアだけに制限したくないので、CUDAには興味がありません。

0 投票する
3 に答える
1471 参照

frameworks - CUDAおよびOpenCLの前のGPGPU

私はCUDAとOpenCLについて読んでいて、これらのフレームワークが登場する前は、開発者はOPENGLやD3Dなどの低レベルのAPIしか使用できなかったことを学びました。残念ながら、私はそれについて多くの情報を見つけることができませんでした。

それは広く普及した、または商業的な慣行でしたか、それとも彼らが研究室や軍事研究所で使用したものでしたか?ここの誰かが以前のGPGPUプログラミングの経験があると確信しています。

0 投票する
2 に答える
646 参照

cuda - How can I programmatically determine a GPU's memory bus width and clock rate?

How can I programmatically determine a GPU's memory bus width and memory clock rate? I want to use these numbers to compute the maximum theoretical memory bandwidth. I'm mostly interested in NVIDIA GPUs.

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

opencl - OpenCLのワークアイテム、ワークグループ、コマンドキューの編成とメモリ制限

さて、私はすでにOpenCLのほとんどのatiガイドとnvidiaガイドを読んでいます。確認したいことがいくつかあり、説明が必要なものもあります。ドキュメントには明確な答えを与えるものはありません。

今、私はradeon 4650を持っています、今私のデバイスを照会すると、私は得ました

まず、私のカードには1GBのメモリがありますが、なぜ256MBしか許可されないのですか?

2番目に、作業項目ディメンションの部分がわかりません。つまり、最大128*3または128^3の作業項目を持つことができますか?

クエリを実行する前にこれを計算すると、8コア*16ストリームプロセッサ*4ワークアイテム=512なぜこれが間違っているのですか?

また、インテルCore 2 Duo CPU用に同じ3次元の作業項目のものを入手しましたが、同じ計算が適用されますか?

コマンドキューに関しては、OpenCLを使用してデバイスとしてコアデュオCPUにアクセスしようとすると、1つのコアでのみ処理され、複数のキューを実行して複数のエントリをキューに入れようとしましたが、それでも1つのコアでのみ処理されました。 global_work_sizeは128*128 * 128 * 8で、各作業項目が独自のグローバルIDをバッファーに書き込み、ゼロのみを取得する単純な書き込みプログラムの場合。

そして、Nvidiaカードはどうですか?32個のcudaコアを備えたNvidia9500GTで、作業項目は同様に計算されますか?

どうもありがとう、私は本当に答えを見つけようとしていたるところにいます。

0 投票する
4 に答える
1755 参照

opencl - CPU と GPU で同時に実行するために OpenCL カーネルをスパンすることが可能

マルチコア プロセッサと GPU を搭載したコンピュータを使用しているとします。プラットフォームのすべてのコアで実行される OpenCL プログラムを作成したいと考えています。これは可能ですか、それともカーネルを実行する単一のデバイスを選択する必要がありますか?

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

cuda - get_global_id() を複数回呼び出して、結果をローカル変数に保存しますか?

ばかげた質問かもしれませんがget_*、OpenCL カーネルで関数を呼び出すのにどれくらいの費用がかかりますか? 結果を将来の使用のためにいくつかのローカル変数に保存するか、必要なときにいつでも目的の関数を呼び出す方がよいでしょうか?

それともプラットフォーム依存ですか?

PS私が思うに、cudaはさまざまなthreadIdx変数を使用してより適切に解決します。

0 投票する
5 に答える
17126 参照

iphone - IPadまたはiPhoneのいずれかがOpenCLに対応していますか?

マルチメディア対応のモバイルデバイスへの移行により、これは、汎用ソフトウェアの電力効率を維持しながら、これらのプラットフォームのパフォーマンスを向上させる論理的な方法のように思われます。私は、UIとデータ表示/エントリの使用のための開発プラットフォームとしてIPadハードウェアに興味を持っていました。しかし、デバイス自体がどれだけの処理能力を備えているのか興味があります。OpenCLは、ライセンスがちょっと悪臭を放っているように見えますが、開発するのにJUICYハードウェアプラットフォームになります。

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

opencl - OpenCL の Linux 関数インターセプト

私はCにかなり慣れていないので、優しくしてください。

Linux のライブラリ インターセプト メソッドを使用して、OpenCL ライブラリへの呼び出しを独自のライブラリに置き換えたいと考えています。これは LD_PRELOAD を使用して実行できることを理解しています。そのため、OpenCL ヘッダー ファイルで定義されているように、自分のライブラリ内で OpenCL 関数を再実装するだけで、リンクすることができます。

問題は、この OpenCL ヘッダーにいくつかの extern 構造体定義も含まれていることです。

typedef struct _cl_mem * cl_mem;

OpenCLヘッダー内で定義されていません。これらの構造体が OpenCL 共有ライブラリ内で定義されている可能性はありますか? そうでない場合、どこで定義できますか?

乾杯

クリス