The descriptor class template#
This page describes the descriptor
class template, which belongs to the oneapi::mkl::dft
namespace and is declared in oneapi/mkl/dft.hpp
(file to be included).
namespace oneapi::mkl::dft {
template <precision prec, domain dom>
class descriptor;
}
The usage of prepended namespace specifiers oneapi::mkl::dft
is omitted below for conciseness.
Users of the DPC++ interface of oneMKL must use instances of a specialization of this class template to specify and fully configure the required DFT computation(s): successfully-committed objects of a (specialized) descriptor
class are required arguments to the DFT-specific compute functions.
Template parameters#
The descriptor
class template is parameterized by two non-type template parameters, in the following order:
a value of type
precision
, that determines the floating-point format to be considered by its instances;a value of type
domain
, that determines the type of forward domain to be considered by its instances.
Instances of a descriptor
class specialized with value precision::SINGLE
(resp. precision::DOUBLE
) for the former are referred to as “single-precision descriptors” (resp. “double-precision descriptors”). Similarly, instances of a descriptor
class specialized with value domain::COMPLEX
(resp. domain::REAL
) for the latter are referred to as “complex descriptors” (resp. “real descriptors”).
Note
Some GPU devices do not support double-precision descriptors. It is recommended to verify that the targeted device does support double-precision floating-point arithmetic before using a double-precision descriptor on that device.
Member functions#
Considering objects of any descriptor
class, users may
create and delete them via the constructors and destructors;
modify their configuration via the configuration-setting member functions;
query their configuration via the configuration-querying member functions;
commit them to the DFT computation(s) that they define onto a specific
sycl::queue
instance;equip them with their own device-accessible memory allocation for the object’s workspace, by using the workspace-related member functions (feature specific to GPU-committed descriptors).