記事"計算用OpenCL のインストール方法と使用法"についてのディスカッション

 

新しい記事 計算用OpenCL のインストール方法と使用法 はパブリッシュされました:

MQL5 が OpenCLに対するネイティブサポートを開始して1年以上経過しました。とはいうものの、Expert Advisors、インディケータ、スクリプトで並列計算を行うことの真の価値を解っているユーザーは多くありません。本稿はみなさんが MetaTrader 5 トレーディングターミナルでこの技術を使ってみることができるようにお手持ちのコンピュータに OpenCL をインストールしセットアップするお手伝いをいたします。

How to Install and Use OpenCL for Calculations

OpenCLとは?

OpenCL とは2008年に クロノスグループコンソーシアムによって開発された並列プログラム用オープンスタンダードです。この基準により異機種混在システムにて異なるアーキテクチャを持つ GPUs または CPUs で並列的に実行できるアプリケーションを開発することができます。

すなわち、タスクを計算する際 OpenCL によりあらゆる CPU コアまたは GPUの莫大な計算能力を使用することが可能となり、それによってプログラム実行時間が削減されるのです。労力がかかりとリソース消費する計算に関するタ スクを処理する場合、OpenCL を使用することはひじょうにメリットがあります。

たとえば MQL5に関して言えば、複数シンボルやタイムフレームによる履歴データの複雑で長い分析を行う特定のスクリプト(イディケータまたは Expert Advisor)を処理する際ひじょうに性能向上に貢献します(ここで、並列実行を行う MQL5 プログラムはOpenCL APIを用いて特殊な方法で書く必要があることに注意します)。

作者: MetaQuotes Software Corp.

 
MQL5でOpenCLを使用する利点を示すために、OpenCL_Sample.mq5スクリプトが書かれました。これは、あるセット上の2つの変数から関数の値を計算し、結果をチャートウィンドウに表示します<br/ translate="no">。

TCもまた関数であり、その結果はあるカスタム・インジケータである。つまり、オプティマイザーは、与えられた引用のように、ある集合上の関数値の計算です。

それでは、標準的なOpenCLオプティマイザーの利便性について話すことができるでしょうか?それとも、このような大幅な(2倍以上の)スピードアップを実現できない落とし穴があるのでしょうか?

私は、matモードでのオプティマイザの動作にさらに興味があります。

 
OpenCLは、大きなデータセットに対して均一な計算処理を行う必要がある場合に適している。そして、値の集合を取り出し、それを断片に切り分け、それぞれの断片を別々のプロセッサに渡して計算させる。これがタイムゲインである。OpenCL技術の詳細については、本記事で紹介した2つの記事に記載されている。
 

OpenCLをサポートして いるデバイスが見つかったときのログのデコードについて説明してください

最初にデバイス番号(あなたの場合はdevice#0)が来て、次にデバイス名nvidia GTX 580 、デバイスのOpenCL バージョン 、しかし括弧の中に書かれていることはよくわかりません。ALU(nvidia CODAコアの 場合)の数を示すべきではないのでしょうか?それから、不可解な周波数があり、何を指しているのか不明です。通常、ビデオコアの周波数は1000MHz以上ではありません。解読をお願いします。

OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 

皆さんこんにちは。

このとても興味深いトピックについてアドバイスをお願いします:

1.1.OpenCLを使って計算するトレーディング用のExpert Advisorはすでにありますか?

2.2.システムに複数のビデオカードがインストールされている場合、すべてのビデオカードが計算に使用されるのでしょうか、それとも1つだけが使用されるのでしょうか?

 

2.各エキスパートは1枚のカードしか使用できない。

複数のエキスパートが同時に複数のOpenCLデバイスを使用できる。

 
コンピュター上の複数のデバイスがOpenCL計算に関与できる場合、それらすべてが使用されるのか、それとも1つだけが使用されるのか?
 
paladin800:
OpenCLの計算にコンプ上の複数のデバイスを使用できる場合、すべてのデバイスが使用されるのでしょうか、それとも1つだけが使用されるのでしょうか?

上にすでに答えがあります

Renat:

2.各Expert Advisorは1枚のカードしか使用できません。

特定のMQL5プログラムで使用するデバイスを明示的に指定することができます。CLContextCreate 関数を見てください。
 
sigma7i:

OpenCLをサポートして いるデバイスが見つかったときのログのデコードについて説明してください

最初にデバイス番号(あなたの場合はdevice#0)が来て、次にデバイス名nvidia GTX 580 、デバイスのOpenCL バージョン 、しかし括弧の中に書かれていることはよくわかりません。ALU(nvidia CODAコアの 場合)の数を示すべきではないのでしょうか?それから、不可解な周波数があり、何を指しているのか不明です。通常、ビデオコアの周波数は1000MHz以上ではありません。解読してください。

質問の仕方が間違っていました......申し訳ありません。

質問は記事の写真に基づいています:

1. 「16ユニット」とはどういう意味ですか?また、ビデオカードのコア数が明記されていないのはなぜですか?

2.1630MHzとはどういう意味ですか? ビデオカードの全周波数ですか?

写真

 

まず、OpenCLはハードワイヤード実装とは独立した独自の並列化手法の仕様である。そのため、GPUの仕様と完全な一致を求めることはできない。

ユニットは独立したコアではなく、コアのグループです。アーキテクチャによって、複数のコアをユニットにグループ化する方法は異なります。例えば、NVIDIAは8、32、48コア(またはそれ以上)を1ユニットとしています。CPUモードでは、ユニットは論理CPUコアとしてカウントされます。

周波数はデバイス(例えばビデオカード)によって示される。

 
OpenCLを使用する 利点はもう1つあり、MQL5コードと並行してOpenCLコードを実行できることだ。

ポイントは、CLExecute関数の呼び出しは、OpenCLドライバに対する実行開始のコマンドに過ぎないということです。
OpenCLタスクの完了を待つのは、OpenCL実行キューにアクセスするとき、例えばこの例で起こるように、CLBufferRead 関数を呼び出すときに起こります。


CLExecute とCLBufferRead 呼び出しの間に、OpenCL キューにアクセスしない MQL5 計算を実行できます。
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.