web-dev-qa-db-ja.com

PyCUDAとNumbaPro CUDA Pythonの違いは何ですか?

私はCUDAを使い始めたばかりで、 PyCUDA(無料) または NumbaPro CUDA Python (無料ではない)のどちらが良いか(ライブラリのコストが問題ない)。

両方とも、それぞれのPython方言を使用する必要があるようです。しかし、PyCUDAはCコードでカーネル関数を記述する必要があるようです。これは、使用するよりも面倒です。 NumbaPro、あなたのためにすべてのハードワークを行うようです.

これは確かにそうですか?顕著なパフォーマンスの違いはありますか?

12
PDiracDelta

これらのライブラリのそれぞれについて話しましょう:

PyCUDA:

PyCUDA はa Python CUDAのプログラミング環境で、PythonからNvidiaのCUDA並列計算APIにアクセスできます。 PyCUDA はC++(ベースレイヤー)およびPython、C++コードはNVIDIAチップで実行され、Pythonコードをコンパイル、実行、およびC++コードの結果を取得し、それを作成するリソースを自動的に管理します強力なライブラリCUDAの1つ。

PyCUDAはPyOpenClとは少し異なり、Intel、AMD、NVIDIA、ATIチップなどのさまざまなプラットフォームでコードを実行できます。 NVIDIAチップでのみ実行できるPyCUDAとは異なります。

Python + CUDA = PyCUDA

Python + OpenCL = PyOpenCL

NUMBA/NumbaPro:

[〜#〜] numba [〜#〜] :NumbaProまたは最近のNumba(NumbaProは非推奨になり、そのコード生成機能はオープンソースのNumbaに移動されました。)はオープンソースのNumPy- PythonはAnaconda、Incのスポンサーにより最適化されたコンパイラを認識しています。これは、注目に値するLLVMコンパイラインフラストラクチャを使用してPython構文をマシンコードにコンパイルします。 Numba はPythonのコンパイルをサポートしており、CPUまたはGPUハードウェアで実行でき、基本的にPythonで記述されています。インストールと実装は簡単です。

@Wangが述べたように、PycudaはNumbaよりも高速です。

7
HISI

numbapro は現在 numba ですが、BSDライセンスでも無料です。

this によると、pyOpenCLとpyCUDAはnumbaの5倍高速です。

11
Wang