1. ホーム
  2. java

[解決済み] JavaでGPGPU/CUDA/OpenCLを実現するための最適な方法とは?

2023-02-06 14:07:50

質問

グラフィックス・プロセッシング・ユニットによる汎用コンピューティング ( GPGPU ) は、あらゆる種類のコンピューティングに GPU のパワーを活用するための非常に魅力的なコンセプトです。

GPGPUを画像処理、パーティクル、高速な幾何学的演算に使ってみたいですね。

今現在、この分野ではCUDAとOpenCLの2つが競合しているようです。知っておきたいと思います。

  • OpenCL は Windows/Mac 上の Java からまだ使用可能ですか?
  • OpenCL/CUDA に接続するためのライブラリはどのようなものがありますか?
  • JNA を直接使用することは可能ですか?
  • 私は何かを忘れているのでしょうか?

実際の経験/例/戦争体験談があれば、ぜひ教えてください。

どのように解決するのですか?

AFAIK。 JavaCL / OpenCL4Java の使用により、現在、すべてのプラットフォームで利用可能な唯一の OpenCL バインディングです (MacOS X, FreeBSD, Linux, Windows, Solaris, Intel 32, 64 ビットおよび ppc バリアントをすべて含みます。 JNA ).

少なくとも Mac と Windows では、Java Web Start から実際に問題なく動作するデモがあります (Linux でのランダムなクラッシュを避けるには この wiki ページ をご覧ください)、また、次のような パーティクルデモ .

また、いくつかのユーティリティ(GPGPU乱数生成、基本的な並列処理、線形代数)および Scala DSL .

最後に、利用できる最も古いバインディング(2009年6月以降)であり は活発なユーザーコミュニティを持っています。 .

(免責事項: 私は JavaCL の作者です :-))