Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface11 Namespace Reference

Namespaces

 internal
 
 opencl_info
 

Classes

class  async_node
 Implements async node. More...
 
class  broadcast_node
 Forwards messages of type T to all successors. More...
 
class  buffer_node
 Forwards messages in arbitrary order. More...
 
class  callback
 
class  callback_base
 
class  composite_node
 
class  composite_node< tbb::flow::tuple< InputTypes... >, tbb::flow::tuple< OutputTypes... > >
 
class  composite_node< tbb::flow::tuple< InputTypes... >, tbb::flow::tuple<> >
 
class  composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes... > >
 
class  continue_msg
 An empty class used for messages that mean "I'm done". More...
 
class  continue_node
 Implements an executable node that supports continue_msg -> Output. More...
 
class  continue_receiver
 Base class for receivers of completion messages. More...
 
class  function_node
 Implements a function node that supports Input -> Output. More...
 
class  graph_iterator
 
class  graph_node
 The base of all graph nodes. More...
 
class  graph_proxy
 Pure virtual template classes that define interfaces for async communication. More...
 
struct  graph_task
 Base class for tasks generated by graph nodes. More...
 
class  indexer_node
 
class  indexer_node< T0 >
 
class  indexer_node< T0, T1 >
 
class  indexer_node< T0, T1, T2 >
 
class  indexer_node< T0, T1, T2, T3 >
 
class  indexer_node< T0, T1, T2, T3, T4 >
 
class  indexer_node< T0, T1, T2, T3, T4, T5 >
 
class  indexer_node< T0, T1, T2, T3, T4, T5, T6 >
 
class  indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
 
class  indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
 
class  input_node
 An executable node that acts as a source, i.e. it has no predecessors. More...
 
class  join_node
 
class  join_node< OutputTuple, key_matching< K, KHash > >
 
class  join_node< OutputTuple, queueing >
 
class  join_node< OutputTuple, reserving >
 
class  limiter_node
 Forwards messages only if the threshold has not been reached. More...
 
class  multifunction_node
 implements a function node that supports Input -> (set of outputs) More...
 
struct  null_type
 A generic null type. More...
 
class  opencl_async_msg
 
class  opencl_buffer
 
class  opencl_buffer_impl
 
class  opencl_device
 
class  opencl_device_list
 
class  opencl_factory
 
class  opencl_memory
 
class  opencl_node< tuple< Ports... > >
 
class  opencl_node< tuple< Ports... >, JP >
 
class  opencl_node< tuple< Ports... >, JP, Factory >
 
class  opencl_program
 
class  opencl_range
 
class  opencl_subbuffer
 
class  overwrite_node
 
class  priority_queue_node
 Forwards messages in priority order. More...
 
class  queue_node
 Forwards messages in FIFO order. More...
 
class  receiver
 Pure virtual template class that defines a receiver of messages of type T. More...
 
class  receiver_gateway
 
class  run_and_put_task
 
class  sender
 Forward declaration section. More...
 
class  sequencer_node
 Forwards messages in sequence order. More...
 
class  source_node
 An executable node that acts as a source, i.e. it has no predecessors. More...
 
class  split_node
 split_node: accepts a tuple as input, forwards each element of the tuple to its More...
 
class  write_once_node
 

Enumerations

enum  access_type { read_write, write_only, read_only }
 
enum  opencl_program_type { opencl_program_type::SOURCE, opencl_program_type::PRECOMPILED, opencl_program_type::SPIR }
 
enum  reset_flags { rf_reset_protocol = 0, rf_reset_bodies = 1 << 0, rf_clear_edges = 1 << 1 }
 

Functions

static tbb::taskcombine_tasks (graph &g, tbb::task *left, tbb::task *right)
 
template<typename T >
void internal_make_edge (sender< T > &p, receiver< T > &s)
 
template<typename T >
void make_edge (sender< T > &p, receiver< T > &s)
 Makes an edge between a single predecessor and a single successor. More...
 
