Class Program

Class Documentation

class legion::core::compute::Program

A Mid-Level Wrapper around a cl_program, creates command-queues and Kernels for you automatically.

Public Functions

Program(cl_context, cl_device_id, filesystem::basic_resource)

Sadly it seems at though the current nVidia driver does not support clCreateProgramWithIL

Program(const Program &other) = default
Program(Program &&other) noexcept = default
Program &operator=(const Program &other) = default
Program &operator=(Program &&other) noexcept = default
Kernel kernelContext(const std::string &name)

Creates a wrapped Kernel.


A Kernel Object

  • name: The name of the kernel you want to load/get

cl_kernel prewarm(const std::string &name)

Makes sure that a kernel is loaded, otherwise the kernel will be lazy initialized on first request.


A raw cl_kernel object

  • name: The name of the Kernel you want to load (function-name)

inline cl_command_queue make_cq() const

Creates a Command Queue.

Public Static Functions

static void from_resource(Program *value, const filesystem::basic_resource &resource)