OpenClとそのためのツール。レビューとインプレッション

 
Metaquotesが、分析や取引におけるGPUの適用性について意見を変えた(GPUソフトウェアが、商業プログラムに導入するために必要なレベルにようやく到達したと言った方が正確でしょう)ことを考えると、今日から実際のプログラミングでOpenCLをテストする準備ができたと言えるのではないでしょうか。
トレードやモデリングやプログラミングの代わりにフォーラムでばたばたしていてこのニュースを見逃してしまった人のために、例えばメタクオーツがこんなことを言っています。

.............................................................................................................................................................................

財務モデリングに関するGPUの経験

http://habrahabr.ru/blogs/hi/131983/

MetaQuotes 2011年11月7日 19:27#

OpenCLのサポートは近々MQL5に搭載され、分散ネットワークでの計算性能を数倍/1桁向上させることが可能になります。

.............................................................................................................................................................................

では、OpenCL、とは何でしょうか?

これはソフトウェア的なアプローチで、ビデオカード上、つまりGPU上でプログラムを並列に実行するためのインタプリタプログラムです。

何を与えるのか

まず、スケーラビリティ、つまり利用可能な処理能力を簡単かつ安価に拡張することができます。12台のサーバーを購入し、インストールし、メンテナンスすることと、3、4枚のビデオカードを追加で購入し、プラグインすることは全く別のことです。結果は、スピードは同じでも、お金と時間の使い方が何十倍にもなってしまいます。

第二に、これまでコンピュータの脆弱性によってアクセスできなかった、このような高度な数学的手法が使えるようになることです。

第三に、メタクオーツがユーザーだけでなく、その組み込みテスターにもOpenCLをボルトで固定できるとしたら、二つの奇妙に相反する視点が生まれるだろう。

(a)単純なエキスパートアドバイザーの個別最適化では、CloudNetworkが全く必要ない場合が半分ほどある。

(b) CloudNetworkを使うことで、これまで考えられなかったような専門家による最適化、モデリング、分析、複雑な数学的手法の適用など、幅広い可能性が開ける。

何から始めるか?

AMDから開発者向けのソフトウェアSDK(CPUドライバ付き)をご紹介します(Vista-Win7用と謳っていますが、WinXPでも動作します)。ビデオアクセラレータカードがなくても、CPU上で正常に動作し、AMDだけでなくIntelのSSEプロセッサでも動作します)。

http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx

旧バージョンのAMD-ATI SDK (WinXPで動作)。

http://developer.amd.com/sdks/AMDAPPSDK/downloads/pages/AMDAPPSDKDownloadArchive.aspx

Nvidia版のインタプリタプログラムは、最新のドライバに付属しており、開発環境はCUDA Tools-SDKパッケージに含まれています。

http://developer.nvidia.com/opencl

インテル版SDK(Vista-Win7のみ動作)。

http://software.intel.com/en-us/articles/download-intel-opencl-sdk/

注意: MetaTrader 4または5で適切に動作させるには、OpenCLバージョン1.1 またはそれ以上が必要です。MetaTrader 4または5では、スレッドはExpert Advisorごとに動的に別々に作成および破棄されます。したがって、異なる通貨ペアで動作するExpert AdvisorのGPUを使用するには、正確に安全なスレッド化が必要です。

実際には、ATI Catalystドライバはバージョン10.10以上、Nvidiaはバージョン280.00以上を使用することになります。AMD-ATIのドライバはバージョンを重ねるごとに良くなり速くなり、nVidiaのドライバは悪くなり遅くなっています。NvidiaのOpenCLバージョン1.1は、そのバージョン1.0よりも30~40%遅く、つまり実際には2倍遅く、AMDのOpenCL 1.1よりも全く速くないのです。

OpenCLのチェック方法は?

AIDA by FinalWireは、DisplayセクションにGPUパラメータとOpenCLバージョンを表示します。

OpenCLの速度をテストするには?

ラックスマーク

http://www.luxrender.net/wiki/LuxMark

CPUとGPUの違いによるおおよその比較結果。

http://www.luxrender.net/wiki/LuxMark_Results

CPU-Native CPU-OpenCL テストから分離するために、手動で render.cfg ファイルを編集する必要がある場合があります。

トップエンドのPhenom II X6 CPUのスピードは2300 前後、同じプログラムでも8pcのNvidia GTX580のモンスターでは70000、すなわち30倍以上のスピードが出ます。このようなGTX580 8台のモンスターセットでも、ダブルフロートポイント相当のサーバー30台に比べて、一次コストで30倍、消費電力で40倍程度に抑えられます。さらに、30台のサーバーにあるプログラムのインスタンスを同期させるのにも手間がかかりますが、OpenCLでは1台のコンピューターですべて同じ1つのインスタンスで動作します。

ラックスマークのその他の実績

http://www.xtremesystems.org/forums/showthread.php?267385-LuxMark-The-OpenCL-CPU-amp-GPU-benchmark

OpenCLをテストするためのソフトウェアが増えました。

gpcbenchmarkocl

