13.2. Pythonバインディング

13.2.1. PyCL

PyCLはOpenCLのPythonバインディングを実装した軽量モジュールです。2016年時点の開発サイトによるとまだ完成度が低いとしており、現時点ではPyOpenCLの使用を推奨しています。

13.2.2. PyOpenCL

Warning

PyOpenCL使用の際にはライセンスを必ず確認するようにしてください。

PyOpenCLはC++で記述されたPythonバインディングです。PyOpenCLランタイムはOpenCLのホストAPIを忠実にPythonに移管したライブラリです。

OpenCLの基本知識があれば、短時間の学習で複雑なアプリケーション開発を行うことが可能です。

ライブラリには以下のような特徴があります。

  • MITラインセンス
  • オブジェクトのライフサイクル機能
  • OpenCLエラーとPython例外のマッピング
  • 十分に高速なAPI
  • clBlas(pyopencl_blas)ラッパー
  • clFFT(ppyfft)ラッパー
  • rekinaパッケージ(FFT等)

これ以外にもPyOpenCLにはビルトインの数値計算ライブラリや、ベクトル型のファクトリ等のツールが提供されています。

ライセンス、ドキュメンテーション、ライブラリの完成度を考慮すると、現状ではPyOpenCL以外の選択肢はなく、本書ではPyOpenCLを紹介することとします。

Copyright 2018-2019, by Masaki Komatsu