template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
void make_edge (T &output, V &input)
 
template<typename T , typename R , typename = typename T::output_ports_type>
void make_edge (T &output, receiver< R > &input)
 
template<typename S , typename V , typename = typename V::input_ports_type>
void make_edge (sender< S > &output, V &input)
 
template<typename T >
void internal_remove_edge (sender< T > &p, receiver< T > &s)
 
template<typename T >
void remove_edge (sender< T > &p, receiver< T > &s)
 Removes an edge between a single predecessor and a single successor. More...
 
template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
void remove_edge (T &output, V &input)
 
template<typename T , typename R , typename = typename T::output_ports_type>
void remove_edge (T &output, receiver< R > &input)
 
template<typename S , typename V , typename = typename V::input_ports_type>
void remove_edge (sender< S > &output, V &input)
 
template<typename Body , typename Node >
Body copy_body (Node &n)
 Returns a copy of the body from a function or continue node. More...
 
void enforce_cl_retcode (cl_int err, std::string msg)
 
template<typename T >
event_info (cl_event e, cl_event_info i)
 
template<typename T >
device_info (cl_device_id d, cl_device_info i)
 
template<>
std::string device_info< std::string > (cl_device_id d, cl_device_info i)
 
template<typename T >
platform_info (cl_platform_id p, cl_platform_info i)
 
template<>
std::string platform_info< std::string > (cl_platform_id p, cl_platform_info i)
 
template<typename K , typename T , typename Factory >
key_from_message (const opencl_async_msg< T, Factory > &dmsg)
 
 is_typedef (native_object_type)
 
 is_typedef (memory_object_type)
 
template<typename T >
std::enable_if< is_native_object_type< T >::value, typename T::native_object_type >::type get_native_object (const T &t)
 
template<typename T >
std::enable_if<!is_native_object_type< T >::value, T >::type get_native_object (T t)
 
template<typename T , typename Factory >
std::enable_if< is_memory_object_type< T >::value >::type send_if_memory_object (opencl_device device, opencl_async_msg< T, Factory > &dmsg)
 
template<typename T >
std::enable_if< is_memory_object_type< T >::value >::type send_if_memory_object (opencl_device device, T &t)
 
template<typename T >
std::enable_if<!is_memory_object_type< T >::value >::type send_if_memory_object (opencl_device, T &)
 
template<typename T , typename Factory >
std::enable_if< is_memory_object_type< T >::value >::type receive_if_memory_object (const opencl_async_msg< T, Factory > &dmsg)
 
template<typename T >
std::enable_if<!is_memory_object_type< T >::value >::type receive_if_memory_object (const T &)
 

Variables

template<typename T , typename Factory = opencl_info::default_opencl_factory>
class __TBB_DEPRECATED_IN_VERBOSE_MODE opencl_subbuffer
 
template<typename... Args>
class __TBB_DEPRECATED_IN_VERBOSE_MODE opencl_node
 

Enumeration Type Documentation

◆ access_type

Enumerator
read_write 
write_only 
read_only 

Definition at line 633 of file flow_graph_opencl_node.h.

633  {
634  read_write,
635  write_only,
636  read_only
637 };

◆ opencl_program_type

Enumerator
SOURCE 
PRECOMPILED 
SPIR 

Definition at line 1228 of file flow_graph_opencl_node.h.

1228  {
1229  SOURCE,
1230  PRECOMPILED,
1231  SPIR
1232 };

◆ reset_flags

Enumerator
rf_reset_protocol 
rf_reset_bodies 
rf_clear_edges 

Definition at line 158 of file _flow_graph_impl.h.

158  {
159  rf_reset_protocol = 0,
160  rf_reset_bodies = 1 << 0, // delete the current node body, reset to a copy of the initial node body.
161  rf_clear_edges = 1 << 1 // delete edges
162 };

Function Documentation

◆ combine_tasks()

static tbb::task* tbb::flow::interface11::combine_tasks ( graph g,
tbb::task left,
tbb::task right 
)
inlinestatic

