.. index:: pair: namespace; dnnl::threadpool_interop .. _doxid-namespacednnl_1_1threadpool__interop: namespace dnnl::threadpool_interop ================================== .. toctree:: :hidden: struct_dnnl_threadpool_interop_threadpool_iface.rst Overview ~~~~~~~~ Threadpool interoperability namespace. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block namespace threadpool_interop { // structs struct :ref:`threadpool_iface`; // global functions :ref:`dnnl::stream` :ref:`make_stream`( const :ref:`dnnl::engine`& aengine, :ref:`threadpool_iface`* threadpool ); :ref:`threadpool_iface`* :ref:`get_threadpool`(const :ref:`dnnl::stream`& astream); :ref:`status` :target:`sgemm`( char transa, char transb, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const float* A, :ref:`dnnl_dim_t` lda, const float* B, :ref:`dnnl_dim_t` ldb, float beta, float* C, :ref:`dnnl_dim_t` ldc, :ref:`threadpool_iface`* tp ); :ref:`status` :target:`gemm_u8s8s32`( char transa, char transb, char offsetc, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const uint8_t* A, :ref:`dnnl_dim_t` lda, uint8_t ao, const int8_t* B, :ref:`dnnl_dim_t` ldb, int8_t bo, float beta, int32_t* C, :ref:`dnnl_dim_t` ldc, const int32_t* co, :ref:`threadpool_iface`* tp ); :ref:`status` :target:`gemm_s8s8s32`( char transa, char transb, char offsetc, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const int8_t* A, :ref:`dnnl_dim_t` lda, int8_t ao, const int8_t* B, :ref:`dnnl_dim_t` ldb, int8_t bo, float beta, int32_t* C, :ref:`dnnl_dim_t` ldc, const int32_t* co, :ref:`threadpool_iface`* tp ); } // namespace threadpool_interop .. _details-namespacednnl_1_1threadpool__interop: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Threadpool interoperability namespace. Global Functions ---------------- .. index:: pair: function; make_stream .. _doxid-namespacednnl_1_1threadpool__interop_1aaa7ec7af54363d81f8d4bcd2ff4af80d: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl::stream` make_stream( const :ref:`dnnl::engine`& aengine, :ref:`threadpool_iface`* threadpool ) Constructs an execution stream for the specified engine and threadpool. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - aengine - Engine to create the stream on. * - threadpool - Pointer to an instance of a C++ class that implements dnnl::threapdool_iface interface. .. rubric:: Returns: An execution stream. .. rubric:: See also: :ref:`Using oneDNN with Threadpool-based Threading ` .. index:: pair: function; get_threadpool .. _doxid-namespacednnl_1_1threadpool__interop_1abf6eacb2add7d269b3c6f4d027874969: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`threadpool_iface`* get_threadpool(const :ref:`dnnl::stream`& astream) Returns the pointer to a threadpool that is used by an execution stream. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - astream - An execution stream. .. rubric:: Returns: Output pointer to an instance of a C++ class that implements dnnl::threapdool_iface interface or NULL if the stream was created without threadpool. .. rubric:: See also: :ref:`Using oneDNN with Threadpool-based Threading `