"New Neural "は、MetaTrader 5プラットフォーム用のオープンソース・ニューラルネットワークエンジンプロジェクトです。 - ページ 58

 
TheXpert です。
???
AndreiTheXpert Aと言ったらBと言え。NSの最大のボトルネックは何だと思われますか?
 
ウラン です。
そんなことはどうでもいいんです。
 
TheXpert:
どうでもいいことです。

発展させて、いろいろな意見を聞き、結論を出したい。

発展させたい、いろいろな意見、結論を聞きたい。

 

GPU Cudaは強力ですね。16台のIntel Tracks(4コアCPU)で2~3時間動作するコードがあったんです。また、300以上のCUDAコアでは、同じ距離を10分で走破しており、これは見事でした。しかし、Kudaのコード開発は非常に複雑でした。コード内のすべての計算を並列スレッドに手動で分割し、メモリを最適化しなければなりませんでした(残念ながら、Kudaコアのメモリはわずかです)。私の力では無理でした。賢いプログラマーが助けてくれたのです。私はまだ彼のコードを恐れて、私のオリジナルの(並列化されていない)コードにすべての変更を加え続けています。私のような独学のプログラマーには無理ですが、アルゴリズムが安定していれば、有能なプログラマーの助けを借りて最適化し、GPUに移行することができます。よく訓練されたアルゴリズムのGPUコードからすぐに始めると、それをバイパスするのに長い時間がかかるでしょう。私はいつも、最適ではないがシンプルで、自分でも理解できるコードから始めて、期待する結果が得られた後に最適化を始めます。私はプログラマーではなく、メッセンジャーです :)

 
gpwr:

GPU Cudaは強力ですね。16台のIntel Tracks(4コアCPU)で2~3時間動作するコードがあったんです。また、300以上のCUDAコアでは、同じ距離を10分で走破しており、これは見事でした。しかし、Kudaのコード開発は非常に複雑でした。コード内のすべての計算を並列スレッドに手動で分割し、メモリを最適化しなければなりませんでした(残念ながら、Kudaコアはほとんどメモリを持ちません)。私の力では無理でした。賢いプログラマーが助けてくれたのです。私はまだ彼のコードを恐れて、私のオリジナルの(並列化されていない)コードにすべての変更を加え続けています。私のような独学のプログラマーには無理ですが、アルゴリズムが安定していれば、有能なプログラマーの助けを借りて最適化し、GPUに移行することができます。よく訓練されたアルゴリズムのGPUコードからすぐに始めると、それをバイパスするのに長い時間がかかるでしょう。私自身はいつも、自分でも理解できるような単純で非最適なコードから始めて、期待する結果が得られてから最適化に着手しています。私はプログラマーではなく、メッセンジャーです :)

そこで、GPUコンピューティングの専門家にアドバイスをいただきたく思います。

以下の質問に興味があります。

1.プロジェクト(またはそのモジュール)をGPUで計算させる場合、どのような点を最初に検討すれば、将来的に面倒な再設計をしなくて済むでしょうか。

2.GPUコアのメモリ制限について教えてください。ランタイムコードを全てメモリに入れることは可能ですか(数万本、数十万本)?

ここまではそんな、一般的な質問です。より詳細なものは、また後日ということになりますね。

 
joo:

そこで、GPUコンピューティングの専門家にアドバイスをいただきたいと思います。

以下の質問に興味がある。

1.GPUでプロジェクト(またはその個別モジュール)を作成する際、そもそもどのような点に気をつければ、将来的に面倒な再設計をしなくて済むのでしょうか。

2.GPUコアのメモリ制限について教えてください。ランタイムコードを全てメモリに入れることは可能ですか(数万本、数十万本)?

ここまではそんな、一般的な質問です。より詳細なものは、また後日ということになりますね。

一般的な使用を目的としたプロジェクトで、なぜcudaを全くいじらないのか?あるユーザーは1つのクーダを持ち、あるユーザーは別のクーダを持ち、またあるユーザーは全くクーダを持っていない。私など、仕事用のノートパソコンにはcudaがありません。同じネットワークコードでも、cudaのコア数やメモリによって大きく違ってきます。まずはこのネットワークエンジンを通常のIntelプロセッサ用に書いて、誰もが使えるようにしてから、意味があればそれをkuda用に最適化するのがよいでしょう。ちなみに、エンジンはクラウド上で動作するように作ったほうがよいでしょう。クラウドコンピューティングに詳しくないのですが。全くないところはないのですか?
 