Definition at line 198 of file flow_graph.h.

198  {
199  // if no RHS task, don't change left.
200  if (right == NULL) return left;
201  // right != NULL
202  if (left == NULL) return right;
203  if (left == SUCCESSFULLY_ENQUEUED) return right;
204  // left contains a task
205  if (right != SUCCESSFULLY_ENQUEUED) {
206  // both are valid tasks
208  return right;
209  }
210  return left;
211 }

References tbb::flow::interface11::internal::spawn_in_graph_arena(), and tbb::flow::internal::SUCCESSFULLY_ENQUEUED.

Referenced by internal::function_input< Input, continue_msg, queueing, cache_aligned_allocator< Input > >::apply_body_impl_bypass(), internal::function_input_base< Input, queueing_lightweight, cache_aligned_allocator< Input >, multifunction_input< Input, internal::wrap_tuple_elements< tbb::flow::tuple_size< tuple< Output > >::value, internal::multifunction_output, tuple< Output > >::type, queueing_lightweight, cache_aligned_allocator< Input > > >::forward_task(), tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) >::forward_task(), internal::join_node_base< JP, InputTuple, OutputTuple >::handle_operations(), tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) >::handle_operations_impl(), tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) >::try_put_and_add_task(), tbb::flow::interface11::queue_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) >::try_put_and_add_task(), tbb::flow::interface11::priority_queue_node< T, Compare, Allocator >::try_put_and_add_task(), and internal::broadcast_cache< output_type >::try_put_task().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_body()

template<typename Body , typename Node >
Body tbb::flow::interface11::copy_body ( Node &  n)

Returns a copy of the body from a function or continue node.

Definition at line 3961 of file flow_graph.h.

3961  {
3962  return n.template copy_function_object<Body>();
3963 }

◆ device_info()

template<typename T >
T tbb::flow::interface11::device_info ( cl_device_id  d,
cl_device_info  i 
)

Definition at line 83 of file flow_graph_opencl_node.h.

83  {
84  T res;
85  enforce_cl_retcode(clGetDeviceInfo(d, i, sizeof(res), &res, NULL), "Failed to get OpenCL device information");
86  return res;
87 }

References d, and enforce_cl_retcode().

Here is the call graph for this function:

◆ device_info< std::string >()

template<>
std::string tbb::flow::interface11::device_info< std::string > ( cl_device_id  d,
cl_device_info  i 
)
inline

Definition at line 90 of file flow_graph_opencl_node.h.

90  {
91  size_t required;
92  enforce_cl_retcode(clGetDeviceInfo(d, i, 0, NULL, &required), "Failed to get OpenCL device information");
93 
94  char *buff = (char*)alloca(required);
95  enforce_cl_retcode(clGetDeviceInfo(d, i, required, buff, NULL), "Failed to get OpenCL device information");
96 
97  return buff;
98 }

References d, and enforce_cl_retcode().

Here is the call graph for this function:

◆ enforce_cl_retcode()

void tbb::flow::interface11::enforce_cl_retcode ( cl_int  err,
std::string  msg 
)
inline

Definition at line 68 of file flow_graph_opencl_node.h.

68  {
69  if (err != CL_SUCCESS) {
70  std::cerr << msg << "; error code: " << err << std::endl;
71  throw msg;
72  }
73 }

