記事についてのディスカッション - ページ 3

 
Dmitriy Gizlyk:

ベクトル演算を使えば、4つの要素の積を順次ではなく並列に実行できる。https://ru.coursera.org/lecture/parallelnoye-programmirovaniye/4-1-chto-takoie-viektorizatsiia-i-zachiem-ona-nuzhna-f8lh3。OpenMPに関するものですが、意味は同じです。

ありがとう!

OpenCLでは、ベクトル化はコンパイラが自動的に行うのですね?コードに特別なコマンドは見当たりません。

 
Aleksey Vyazmikin:

ありがとう!

OpenCLではベクトル化はコンパイラが自動的に行うのですね。コードに特別なコマンドは見当たりません。

いいえ、自動ベクトル化はありません。このコードでは、まず2つのベクター変数を宣言します。

double4 inp, weight;

次に、入力バッファからデータの一部をベクター変数に書き込みます。

         default:
           inp=(double4)(matrix_i[k],matrix_i[k+1],matrix_i[k+2],matrix_i[k+3]);
           weight=(double4)(matrix_w[shift+k],matrix_w[shift+k+1],matrix_w[shift+k+2],matrix_w[shift+k+3]);
           break;

そして、ベクター変数を使って演算を行うことは、ベクター演算を行うことを意味する。このコードで使用されているドット関数は、ベクトル演算のみを対象としている。

      sum+=dot(inp,weight);

このように、乗算演算を並列化しているが、スレッドレベルではなく、ベクトル演算を使った具体的な演算のレベルで並列化している。

 
Dmitriy Gizlyk:

いいえ、自動的なベクトル化はありません。このコードでは、まず2つのベクトル変数を宣言する

次に、入力バッファからデータの一部をベクター変数に書き込みます。

そして、ベクトル変数を使って演算を行うことは、ベクトル演算を行うことを意味する。このコードで使用されているdot関数は、ベクトル演算のみを目的としている。

このように、乗算演算を並列化しているが、スレッドレベルではなく、ベクトル演算を使った具体的な演算のレベルで並列化している。

つまり、特殊な関数dot()がベクトル化を担っているのですか?このベクトル化はOpenCLなしでMQL5でできるのか?

 
Aleksey Vyazmikin:

つまり、特殊な関数dot()がベクトル化を行うのですか?このベクトル化はOpenCLなしでMQL5でできるのでしょうか?

dotはスカラー積のみを実行します。
MQLにはベクトル変数はありません。

 
Dmitriy Gizlyk:

dotはスカラー積のみを行う。
MQLにはベクトル変数がない。

了解しました。

 

この記事の必要性は極めて高く、著者に感謝しているにもかかわらず、私はまだこの記事に本当に欠けていることを要約している:

1.主要なmqlプログラムのコードが考慮されていない、取引原則自体が明確でない。

2.カーネルがどこで呼び出されるのかが明確でない。

3.3.コードにサードパーティ製ライブラリへの参照が含まれているが、記事には記述されていないため、明確でない。

4.カーネルは記事自体で考慮・説明されておらず、それがフォーラムで激しい議論を引き起こした理由である。

5.カーネル自体が、OpenCLの経験がない大多数のユーザーにとって非常に複雑に書かれている。

6.ニューラルネットワークのトレーニング方法がまったく明確でない。

これら6つの点から、この記事は大多数のユーザーにとって実質的に役に立たない。

私の意見を述べる:

1.1.シンプルなインジケーターで取引する非常にシンプルなExpert Advisorのmqlコードを作成し、コードの説明とOpenCLバージョンをmqlに書き込み、速度を比較する必要があります。

2.すべてのサードパーティライブラリからの関数の呼び出しを 記述すること。

3.カーネルを一行ずつ詳細に記述し、いくつかの変種のカーネルを記述し、性能を比較する。

4.ニューラルネットワークのトレーニング方法について詳述すること。

まあ、そういうことだ.

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Если некоторое имя, которое не было описано ранее, появляется в выражении и за ним следует левая круглая скобка, то оно по контексту считается именем некоторой функции. Аргументы (формальные параметры) передаются по значению, т. е. каждое выражение x1, . . . , xn вычисляется и значение передается функции. Порядок вычисления выражений и порядок...
 
ニューラルネットワークにもっと詳しくなりたいし、深く研究したい。でも、何から始めたらいいのでしょう?難しくなければ、何か関連するものを教えてください。
 
私も興味はあるのですが、溺れるような情報源がたくさんあります。何から始めようか。
 
NeuroNetのアーカイブにあるcopy.mqhというファイルは何ですか?
 
Ivan Titov:
アーカイブ内のNeuroNet.mqhファイルとは何ですか?

NeuroNet.mqh ファイルを少し整理しました。また、過去の記事のEAとの互換性のために、古いバージョンをコピーして保存しました。