2017-07-09 10 views
4

encog-core-javaマスターブランチには、Encog.getInstance().getCL()メソッドがありません。また、OpenCLデバイスへの明示的アクセス(c.f. LeadTune's encog-java example: BenchmarkCL、Encog 2ベース)もありません。Java EncogのOpenCLバックエンド3

代わりに、我々は魔法のようにCPUと一緒にGPUを検出するConcurrentTrainingManagerを参照しているようですが、この実装は非常に不明です。

ソースコード内のOpenCLの他の唯一の言及は、OpenCLデバイスオブジェクトがオプションのコンストラクタパラメータであると主張されているResilientPropagationですが、そうではありません。

JavaDocsを更新せずにOpenCLサポートがEncogから単純に削除されたことを知っている人はいますか? さらに、Encog 3.xでOpenCLをサポートするマシン学習の実例を提供してもらえますか?私は私のRPROPJobための訓練Strategyを設定する方法を見つけ出すことができなかったので、ConcurrentTrainingManagerTrainingJobを提出する

My attemptに失敗しました。私の対応GH issueに対応して

+2

で確認したイヴァン・バジレブのNeural Networksを、お勧めします。私たちは、OpenCLのをサポートするつもりはありませんどちらか。私たちは、gpusを担当するスタッフの専門知識を持っています。私たちが持っていないものはインセンティブです。 AMDには、これを誰かの時間の価値があるものにするためのもっと多くの仕事があります。彼らは最近それに向かって一歩を踏み出しましたが、それはまだトンではありません。 –

+2

@AdamGibson、私はこれがAMDの問題ではないと思います。これはオープンソースの問題です。 nVidiaが現在GPU市場を管理していることは確かですが、CUDAはオープンソースの標準ではありません。 OpenCLはです。だからHiP、OpenCLの計画された後継者、構文は間違いなくCUDA風です。 – Inon

+1

@AdamGibson私はInonに同意します:OpenCLは**オープン**標準で、AMDのGPUとCPU(!)だけでなく、インテルのCPUやNVIDIA GPUでも使用できます。むしろ、NVIDIAはOpenCLサポートを改善するインセンティブを持っていません。彼らはCUDAのほぼ独占に慣れています。それに加えて、APIは一般的なタスクと非常に似ているので、OpenCLとCUDAの主な違いは最初のものがオープンで、後者が独自のものです。技術的な違いはあまりありません。 – Marco13

答えて

3

、ジェフ・ヒートンは書きました:

をOpenCLのは、現在Encogによってサポートされていません。 GPUのプログラミングは私が現在取り組んでいるものではありません。誰かがこの分野で何か貢献したいと思うなら、それは素晴らしいことでしょう。しかし、すでにTensorFlowとDeeplearning4Jで行われているニューラルネットワークGPUの作業は大量に行われており、私は自分自身を複製しようとはしません。さらに、GPUプログラミングは私の専門知識の範囲外です。代替案として

、私は(ジェフがdl4jを述べただけであるため)、これを単に言うよ私はOpenCLの2

+0

FYI:うまくいけば混乱を排除するために、私はEncogの非サポートGPUの最新バージョンを反映するようにEncog GPUページを更新しました。 http://www.heatonresearch.com/encog/encog_gpu.html – JeffHeaton

関連する問題