1

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

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

4

4 に答える 4

1

私自身の(半学歴の)推測では、これを行うのは非常に難しいと思うでしょう。しかし、他の人も同じ道を踏みました。 この論文はあなたの研究を始めるのに良い場所かもしれません。そして、グーグルは、Accelereyesと、フォローアップしたいMathworksFileExchangeのアイテムへの参照をいくつか見つけました。

于 2010-07-03T17:28:44.410 に答える
1

ジャケットのすべてはc/c ++/cudaで書かれています。実際、ベータ版のlibjacket(http://www.accelereyes.com/downloadLibjacket)があり、必要に応じてmatlabだけでなく他の言語を拡張するために使用できます。

@OSaad私たちの関数のほとんどは、そこにある最速のオプションです。CまたはMATLABでそれをしてください。

于 2010-12-08T19:57:39.957 に答える
0

次のリリースR2010b(9月1日まで)のParallel Computing Toolboxは、いくつかの機能のGPU処理をサポートします。残念ながら、CUDA(バージョン1.3以降)しかサポートしていないため、ATIグラフィックカードを使用すると運が悪くなります。ただし、とにかく、専用のGPUを購入することをお勧めします。

于 2010-07-03T19:11:52.907 に答える
0

通常、Matlabコードを「ベクトル化された」方法で記述できる場合、AccelerEyesやJacketなどのパッケージはGPU上で動作する可能性が十分にあります。Matlab自体がCPU上の複数のコアで実行できるかどうかを確認することで、これをある程度事前に確認できます(最近、Matlabは、明らかな方法で並列化できる場合、複数のコアを使用します)。

それでも問題が解決しない場合は、mex経由でC / C ++にドロップダウンし、そこから自分でOpenCLを呼び出す必要があります。MexはMatlabがCコードと通信する方法であるため、Matlabによって呼び出される(そして行列などを受け取る)Cコードを記述し、OpenCLを初期化して呼び出します。これはより多くの作業ですが、唯一のルートである可能性があります(また、自動パッケージがある程度機能する場合でも、たとえば、自分が何をしているかを知っている場合は、メモリ管理についてより賢くできるため、このアプローチはより高速化できます。 )。

于 2010-12-17T19:09:48.607 に答える