engine_descriptor#

SYCL* カーネル間でエンジンの状態を初期化して保存するため、sycl::buffer の抽象化を提供するホスト側ヘルパー。

説明#

engine_descriptor は、SYCL* カーネル間でエンジンの状態を初期化して保存する sycl::buffer の抽象化を提供します。

エンジン記述子のコンストラクターは、指定されたキューに parallel_for タスクを送信して、エンジンの状態を初期化します: 各エンジンは、スカラーオフセットの場合、Engine {seed, id * offset} として初期化されます。ここで、id は 0 から range.size() までの値です。

API#

構文#

namespace oneapi::mkl::rng::device { 
  template<Engine> 
  class engine_descriptor { 
  public: 
    engine_descriptor(sycl::queue& queue, sycl::range<1> range, std::uint64_t seed, std::uint64_t offset); 
    template<typename InitEngineFunc> 
    engine_descriptor(sycl::queue& queue, sycl::range<1> range, InitEngineFunc func); 
    engine_accessor<Engine> get_access(sycl::handler& cgh); 
  }; 
}

インクルード・ファイル#

  • oneapi/mkl/rng/device.hpp

テンプレート・パラメーター#

タイプ

説明

Engine

エンジン記述子によって状態が保持されるエンジンを指定します。

コンストラクターの入力パラメーター#

名前

タイプ

説明

queue

sycl::queue&

sycl::queue オブジェクト。タスクはこのキューに送信され、関連付けられているデバイスにエンジンの状態を直接取​​り込みます。

range

sycl::range<1>

この en_descriptor オブジェクトによって保持されるエンジンの数を指定します。

seed

std::uint64_t std::initializer_list<std::uint64_t>

エンジン状態の初期条件。

offset

std::uint64_t std::initializer_list<std::uint64_t>

スキップされた要素の数の initializer_list オフセットは、num_to_skip [0]+ num_to_skip [1]*264 + num_to_skip [2]* 2128 + … + num_to_skip [n-1]*264 *(n-1) として計算されます。

func

InitEngineFunc

エンジンを初期化するる関数。この関数は、sycl::item<1> を引数として受け取り、Engine タイプのオブジェクトを返す必要があります。