Deep Neural Network Library (DNNL)  1.3.0
Performance library for Deep Learning
Public Types | Public Member Functions | List of all members
dnnl::stream Struct Reference

An execution stream. More...

#include <dnnl.hpp>

Inheritance diagram for dnnl::stream:
Inheritance graph
[legend]
Collaboration diagram for dnnl::stream:
Collaboration graph
[legend]

Public Types

enum  flags : unsigned
 Stream flags. Can be combined using the bitwise OR operator. More...
 

Public Member Functions

 stream ()=default
 Constructs an empty stream. More...
 
 stream (const engine &engine, flags flags=flags::default_flags)
 Constructs a stream for the specified engine and with behavior controlled by the specified flags. More...
 
 stream (const engine &engine, cl_command_queue queue)
 Constructs a stream for the specified engine and the OpenCL queue. More...
 
cl_command_queue get_ocl_command_queue () const
 Returns the underlying OpenCL queue object. More...
 
streamwait ()
 Waits for all primitives executing in the stream to finish. More...
 
 handle ()=default
 Constructs an empty handle object. More...
 
 handle (const handle< T, traits > &)=default
 Copy constructor.
 
 handle (handle< T, traits > &&)=default
 Move constructor.
 
 handle (T t, bool weak=false)
 Constructs a handle wrapper object from a C API handle. More...
 
- Public Member Functions inherited from dnnl::handle< dnnl_stream_t >
bool operator== (const handle< dnnl_stream_t, handle_traits< dnnl_stream_t > > &other) const
 Equality operator. More...
 
bool operator!= (const handle &other) const
 Inequality operator. More...
 
 handle ()=default
 Constructs an empty handle object. More...
 
 handle (const handle< dnnl_stream_t, handle_traits< dnnl_stream_t > > &)=default
 Copy constructor.
 
 handle (handle< dnnl_stream_t, handle_traits< dnnl_stream_t > > &&)=default
 Move constructor.
 
 handle (dnnl_stream_t t, bool weak=false)
 Constructs a handle wrapper object from a C API handle. More...
 
handle< dnnl_stream_t, handle_traits< dnnl_stream_t > > & operator= (const handle< dnnl_stream_t, handle_traits< dnnl_stream_t > > &)=default
 Assignment operator.
 
handle< dnnl_stream_t, handle_traits< dnnl_stream_t > > & operator= (handle< dnnl_stream_t, handle_traits< dnnl_stream_t > > &&)=default
 Move assignment operator.
 
void reset (dnnl_stream_t t, bool weak=false)
 Resets the handle wrapper objects to wrap a new C API handle. More...
 
dnnl_stream_t get (bool allow_empty=false) const
 Returns the underlying C API handle. More...
 
 operator dnnl_stream_t () const
 Converts a handle to the underlying C API handle type. More...
 
 operator bool () const
 Checks whether the object is empty. More...
 

Detailed Description

An execution stream.

Examples:
cnn_inference_f32.cpp, cnn_inference_int8.cpp, cnn_training_f32.cpp, cpu_cnn_training_bf16.cpp, cpu_matmul_quantization.cpp, cpu_rnn_inference_f32.cpp, cpu_rnn_inference_int8.cpp, cpu_sgemm_and_matmul.cpp, cross_engine_reorder.cpp, getting_started.cpp, gpu_opencl_interop.cpp, inference_int8_matmul.cpp, memory_format_propagation.cpp, performance_profiling.cpp, and rnn_training_f32.cpp.

Member Enumeration Documentation

◆ flags

enum dnnl::stream::flags : unsigned
strong

Stream flags. Can be combined using the bitwise OR operator.

Enumerator
default_order 

Default order execution.

Either in-order or out-of-order depending on the engine runtime.

in_order 

In-order execution.

out_of_order 

Out-of-order execution.

default_flags 

Default stream configuration.

Constructor & Destructor Documentation

◆ stream() [1/3]

dnnl::stream::stream ( )
default

Constructs an empty stream.

An empty stream cannot be used in any operations.

◆ stream() [2/3]

dnnl::stream::stream ( const engine engine,
flags  flags = flags::default_flags 
)
inline

Constructs a stream for the specified engine and with behavior controlled by the specified flags.

Parameters
engineEngine to create the stream on.
flagsFlags controlling stream behavior.

◆ stream() [3/3]

dnnl::stream::stream ( const engine engine,
cl_command_queue  queue 
)
inline

Constructs a stream for the specified engine and the OpenCL queue.

Parameters
engineEngine to create the stream on.
queueOpenCL queue to use for the stream.

Member Function Documentation

◆ get_ocl_command_queue()

cl_command_queue dnnl::stream::get_ocl_command_queue ( ) const
inline

Returns the underlying OpenCL queue object.

Returns
OpenCL queue.

◆ wait()

stream& dnnl::stream::wait ( )
inline

Waits for all primitives executing in the stream to finish.

Returns
The stream itself.
Examples:
getting_started.cpp, memory_format_propagation.cpp, and rnn_training_f32.cpp.

◆ handle() [1/2]

dnnl::handle< T, traits >::handle
default

Constructs an empty handle object.

Warning
Uninitialized object cannot be used in most library calls and is equivalent to a null pointer. Any attempt to use its methods, or passing it to the other library function, will cause an exception to be thrown.

◆ handle() [2/2]

dnnl::handle< T, traits >::handle
inlineexplicit

Constructs a handle wrapper object from a C API handle.

Parameters
tThe C API handle to wrap.
weakA flag specifying whether to construct a weak wrapper; defaults to false.

The documentation for this struct was generated from the following file: