OpenCLプログラムを使うためのクラス

COpenCLクラスはOpenCL関数の使用を簡易化するためのラッパーです。場合によっては、計算速度はGPUの使用によって大幅に向上されます。

float値とdouble値に基づく計算のクラス使用例は、MQL5\Scripts\Examples\OpenCL\フォルダーの対応するサブディレクトリーにあります。OpenCLプログラムのソースコードは、MQL5\Scripts\Examples\OpenCL\Double\KernelsおよびMQL5\Scripts\Examples\OpenCL\Float\Kernelsサブディレクトリにあります。

  • MatrixMult.mq5 - グローバルとローカルメモリを使用した行列乗算の例
  • BitonicSort.mq5 - GPUにおける配列要素の並列ソートの例
  • FFT.mq5 - 高速フーリエ変換計算の例
  • Wavelet.mq5 - モーレットウェーブレットを用いたデータのウェーブレット変換の例

OpenCL用のソースコードは別のCLファイルに書き込むことをお勧めします。これらのファイルは後にリソース変数を使用してMQL5プログラムに組み込むことができます。

宣言

  class COpenCL

タイトル

  #include <OpenCL\OpenCL.mqh>

クラスメソッド

名称

説明

BufferCreate

指定されたインデックスでOpenCLバッファを作成します

BufferFree

指定されたインデックスでOpenCLバッファを削除します

BufferFromArray

指定されたインデックスで値の配列からバッファを作成します

BufferRead

指定されたインデックスでOpenCLバッファを配列に読み込みます

BufferWrite

指定されたインデックスで値の配列をバッファに書き出します

Execute

指定されたインデックスを持つOpenCLカーネルを実行します

GetContext

OpenCLコンテキストのハンドルを返します

GetKernel

指定されたインデックスにあるカーネルオブジェクトのハンドルを返します

GetKernelName

指定されたインデックスにあるカーネルオブジェクトの名前を返します

GetProgram

OpenCLプログラムのハンドルを返します

Initialize

OpenCLプログラムを初期化します

KernelCreate

指定されたインデックスでのOpenCLプログラムへのエントリポイントを作成します

KernelFree

指定されたインデックスでのOpenCL開始関数を削除します

SetArgument

指定されたインデックスにあるOpenCL関数のパラメータを設定します

SetArgumentBuffer

指定されたインデックスにあるOpenCL関数のパラメータとしてOpenCLバッファを設定します

SetArgumentLocalMemory

指定されたインデックスにあるOpenCL関数のパラメータをローカルメモリで設定します

SetBuffersCount

バッファ数を設定します

SetKernelsCount

カーネルオブジェクトの数を設定します

Shutdown

OpenCLプログラムをアンロードします

SupportDouble

浮動小数点データ型がデバイスでサポートされているかどうかをチェックします