Referenced by tbb::flow::interface11::opencl_async_msg< T, Factory >::clear_event(), tbb::flow::interface11::opencl_async_msg< T, Factory >::data(), device_info(), device_info< std::string >(), tbb::flow::interface11::opencl_factory< default_device_filter >::enqueue_map_buffer(), tbb::flow::interface11::opencl_factory< default_device_filter >::enqueue_unmap_buffer(), event_info(), tbb::flow::interface11::opencl_factory< default_device_filter >::finalize(), tbb::flow::interface11::internal::find_available_devices(), tbb::flow::interface11::opencl_program< Factory >::get_cl_kernel(), tbb::flow::interface11::opencl_program< Factory >::init(), tbb::flow::interface11::opencl_factory< default_device_filter >::init_once(), tbb::flow::interface11::opencl_factory< DeviceFilter >::kernel::kernel(), tbb::flow::interface11::opencl_async_msg< T, Factory >::opencl_async_msg(), tbb::flow::interface11::opencl_buffer_impl< Factory >::opencl_buffer_impl(), tbb::flow::interface11::opencl_program< Factory >::opencl_device_filter::opencl_device_filter(), tbb::flow::interface11::opencl_program< Factory >::opencl_program_builder::opencl_program_builder(), tbb::flow::interface11::opencl_async_msg< T, Factory >::operator=(), platform_info(), platform_info< std::string >(), tbb::flow::interface11::opencl_factory< default_device_filter >::process_one_arg(), tbb::flow::interface11::opencl_memory< Factory >::receive(), tbb::flow::interface11::opencl_async_msg< T, Factory >::register_callback(), tbb::flow::interface11::opencl_memory< Factory >::send(), tbb::flow::interface11::opencl_factory< default_device_filter >::send_kernel(), tbb::flow::interface11::opencl_factory< default_device_filter >::send_kernel_impl(), tbb::flow::interface11::opencl_async_msg< T, Factory >::set_event(), tbb::flow::interface11::opencl_factory< DeviceFilter >::kernel::~kernel(), tbb::flow::interface11::opencl_async_msg< T, Factory >::~opencl_async_msg(), tbb::flow::interface11::opencl_factory< default_device_filter >::~opencl_factory(), and tbb::flow::interface11::opencl_memory< Factory >::~opencl_memory().

Here is the caller graph for this function:

◆ event_info()

template<typename T >
T tbb::flow::interface11::event_info ( cl_event  e,
cl_event_info  i 
)

Definition at line 76 of file flow_graph_opencl_node.h.

76  {
77  T res;
78  enforce_cl_retcode(clGetEventInfo(e, i, sizeof(res), &res, NULL), "Failed to get OpenCL event information");
79  return res;
80 }

References enforce_cl_retcode().

Here is the call graph for this function:

◆ get_native_object() [1/2]

template<typename T >
std::enable_if<is_native_object_type<T>::value, typename T::native_object_type>::type tbb::flow::interface11::get_native_object ( const T &  t)

Definition at line 749 of file flow_graph_opencl_node.h.

749  {
750  return t.native_object();
751 }

Referenced by tbb::flow::interface11::opencl_factory< default_device_filter >::process_one_arg().

Here is the caller graph for this function:

◆ get_native_object() [2/2]

template<typename T >
std::enable_if<!is_native_object_type<T>::value, T>::type tbb::flow::interface11::get_native_object ( t)

Definition at line 754 of file flow_graph_opencl_node.h.

754  {
755  return t;
756 }

◆ internal_make_edge()

template<typename T >
void tbb::flow::interface11::internal_make_edge ( sender< T > &  p,
receiver< T > &  s 
)
inline

Definition at line 3818 of file flow_graph.h.

3818  {
3819 #endif
3820 #if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
3821  s.internal_add_built_predecessor(p);
3822  p.internal_add_built_successor(s);
3823 #endif
3824  p.register_successor( s );
3826 }

References tbb::internal::fgt_make_edge(), p, and s.

Referenced by make_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ internal_remove_edge()

template<typename T >
void tbb::flow::interface11::internal_remove_edge ( sender< T > &  p,
receiver< T > &  s 
)
inline

Definition at line 3881 of file flow_graph.h.

3881  {
3882 #endif
3883  p.remove_successor( s );
3884 #if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
3885  // TODO: should we try to remove p from the predecessor list of s, in case the edge is reversed?
3886  p.internal_delete_built_successor(s);
3887  s.internal_delete_built_predecessor(p);
3888 #endif
3890 }

References tbb::internal::fgt_remove_edge(), p, and s.

Referenced by remove_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_typedef() [1/2]

tbb::flow::interface11::is_typedef ( memory_object_type  )

◆ is_typedef() [2/2]

tbb::flow::interface11::is_typedef ( native_object_type  )

◆ key_from_message()

template<typename K , typename T , typename Factory >
K tbb::flow::interface11::key_from_message ( const opencl_async_msg< T, Factory > &  dmsg)

Definition at line 506 of file flow_graph_opencl_node.h.

506  {
508  const T &t = dmsg.data( false );
509  __TBB_STATIC_ASSERT( true, "" );
510  return key_from_message<K, T>( t );
511 }

References __TBB_STATIC_ASSERT, tbb::flow::interface11::opencl_async_msg< T, Factory >::data(), and tbb::flow::key_from_message().

Here is the call graph for this function:

◆ make_edge() [1/4]

template<typename S , typename V , typename = typename V::input_ports_type>
void tbb::flow::interface11::make_edge ( sender< S > &  output,
V &  input 
)
inline

Definition at line 3872 of file flow_graph.h.

3872  {
3873  make_edge(output, get<0>(input.input_ports()));
3874 }

References make_edge().

Here is the call graph for this function:

◆ make_edge() [2/4]

template<typename T >
void tbb::flow::interface11::make_edge ( sender< T > &  p,
receiver< T > &  s 
)
inline

Makes an edge between a single predecessor and a single successor.

Definition at line 3830 of file flow_graph.h.

3830  {
3831  internal_make_edge( p, s );
3832 }

References internal_make_edge(), p, and s.

Referenced by make_edge(), streaming_node< tuple< Ports... >, JP, StreamFactory >::make_edges(), and streaming_node< tuple< Ports... >, JP, StreamFactory >::make_Nth_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_edge() [3/4]

template<typename T , typename R , typename = typename T::output_ports_type>
void tbb::flow::interface11::make_edge ( T &  output,
receiver< R > &  input 
)
inline

Definition at line 3865 of file flow_graph.h.

3865  {
3866  make_edge(get<0>(output.output_ports()), input);
3867 }

References make_edge().

Here is the call graph for this function:

◆ make_edge() [4/4]

template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
void tbb::flow::interface11::make_edge ( T &  output,
V &  input 
)
inline

Definition at line 3858 of file flow_graph.h.

3858  {
3859  make_edge(get<0>(output.output_ports()), get<0>(input.input_ports()));
3860 }

References make_edge().

Here is the call graph for this function:

◆ platform_info()

template<typename T >
T tbb::flow::interface11::platform_info ( cl_platform_id  p,
cl_platform_info  i 
)

Definition at line 101 of file flow_graph_opencl_node.h.

101  {
102  T res;
103  enforce_cl_retcode(clGetPlatformInfo(p, i, sizeof(res), &res, NULL), "Failed to get OpenCL platform information");
104  return res;
105 }

References enforce_cl_retcode(), and p.

Here is the call graph for this function:

◆ platform_info< std::string >()

template<>
std::string tbb::flow::interface11::platform_info< std::string > ( cl_platform_id  p,
cl_platform_info  i 
)
inline

Definition at line 108 of file flow_graph_opencl_node.h.

108  {
109  size_t required;
110  enforce_cl_retcode(clGetPlatformInfo(p, i, 0, NULL, &required), "Failed to get OpenCL platform information");
111 
112  char *buff = (char*)alloca(required);
113  enforce_cl_retcode(clGetPlatformInfo(p, i, required, buff, NULL), "Failed to get OpenCL platform information");
114 
115  return buff;
116 }

References enforce_cl_retcode(), and p.

Here is the call graph for this function:

◆ receive_if_memory_object() [1/2]

template<typename T , typename Factory >
std::enable_if<is_memory_object_type<T>::value>::type tbb::flow::interface11::receive_if_memory_object ( const opencl_async_msg< T, Factory > &  dmsg)

Definition at line 783 of file flow_graph_opencl_node.h.

783  {
784  const T &t = dmsg.data( false );
785  typedef typename T::memory_object_type mem_obj_t;
786  mem_obj_t mem_obj = t.memory_object();
787  opencl_async_msg<mem_obj_t, Factory> d( mem_obj );
788  if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() );
789  mem_obj.receive( d );
790  if ( d.get_event() ) dmsg.set_event( *d.get_event() );
791 }

References d, tbb::flow::interface11::opencl_async_msg< T, Factory >::data(), tbb::flow::interface11::opencl_async_msg< T, Factory >::get_event(), and tbb::flow::interface11::opencl_async_msg< T, Factory >::set_event().

Referenced by tbb::flow::interface11::opencl_async_msg< T, Factory >::finalize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ receive_if_memory_object() [2/2]

template<typename T >
std::enable_if<!is_memory_object_type<T>::value>::type tbb::flow::interface11::receive_if_memory_object ( const T &  )

Definition at line 794 of file flow_graph_opencl_node.h.

794 {}

◆ remove_edge() [1/4]

template<typename S , typename V , typename = typename V::input_ports_type>
void tbb::flow::interface11::remove_edge ( sender< S > &  output,
V &  input 
)
inline

Definition at line 3934 of file flow_graph.h.

3934  {
3935  remove_edge(output, get<0>(input.input_ports()));
3936 }

References remove_edge().

Here is the call graph for this function:

◆ remove_edge() [2/4]

template<typename T >
void tbb::flow::interface11::remove_edge ( sender< T > &  p,
receiver< T > &  s 
)
inline

Removes an edge between a single predecessor and a single successor.

Definition at line 3894 of file flow_graph.h.

3894  {
3895  internal_remove_edge( p, s );
3896 }

References internal_remove_edge(), p, and s.

Referenced by remove_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_edge() [3/4]

template<typename T , typename R , typename = typename T::output_ports_type>
void tbb::flow::interface11::remove_edge ( T &  output,
receiver< R > &  input 
)
inline

Definition at line 3928 of file flow_graph.h.

3928  {
3929  remove_edge(get<0>(output.output_ports()), input);
3930 }

References remove_edge().

Here is the call graph for this function:

◆ remove_edge() [4/4]

template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
void tbb::flow::interface11::remove_edge ( T &  output,
V &  input 
)
inline

Definition at line 3921 of file flow_graph.h.

3921  {
3922  remove_edge(get<0>(output.output_ports()), get<0>(input.input_ports()));
3923 }

References remove_edge().

Here is the call graph for this function:

◆ send_if_memory_object() [1/3]

template<typename T , typename Factory >
std::enable_if<is_memory_object_type<T>::value>::type tbb::flow::interface11::send_if_memory_object ( opencl_device  device,
opencl_async_msg< T, Factory > &  dmsg 
)

Definition at line 760 of file flow_graph_opencl_node.h.

760  {
761  const T &t = dmsg.data( false );
762  typedef typename T::memory_object_type mem_obj_t;
763  mem_obj_t mem_obj = t.memory_object();
764  opencl_async_msg<mem_obj_t, Factory> d( mem_obj );
765  if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() );
766  mem_obj.send( device, d );
767  if ( d.get_event() ) dmsg.set_event( *d.get_event() );
768 }

References d, tbb::flow::interface11::opencl_async_msg< T, Factory >::data(), tbb::flow::interface11::opencl_async_msg< T, Factory >::get_event(), and tbb::flow::interface11::opencl_async_msg< T, Factory >::set_event().

Referenced by tbb::flow::interface11::opencl_factory< default_device_filter >::send_data().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_if_memory_object() [2/3]

template<typename T >
std::enable_if<is_memory_object_type<T>::value>::type tbb::flow::interface11::send_if_memory_object ( opencl_device  device,
T &  t 
)

Definition at line 771 of file flow_graph_opencl_node.h.

771  {
772  typedef typename T::memory_object_type mem_obj_t;
773  mem_obj_t mem_obj = t.memory_object();
774  opencl_async_msg<mem_obj_t, typename mem_obj_t::opencl_factory_type> dmsg( mem_obj );
775  mem_obj.send( device, dmsg );
776 }

◆ send_if_memory_object() [3/3]

template<typename T >
std::enable_if<!is_memory_object_type<T>::value>::type tbb::flow::interface11::send_if_memory_object ( opencl_device  ,
T &   
)

Definition at line 779 of file flow_graph_opencl_node.h.

779 {};

Variable Documentation

◆ opencl_node

template<typename... Args>
class __TBB_DEPRECATED_IN_VERBOSE_MODE tbb::flow::interface11::opencl_node

Definition at line 1418 of file flow_graph_opencl_node.h.

◆ opencl_subbuffer

template<typename T , typename Factory = opencl_info::default_opencl_factory>
class __TBB_DEPRECATED_IN_VERBOSE_MODE tbb::flow::interface11::opencl_subbuffer

Definition at line 640 of file flow_graph_opencl_node.h.

tbb::flow::interface11::read_write
@ read_write
Definition: flow_graph_opencl_node.h:634
tbb::internal::fgt_remove_edge
static void fgt_remove_edge(void *, void *)
Definition: _flow_graph_trace_impl.h:334
tbb::flow::interface11::internal::spawn_in_graph_arena
void spawn_in_graph_arena(tbb::flow::interface10::graph &g, tbb::task &arena_task)
Spawns a task inside graph arena.
Definition: _flow_graph_impl.h:521
tbb::internal::fgt_make_edge
static void fgt_make_edge(void *, void *)
Definition: _flow_graph_trace_impl.h:333
tbb::flow::interface11::internal_remove_edge
void internal_remove_edge(sender< T > &p, receiver< T > &s)
Definition: flow_graph.h:3881
d
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d
Definition: ittnotify_static.h:109
tbb::flow::internal::SUCCESSFULLY_ENQUEUED
static tbb::task *const SUCCESSFULLY_ENQUEUED
Definition: _flow_graph_impl.h:61
tbb::flow::interface11::internal_make_edge
void internal_make_edge(sender< T > &p, receiver< T > &s)
Definition: flow_graph.h:3818
tbb::flow::interface11::make_edge
void make_edge(sender< S > &output, V &input)
Definition: flow_graph.h:3872
tbb::flow::key_from_message
K key_from_message(const T &t)
Definition: flow_graph.h:720
__TBB_STATIC_ASSERT
#define __TBB_STATIC_ASSERT(condition, msg)
Definition: tbb_stddef.h:553
tbb::flow::interface11::enforce_cl_retcode
void enforce_cl_retcode(cl_int err, std::string msg)
Definition: flow_graph_opencl_node.h:68
tbb::flow::interface11::read_only
@ read_only
Definition: flow_graph_opencl_node.h:636
tbb::flow::interface11::opencl_program_type::SOURCE
@ SOURCE
tbb::flow::interface11::rf_reset_protocol
@ rf_reset_protocol
Definition: _flow_graph_impl.h:159
s
void const char const char int ITT_FORMAT __itt_group_sync s
Definition: ittnotify_static.h:91
tbb::flow::interface11::rf_clear_edges
@ rf_clear_edges
Definition: _flow_graph_impl.h:161
tbb::flow::interface11::write_only
@ write_only
Definition: flow_graph_opencl_node.h:635
tbb::flow::interface11::opencl_program_type::SPIR
@ SPIR
p
void const char const char int ITT_FORMAT __itt_group_sync p
Definition: ittnotify_static.h:91
tbb::flow::interface11::rf_reset_bodies
@ rf_reset_bodies
Definition: _flow_graph_impl.h:160
tbb::flow::interface11::remove_edge
void remove_edge(sender< S > &output, V &input)
Definition: flow_graph.h:3934
tbb::flow::interface11::opencl_program_type::PRECOMPILED
@ PRECOMPILED

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.