gpwr:
一般的な使用を目的としたプロジェクトで、なぜわざわざcudaを使用するのでしょうか?あるユーザーは1つのクーダを持ち、あるユーザーは別のクーダを持ち、またあるユーザーは全くクーダを持っていない。例えば、私は職場で使っているノートパソコンにcudaを搭載していません。同じネットワークコードでも、cudaのコア数やメモリによって大きく違ってきます。まずはこのネットワークエンジンを通常のIntelプロセッサ用に書いて、誰もが使えるようにしてから、意味があればそれをkuda用に最適化するのがよいでしょう。ちなみに、エンジンはクラウド上で動作するように作ったほうがよいでしょう。クラウドコンピューティングに詳しくないのですが。全くないところはないのですか?
そうですね、最初はCUDAを使わないでプロジェクトを 作る必要がありますね。しかし、この記事に対して1つだけ言いたいことがあります。それは、Intelのためだけに研ぎ澄ますのではなく、AMDのことも忘れないでほしいということです。
 
gpwr:
一般的な使用を目的としたプロジェクトで、なぜわざわざcudaを使用するのでしょうか?あるユーザーは1つのクーダを持ち、あるユーザーは別のクーダを持ち、またあるユーザーは全くクーダを持っていない。例えば、私は職場で使っているノートパソコンにcudaを搭載していません。同じネットワークコードでも、cudaのコア数やメモリによって大きく違ってきます。まずはこのネットワークエンジンを通常のIntelプロセッサ用に書いて、誰もが使えるようにしてから、意味があればそれをkuda用に最適化するのがよいでしょう。ちなみに、エンジンはクラウド上で動作するように作ったほうがよいでしょう。クラウドコンピューティングに詳しくないのですが。全くないのですか?

MQは、MQL5でCUDA(nVidiaのグラフィックカードのみ)ではなく、OpenCLのサポートを約束しています。OpenCLは、マルチコアプロセッサを搭載したハードウェアであれば、CPUとGPU(AMDとnVidiaとintel)の両方で動作させる ことが可能です。ですから、CPUとGPUの両方で計算をサポートするプロジェクトは、誰にでも通用するものです。

MQL5がOpenCLをサポートするということは、クラウドエージェントがGPUコンピューティングをサポートすることを意味します。

 

ウラン です。

常に正しいとは限らない、それがオープンソースプロジェクトであり、議論し、証明するためのものです。

必要ですか?
 
ジュ

そこで、GPUコンピューティングの専門家にアドバイスをいただきたいと思います。

以下の質問に興味がある。

1.GPUでプロジェクト(またはその個別モジュール)を作成する際、そもそもどのような点に気をつければ、将来的に面倒な再設計をしなくて済むのでしょうか。

2.GPUコアのメモリ制限について教えてください。実行コード全体をメモリ上の別ヒストリーランに配置することは原理的に可能ですか(数万本、数十万本)。

ここまではそんな一般的な質問。より詳細なものは、後日追加されると思います。

主なポイントは以下の通りです。

1) GPUは学習時のみ必要

2) 1つの層におけるニューロン値の並列計算と、さらに重要なこととして! - 数百のネットワークを同時に実行することにより、大幅な性能向上が達成されます。

プロジェクトを自律的な構成要素に最大限に分解する - ここに注目

GPUのDDRメモリは、数十万本のバーの履歴を保存するのに十分すぎるほどです

コアメモリーの制限が厳しい(30~50Kバイト)。チップメモリはコア周波数で動作し、アクセスに要するクロックサイクルは0であるため、単純なプログラミングでこの問題を解決できます。また、カーネルのメモリバンクの競合がありますが、それも回避しています。

Windowsの機能で、1回の実行が5秒以上続くとドライバがリセットされるという不快なことがあります。

つまり、100k本のヒストリーに対して、100〜200個のニューロンからなるネットワークを学習させることが最大となります。

この(最大)構成では、GTX 460 GPUで1秒間に20~30回という最適化速度が得られました。