PLSSVM - Parallel Least Squares Support Vector Machine  2.0.0
A Least Squares Support Vector Machine implementation using different backends.
Public Types | Public Member Functions | Private Attributes | List of all members
plssvm::sycl::detail::nd_range_device_kernel_polynomial< T > Class Template Reference

Calculates the C-SVM kernel using the nd_range formulation and the polynomial kernel function. More...

#include <svm_kernel_nd_range.hpp>

Public Types

using real_type = T
 The type of the data.
 

Public Member Functions

 nd_range_device_kernel_polynomial (::sycl::handler &cgh, const real_type *q, real_type *ret, const real_type *d, const real_type *data_d, const real_type QA_cost, const real_type cost, const kernel_index_type num_rows, const kernel_index_type num_cols, const real_type add, const int degree, const real_type gamma, const real_type coef0)
 Construct a new device kernel calculating the C-SVM kernel using the polynomial C-SVM kernel. More...
 
void operator() (::sycl::nd_item< 2 > nd_idx) const
 Function call operator overload performing the actual calculation. More...
 

Private Attributes

::sycl::local_accessor< real_type, 2 > data_intern_i_
 Local memory used for internal memory access optimizations.
 
::sycl::local_accessor< real_type, 2 > data_intern_j_
 Local memory used for internal memory access optimizations.
 

Detailed Description

template<typename T>
class plssvm::sycl::detail::nd_range_device_kernel_polynomial< T >

Calculates the C-SVM kernel using the nd_range formulation and the polynomial kernel function.

Currently only single GPU execution is supported.

Template Parameters
Tthe type of the data

Constructor & Destructor Documentation

◆ nd_range_device_kernel_polynomial()

template<typename T >
plssvm::sycl::detail::nd_range_device_kernel_polynomial< T >::nd_range_device_kernel_polynomial ( ::sycl::handler &  cgh,
const real_type q,
real_type ret,
const real_type d,
const real_type data_d,
const real_type  QA_cost,
const real_type  cost,
const kernel_index_type  num_rows,
const kernel_index_type  num_cols,
const real_type  add,
const int  degree,
const real_type  gamma,
const real_type  coef0 
)
inline

Construct a new device kernel calculating the C-SVM kernel using the polynomial C-SVM kernel.

Parameters
[in]cghsycl::handler used to allocate the local memory
[in]qthe q vector
[out]retthe result vector
[in]dthe right-hand side of the equation
[in]data_dthe one-dimension data matrix
[in]QA_costhe bottom right matrix entry multiplied by cost
[in]cost1 / the cost parameter in the C-SVM
[in]num_rowsthe number of columns in the data matrix
[in]num_colsthe number of rows in the data matrix
[in]adddenotes whether the values are added or subtracted from the result vector
[in]degreethe degree parameter used in the polynomial kernel function
[in]gammathe gamma parameter used in the polynomial kernel function
[in]coef0the coef0 parameter used in the polynomial kernel function

Member Function Documentation

◆ operator()()

template<typename T >
void plssvm::sycl::detail::nd_range_device_kernel_polynomial< T >::operator() ( ::sycl::nd_item< 2 >  nd_idx) const
inline

Function call operator overload performing the actual calculation.

Parameters
[in]nd_idxthe sycl::nd_item identifying an instance of the functor executing at each point in a sycl::range

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