.. index:: pair: group; Kernel class C wrapper .. _doxid-da/df6/group___kernel_interface: Kernel class C wrapper ====================== .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block // global functions :ref:`DPCTL_API` :ref:`__dpctl_give` :ref:`DPCTLSyclKernelRef` :ref:`DPCTLKernel_Copy`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` void :ref:`DPCTLKernel_Delete`(:ref:`__dpctl_take` :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` uint32_t :ref:`DPCTLKernel_GetCompileNumSubGroups`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` uint32_t :ref:`DPCTLKernel_GetCompileSubGroupSize`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` uint32_t :ref:`DPCTLKernel_GetMaxNumSubGroups`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` uint32_t :ref:`DPCTLKernel_GetMaxSubGroupSize`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` size_t :ref:`DPCTLKernel_GetNumArgs`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` size_t :ref:`DPCTLKernel_GetPreferredWorkGroupSizeMultiple`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` size_t :ref:`DPCTLKernel_GetPrivateMemSize`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); :ref:`DPCTL_API` size_t :ref:`DPCTLKernel_GetWorkGroupSize`(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef); .. _details-da/df6/group___kernel_interface: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Global Functions ---------------- .. index:: pair: function; DPCTLKernel_Copy .. _doxid-da/df6/group___kernel_interface_1gae6d5f7dcf1d42d6e1edc2b911386c22f: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` :ref:`__dpctl_give` :ref:`DPCTLSyclKernelRef` DPCTLKernel_Copy(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) Returns a copy of the DPCTLSyclKernelRef object. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef object to be copied. .. rubric:: Returns: A new DPCTLSyclKernelRef created by copying the passed in DPCTLSyclKernelRef object. .. index:: pair: function; DPCTLKernel_Delete .. _doxid-da/df6/group___kernel_interface_1ga02cb1ddc64d9f78d228a5dc222c8862b: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` void DPCTLKernel_Delete(:ref:`__dpctl_take` :ref:`DPCTLSyclKernelRef` KRef) Deletes the DPCTLSyclKernelRef after casting it to a ``sycl::kernel``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to a SYCL interoperability kernel. .. index:: pair: function; DPCTLKernel_GetCompileNumSubGroups .. _doxid-da/df6/group___kernel_interface_1gab94f84a23cabefeda98896a35707c694: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` uint32_t DPCTLKernel_GetCompileNumSubGroups(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) !brief Wrapper around ``kernel::get_info()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to an SYCL interoperability kernel. .. rubric:: Returns: Returns the number of sub-groups specified by the kernel, or 0 (if not specified). .. index:: pair: function; DPCTLKernel_GetCompileSubGroupSize .. _doxid-da/df6/group___kernel_interface_1gaac45a42a0c66f550c099b635f2cecad7: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` uint32_t DPCTLKernel_GetCompileSubGroupSize(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) !brief Wrapper around ``kernel::get_info()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to an SYCL interoperability kernel. .. rubric:: Returns: Returns the required sub-group size specified by this kernel, or 0 (if not specified). .. index:: pair: function; DPCTLKernel_GetMaxNumSubGroups .. _doxid-da/df6/group___kernel_interface_1ga87026b11e734302aa8238ad38fc6b14a: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` uint32_t DPCTLKernel_GetMaxNumSubGroups(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) !brief Wrapper around ``kernel::get_info()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to an SYCL interoperability kernel. .. rubric:: Returns: Returns the maximum number of sub-groups for this kernel. .. index:: pair: function; DPCTLKernel_GetMaxSubGroupSize .. _doxid-da/df6/group___kernel_interface_1gae84f948176f0eff5519fdb9a0ec4a3e7: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` uint32_t DPCTLKernel_GetMaxSubGroupSize(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) !brief Wrapper around ``kernel::get_info()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to an SYCL interoperability kernel. .. rubric:: Returns: Returns the maximum sub-group size for this kernel. .. index:: pair: function; DPCTLKernel_GetNumArgs .. _doxid-da/df6/group___kernel_interface_1gae585c0ae9e5e1826ca24aac6f9b2a71d: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` size_t DPCTLKernel_GetNumArgs(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) Returns the number of arguments for the sycl interoperability kernel. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to a SYCL interoperability kernel. .. rubric:: Returns: Returns the number of arguments for the interoperability kernel. .. index:: pair: function; DPCTLKernel_GetPreferredWorkGroupSizeMultiple .. _doxid-da/df6/group___kernel_interface_1ga54f99084068d619b9bd5a624c02b5fbb: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` size_t DPCTLKernel_GetPreferredWorkGroupSizeMultiple(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) !brief Wrapper around ``kernel::get_info()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to a SYCL interoperability kernel. .. rubric:: Returns: Returns a value, of which work-group size is preferred to be a multiple, for executing a kernel on the device it was built for. .. index:: pair: function; DPCTLKernel_GetPrivateMemSize .. _doxid-da/df6/group___kernel_interface_1ga8b5b72e2f69a5eaeab645e96bf28b411: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` size_t DPCTLKernel_GetPrivateMemSize(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) !brief Wrapper around ``kernel::get_info()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to a SYCL interoperability kernel. .. rubric:: Returns: Returns the minimum amount of private memory, in bytes, used by each work-item in the kernel. .. index:: pair: function; DPCTLKernel_GetWorkGroupSize .. _doxid-da/df6/group___kernel_interface_1ga2ddbfad26249fccbf46c8f044c4244d4: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`DPCTL_API` size_t DPCTLKernel_GetWorkGroupSize(:ref:`__dpctl_keep` const :ref:`DPCTLSyclKernelRef` KRef) !brief Wrapper around ``kernel::get_info()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - KRef - DPCTLSyclKernelRef pointer to a SYCL interoperability kernel. .. rubric:: Returns: Returns the maximum number of work-items in a work-group that can be used to execute a kernel on the device it was built for.