В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
C++ Accelerated Massive Parallelism (C++ AMP) accelerates execution of C++ code by taking advantage of data-parallel hardware such as a graphics processing unit (GPU) on a discrete graphics card. By using C++ AMP, you can code multi-dimensional data algorithms so that execution can be accelerated by using parallelism on heterogeneous hardware...
bool CLExecute(
int kernel, // хендл на кернел OpenCL программыuint work_dim, // размерность пространства задач constuint& global_work_offset[], // начальное смещение в пространстве задачconstuint& global_work_size[] // общее количество задач
);
ATIは6年前の2006年に買収されました。
ただ残念なのは、Intelの競合他社がHyper-Sreadingと同様の技術を持っていないことで、AMDがそれを発明してくれることを期待したい。
Bulldozerは、ハイパースレッディングのハードコア実装の一種で、8個のアンダーコアと、リソースを奪い合う明らかに希少なFPUを搭載しています。
意外なことに、マルチスレッドでも平均してBullがThuban x6よりわずかに良い結果を出しています。整数のよく並ぶタスクでは高速にカウントされるが(i7にわずかに及ばない)、それ以外ではi7に負け、平均してi5-2400と同程度に終わってしまうのだ。要するに、デスクトップ用のサーバー・プロセッサーということです。そして、トリニティはこの状況を解決できそうにありません。コアはブルドーザーで破壊されています。
ixbtによると。
CPU性能は最大29%向上、これは従来Piledriverと呼ばれていた新プロセッサコアの功績です
だから、私は間違っていた。どのアプリケーションがそうなるんだろう?
エネルギー性能の面では、やはり悪くなっています。4つの物理コアが8つの独立したスレッドを実行する場合と比較して、それぞれの物理コアを実行するためにどれだけのエネルギーが費やされるのか...。
/ 引用とご回答を分けて投稿を修正しました。引用の外に答えを入力できるようにするには(できない場合)、左のHTMLボタンをクリックし、マークアップの一番最後に2、3文字を入力し、ビジュアルモードに戻ります - Mathemat/ja
https://www.mql5.com/ru/articles/405 - この記事を読んで、私はプログラマーではありませんが、GPUコンピューティングの話題に興味を持ちました。この記事の中で、リンクhttp://www.ixbt.com/video3/rad.shtml に出会い、それがこの記事 -http://www.ixbt.com/video3/rad2.shtml を引き付けました。それは複雑な操作でパフォーマンスの最適化テストステロン戦略を高めるためにバリアントを記述しているため、私は、このテーマは、このプロジェクトの開発者をzaiterezovat可能性があると思います。もしかしたら、開発の参考になるかもしれません。
P.s. 私はこの記事を最後まで読んでいません。
ご指摘ありがとうございます...。
また、マイクロソフトがVS11に実装したC++ AMPについて、ここの人たちはどう考えているのでしょうか。
http://msdn.microsoft.com/en-us/library/hh265136(v=vs.110).aspx
2011年6月に開催されたAMD Fusion Developer Summitで、この技術を発表 しました。同時に、この仕様をオープンにする意向を表明し、他のコンパイラベンダーが自社のコンパイラで(どのプラットフォームでも)サポートできるように働きかけているところです。
なお、MSはこの言語拡張をオープンにすることを望んでいます。VS11で試してみましたが、これはクールなものだと言わざるを得ません。面倒なCUDA SDKのコードを別の.cuに入れる代わりに、同じ.cppに数行入れるだけです。
MQL5にも同じような機能があればいいのですが。 OpenCLは扱ったことがありませんが、そこはプログラミングが難しいとも聞いています。
OpenMPはすでに質問されています。そんなことはない。
端末開発者への質問:OpenCL APIにワークグループのサイズを設定する機能を追加する予定はありますか?とてもいいことだと思います。おそらく、CLExecute()関数の中に入っていると理解しています。
CLExecute(cl_krn,work_dim,offset,work) - じゃないのか?
いいえ、これはあくまでもグローバルなワークスペースのサイズです。
しかし、端末開発者の実装では、ローカルワークグループサイズはどこにもない。まあ、そうでしょうね。
フル機能のOpenCL APIでは、clEnqueueNDRangeKernel() 関数があり、そのアナログがCLExecute()です。必要なのは第6引数のconstsize_t*local_work_sizeである。