openclKernels.hpp
Go to the documentation of this file.
34using spmv_blocked_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, const unsigned int,
36using spmv_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, const unsigned int,
38using residual_blocked_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, const unsigned int,
40using residual_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, const unsigned int,
42using ilu_apply1_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, const cl::Buffer&,
44using ilu_apply2_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&,
46using stdwell_apply_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&,
50using ilu_decomp_kernel_type = cl::KernelFunctor<const unsigned int, const unsigned int, cl::Buffer&, cl::Buffer&, cl::Buffer&,
52using isaiL_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&,
54using isaiU_kernel_type = cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&, cl::Buffer&,
64 static std::size_t preferred_workgroup_size_multiple; // stores CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE
66 static std::unique_ptr<cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, const unsigned int, cl::LocalSpaceArg> > dot_k;
67 static std::unique_ptr<cl::KernelFunctor<cl::Buffer&, cl::Buffer&, const unsigned int, cl::LocalSpaceArg> > norm_k;
68 static std::unique_ptr<cl::KernelFunctor<cl::Buffer&, const double, cl::Buffer&, const unsigned int> > axpy_k;
69 static std::unique_ptr<cl::KernelFunctor<cl::Buffer&, const double, const unsigned int> > scale_k;
70 static std::unique_ptr<cl::KernelFunctor<const double, cl::Buffer&, cl::Buffer&, cl::Buffer&, const unsigned int> > vmul_k;
71 static std::unique_ptr<cl::KernelFunctor<cl::Buffer&, cl::Buffer&, cl::Buffer&, const double, const double, const unsigned int> > custom_k;
72 static std::unique_ptr<cl::KernelFunctor<const cl::Buffer&, cl::Buffer&, cl::Buffer&, const unsigned int> > full_to_pressure_restriction_k;
73 static std::unique_ptr<cl::KernelFunctor<cl::Buffer&, cl::Buffer&, const unsigned int, const unsigned int> > add_coarse_pressure_correction_k;
74 static std::unique_ptr<cl::KernelFunctor<const cl::Buffer&, cl::Buffer&, const cl::Buffer&, const unsigned int> > prolongate_vector_k;
118 static void init(cl::Context *context, cl::CommandQueue *queue, std::vector<cl::Device>& devices, int verbosity);
125 static void custom(cl::Buffer& p, cl::Buffer& v, cl::Buffer& r, const double omega, const double beta, int N);
126 static void full_to_pressure_restriction(const cl::Buffer& fine_y, cl::Buffer& weights, cl::Buffer& coarse_y, int Nb);
127 static void add_coarse_pressure_correction(cl::Buffer& coarse_x, cl::Buffer& fine_x, int pressure_idx, int Nb);
128 static void prolongate_vector(const cl::Buffer& in, cl::Buffer& out, const cl::Buffer& cols, int N);
129 static void spmv(cl::Buffer& vals, cl::Buffer& cols, cl::Buffer& rows, const cl::Buffer& x, cl::Buffer& b, int Nb, unsigned int block_size, bool reset = true, bool add = false);
130 static void residual(cl::Buffer& vals, cl::Buffer& cols, cl::Buffer& rows, cl::Buffer& x, const cl::Buffer& rhs, cl::Buffer& out, int Nb, unsigned int block_size);
132 static void ILU_apply1(cl::Buffer& rowIndices, cl::Buffer& vals, cl::Buffer& cols, cl::Buffer& rows, cl::Buffer& diagIndex,
133 const cl::Buffer& y, cl::Buffer& x, cl::Buffer& rowsPerColor, int color, int Nb, unsigned int block_size);
135 static void ILU_apply2(cl::Buffer& rowIndices, cl::Buffer& vals, cl::Buffer& cols, cl::Buffer& rows, cl::Buffer& diagIndex,
136 cl::Buffer& invDiagVals, cl::Buffer& x, cl::Buffer& rowsPerColor, int color, int Nb, unsigned int block_size);
138 static void ILU_decomp(int firstRow, int lastRow, cl::Buffer& rowIndices, cl::Buffer& vals, cl::Buffer& cols, cl::Buffer& rows,
141 static void apply_stdwells(cl::Buffer& d_Cnnzs_ocl, cl::Buffer &d_Dnnzs_ocl, cl::Buffer &d_Bnnzs_ocl,
145 static void isaiL(cl::Buffer& diagIndex, cl::Buffer& colPointers, cl::Buffer& mapping, cl::Buffer& nvc,
146 cl::Buffer& luIdxs, cl::Buffer& xxIdxs, cl::Buffer& dxIdxs, cl::Buffer& LUvals, cl::Buffer& invLvals, unsigned int Nb);
148 static void isaiU(cl::Buffer& diagIndex, cl::Buffer& colPointers, cl::Buffer& rowIndices, cl::Buffer& mapping,
149 cl::Buffer& nvc, cl::Buffer& luIdxs, cl::Buffer& xxIdxs, cl::Buffer& dxIdxs, cl::Buffer& LUvals,
Definition: openclKernels.hpp:58 static const std::string full_to_pressure_restriction_str Definition: openclKernels.hpp:97 static const std::string norm_str Definition: openclKernels.hpp:95 static const std::string residual_str Definition: openclKernels.hpp:105 static void ILU_apply2(cl::Buffer &rowIndices, cl::Buffer &vals, cl::Buffer &cols, cl::Buffer &rows, cl::Buffer &diagIndex, cl::Buffer &invDiagVals, cl::Buffer &x, cl::Buffer &rowsPerColor, int color, int Nb, unsigned int block_size) static const std::string vmul_str Definition: openclKernels.hpp:93 static void init(cl::Context *context, cl::CommandQueue *queue, std::vector< cl::Device > &devices, int verbosity) static void spmv(cl::Buffer &vals, cl::Buffer &cols, cl::Buffer &rows, const cl::Buffer &x, cl::Buffer &b, int Nb, unsigned int block_size, bool reset=true, bool add=false) static void vmul(const double alpha, cl::Buffer &in1, cl::Buffer &in2, cl::Buffer &out, int N) static const std::string isaiU_str Definition: openclKernels.hpp:116 static const std::string ILU_apply2_fm_str Definition: openclKernels.hpp:111 static const std::string isaiL_str Definition: openclKernels.hpp:115 static void add_coarse_pressure_correction(cl::Buffer &coarse_x, cl::Buffer &fine_x, int pressure_idx, int Nb) static const std::string spmv_str Definition: openclKernels.hpp:102 static double dot(cl::Buffer &in1, cl::Buffer &in2, cl::Buffer &out, int N) static const std::string residual_blocked_str Definition: openclKernels.hpp:104 static const std::string prolongate_vector_str Definition: openclKernels.hpp:99 static void isaiU(cl::Buffer &diagIndex, cl::Buffer &colPointers, cl::Buffer &rowIndices, cl::Buffer &mapping, cl::Buffer &nvc, cl::Buffer &luIdxs, cl::Buffer &xxIdxs, cl::Buffer &dxIdxs, cl::Buffer &LUvals, cl::Buffer &invDiagVals, cl::Buffer &invUvals, unsigned int Nb) static void custom(cl::Buffer &p, cl::Buffer &v, cl::Buffer &r, const double omega, const double beta, int N) static void scale(cl::Buffer &in, const double a, int N) static void ILU_decomp(int firstRow, int lastRow, cl::Buffer &rowIndices, cl::Buffer &vals, cl::Buffer &cols, cl::Buffer &rows, cl::Buffer &diagIndex, cl::Buffer &invDiagVals, int Nb, unsigned int block_size) static const std::string spmv_blocked_str Definition: openclKernels.hpp:100 static void apply_stdwells(cl::Buffer &d_Cnnzs_ocl, cl::Buffer &d_Dnnzs_ocl, cl::Buffer &d_Bnnzs_ocl, cl::Buffer &d_Ccols_ocl, cl::Buffer &d_Bcols_ocl, cl::Buffer &d_x, cl::Buffer &d_y, int dim, int dim_wells, cl::Buffer &d_val_pointers_ocl, int num_std_wells) static double norm(cl::Buffer &in, cl::Buffer &out, int N) static const std::string spmv_blocked_add_str Definition: openclKernels.hpp:101 static const std::string scale_str Definition: openclKernels.hpp:92 static const std::string dot_1_str Definition: openclKernels.hpp:94 static void axpy(cl::Buffer &in, const double a, cl::Buffer &out, int N) static void ILU_apply1(cl::Buffer &rowIndices, cl::Buffer &vals, cl::Buffer &cols, cl::Buffer &rows, cl::Buffer &diagIndex, const cl::Buffer &y, cl::Buffer &x, cl::Buffer &rowsPerColor, int color, int Nb, unsigned int block_size) static void residual(cl::Buffer &vals, cl::Buffer &cols, cl::Buffer &rows, cl::Buffer &x, const cl::Buffer &rhs, cl::Buffer &out, int Nb, unsigned int block_size) static void isaiL(cl::Buffer &diagIndex, cl::Buffer &colPointers, cl::Buffer &mapping, cl::Buffer &nvc, cl::Buffer &luIdxs, cl::Buffer &xxIdxs, cl::Buffer &dxIdxs, cl::Buffer &LUvals, cl::Buffer &invLvals, unsigned int Nb) static const std::string axpy_str Definition: openclKernels.hpp:91 static const std::string stdwell_apply_str Definition: openclKernels.hpp:113 static const std::string spmv_noreset_str Definition: openclKernels.hpp:103 static const std::string custom_str Definition: openclKernels.hpp:96 static void prolongate_vector(const cl::Buffer &in, cl::Buffer &out, const cl::Buffer &cols, int N) static const std::string ILU_decomp_str Definition: openclKernels.hpp:114 static const std::string add_coarse_pressure_correction_str Definition: openclKernels.hpp:98 static const std::string ILU_apply1_fm_str Definition: openclKernels.hpp:110 static void full_to_pressure_restriction(const cl::Buffer &fine_y, cl::Buffer &weights, cl::Buffer &coarse_y, int Nb) cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int, cl::Buffer &, const cl::Buffer &, cl::Buffer &, cl::LocalSpaceArg > residual_kernel_type Definition: openclKernels.hpp:41 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int > isaiL_kernel_type Definition: openclKernels.hpp:53 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int, const unsigned int, cl::Buffer &, cl::LocalSpaceArg, cl::LocalSpaceArg, cl::LocalSpaceArg > stdwell_apply_kernel_type Definition: openclKernels.hpp:49 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, const cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int, const unsigned int, cl::LocalSpaceArg > ilu_apply1_kernel_type Definition: openclKernels.hpp:43 cl::KernelFunctor< const unsigned int, const unsigned int, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, const int, cl::LocalSpaceArg > ilu_decomp_kernel_type Definition: openclKernels.hpp:51 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int, const unsigned int, cl::LocalSpaceArg > ilu_apply2_kernel_type Definition: openclKernels.hpp:45 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int, const cl::Buffer &, cl::Buffer &, const unsigned int, cl::LocalSpaceArg > spmv_blocked_kernel_type Definition: openclKernels.hpp:35 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int, const cl::Buffer &, cl::Buffer &, cl::LocalSpaceArg > spmv_kernel_type Definition: openclKernels.hpp:37 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int, cl::Buffer &, const cl::Buffer &, cl::Buffer &, const unsigned int, cl::LocalSpaceArg > residual_blocked_kernel_type Definition: openclKernels.hpp:39 cl::KernelFunctor< cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, cl::Buffer &, const unsigned int > isaiU_kernel_type Definition: openclKernels.hpp:55 Definition: BlackoilPhases.hpp:27 |