中国の著者のサイトからは削除されていますが(おそらく、戦略的な商品なのでしょう)、ウェブ上では見つけることができます。(画像処理編はDirectXバージョン10以上でのみ動作する部分があり、WinXPでは動作しないことを意味します)。

OpenCLの特殊性はもう一つあって、まともなプログラミングで使われる慣例的な数学的抽象概念から離れ、ハードウェアに対するプログラムの最適化という、正しくない ことに手を染めなければならないことです。

OpenCLの記事では、その実装に関するおおよその困難さが述べられています。

http://habrahabr.ru/blogs/hi/125398/

AMDが提供するOpenCLの入門ビデオコースです。

http://developer.amd.com/documentation/videos/OpenCLTechnicalOverviewVideoSeries/Pages/default.aspx

一般に、SSEが動作するコンピュータであれば、AMDのプログラムスイートを使用する限り、OpenCLのプログラム開発やデバッグに十分な性能を発揮することができます。さらに、NvidiaのGTS450...GTX580システムもCUDAを備えているのでお勧めできますが、本当の高速作業にはAMD-ATIのカードとプログラムがより適しています - これらは拡張性が高く、マルチGPU構成でより安定しています。

OpenCL Multi-GPU ハードウェアについては、別のスレッドのトピックになります。

 
AlexEro:

OpenCL Multi-GPU ハードウェアについては、別のスレッドで取り上げる予定です。

ところで、この問題はかなり広範囲に研究されており、カードの比較特性も存在します。悪名高い暗号通貨ビットコイン(当初)や他の暗号通貨(その後)の採掘者たちによって研究された。

もちろん具体的なタスクでの比較は可能ですが、おおよその構成と予算で方向性を決めるのは簡単です。

そうそう、今さら強力なグラフィックカードを買うなよ :)

 
TheXpert:

ところで、この問題はかなり広範囲に研究されており、カードの比較特性も存在します。悪名高い暗号通貨ビットコイン(当初)や他の暗号通貨(その後)の採掘者たちによって研究された。

もちろん具体的なタスクでの比較は可能ですが、おおよその構成と予算で方向性を決めるのは簡単です。

そうそう、今さら強力なbetauビデオカードを買うなよ :)

ただ、このような巨大なもので読者を怖がらせて、もっと重要なこと、つまりプログラミングから目をそらさせたくなかったのです。私もそう思いますが、最終的に、どのようなスケーリングスピードが期待できるのか、どのように見えるのか、ということを示すべきです。ビール箱からシェルフまで、幅広いラインナップです。


 

OpenCLは今日から未来です。

質問:MT5でサポートが実装されるのは大体いつ頃ですか?

OpenCLが並列ワークロードのプログラミングの標準になることは、100%以上確信しています。

 
マイクロソフト、C++ AMPを発表
投稿者:シャポバロフツ 投稿日:木, 06/16/2011 - 10:07 AM
AMD Fusion 11開発者サミットで、ハーブ・サッターは、C++ Accelerated Massive Parallelism(AMP)というヘテロジニアスC++アプリケーションを開発するための新技術を発表しました。この技術により、CPUとGPUの両方で並列コード実行の機能を利用できるようになるとMicrosoftの開発者は宣言している。

AMPの主な競合はOpenCLとCUDAになるだろう。また、Sutter氏は、クラウドコンピューティングにおけるC++ AMPの活用の可能性を強調した。

https://www.mql5.com/ru/forum/132431

 
つまり、プロプライエタリなAMPの弟分に戻るわけです(笑)。
 
AMPは大変なことになりそうですね。OpenCLはすでに本格的に利用されています。
 
アイデアの欠如は、引用符の上に "知的倒錯 "から派生した次のナンセンスをすばやく通過またはバブルソートするコンピューティングパワーと交換するのは難しいです ))。
 
artikul:
アイデアの欠如は、引用符の上に "知的倒錯 "から派生した次のナンセンスをすばやく通過またはバブルソートするコンピューティングパワーと交換するのは難しいです ))。

そのパワーに価値あるアイデアを積み重ねれば、地球が太陽の周りを逆に回るようになるんじゃないでしょうか。))
 

アーティクル、そんなに断定的にならなくてもいいんじゃない?世界は止まっていない。最近のモンスターグラフィックカードも、あなたの論理で言えば、画像処理のアイディア不足の結果と認識すべきなのでしょうか?

私自身、スピードアップが好きなこともあります。重い計算をinit()ですべて終わらせるのに、コードのデバッグを待つ必要がないのです(10秒程度)。また、他のすべての計算は「オンザフライ」で行われるため、本当に高速に動作します。したがって、ここではマルチスレッドは必要ありません。

 
artikul:
アイデアの欠如は、引用符の上に "知的倒錯 "から派生した次のナンセンスをすばやく通過またはバブルソートするコンピューティングパワーと交換するのは難しいです ))。

そして、ここの同志たちは、第6項を特に変態的な形で実行することを期待して、盛んにウォーミングアップをしているのです。=)

理由: