VisionCpp  0.0.1
Public Member Functions | List of all members
visioncpp::internal::Device_< backend::sycl, dv > Class Template Reference

specialisation Device_ for sycl More...

#include <sycl_device.hpp>

Collaboration diagram for visioncpp::internal::Device_< backend::sycl, dv >:

Public Member Functions

 Device_ ()
 
template<size_t LC, size_t LR, size_t CGT, size_t RGT, size_t CLT, size_t RLT, typename Expr >
void execute (Expr &expr) const
 

Detailed Description

template<device dv>
class visioncpp::internal::Device_< backend::sycl, dv >

specialisation Device_ for sycl

Template Parameters
devicetype supported by sycl

Definition at line 32 of file sycl_device.hpp.

Constructor & Destructor Documentation

◆ Device_()

template<device dv>
visioncpp::internal::Device_< backend::sycl, dv >::Device_ ( )
inline

Definition at line 40 of file sycl_device.hpp.

References visioncpp::sycl.

Member Function Documentation

◆ execute()

template<device dv>
template<size_t LC, size_t LR, size_t CGT, size_t RGT, size_t CLT, size_t RLT, typename Expr >
void visioncpp::internal::Device_< backend::sycl, dv >::execute ( Expr &  expr) const
inline

generating the short class name for the AMD gpu

replacing the the leaf node in the expression tree with a placeholder number

submitting the lambda expression to the sycl queue.

creating global accessors on all input output buffers

create the tuple of local output accessor

starting point of local tuples

merge it with all the other existing tuples

submitting the kernel lambda to the parallel

creating the index access for each thread

creating the eval expression for evaluating the expression tree. The output now moved to the front so the Output_offset should be reduced by one.

Definition at line 52 of file sycl_device.hpp.

References visioncpp::internal::tools::tuple::append(), visioncpp::extract_accessors(), and visioncpp::internal::tools::tuple::size().

Here is the call graph for this function:

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