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
を設定する方法を見つけ出すことができなかったので、ConcurrentTrainingManager
にTrainingJob
を提出する
My attemptに失敗しました。私の対応GH issueに対応して
で確認したイヴァン・バジレブのNeural Networksを、お勧めします。私たちは、OpenCLのをサポートするつもりはありませんどちらか。私たちは、gpusを担当するスタッフの専門知識を持っています。私たちが持っていないものはインセンティブです。 AMDには、これを誰かの時間の価値があるものにするためのもっと多くの仕事があります。彼らは最近それに向かって一歩を踏み出しましたが、それはまだトンではありません。 –
@AdamGibson、私はこれがAMDの問題ではないと思います。これはオープンソースの問題です。 nVidiaが現在GPU市場を管理していることは確かですが、CUDAはオープンソースの標準ではありません。 OpenCLはです。だからHiP、OpenCLの計画された後継者、構文は間違いなくCUDA風です。 – Inon
@AdamGibson私はInonに同意します:OpenCLは**オープン**標準で、AMDのGPUとCPU(!)だけでなく、インテルのCPUやNVIDIA GPUでも使用できます。むしろ、NVIDIAはOpenCLサポートを改善するインセンティブを持っていません。彼らはCUDAのほぼ独占に慣れています。それに加えて、APIは一般的なタスクと非常に似ているので、OpenCLとCUDAの主な違いは最初のものがオープンで、後者が独自のものです。技術的な違いはあまりありません。 – Marco13