fast::Kernel class

Represents an OpenCL Kernel.

Constructors, destructors, conversion operators

Kernel(cl::Kernel clKernel, OpenCLDevice::pointer device) explicit

Public functions

auto getHandle() const -> cl::Kernel
template<class T>
void setArg(int index, const std::vector<T>& data)
template<class T>
void setArg(const std::string& name, const std::vector<T>& data)
template<class T>
void setArgData(int index, const std::vector<T>& data)
template<class T>
void setArgData(const std::string& name, const std::vector<T>& data)
template<class T>
void setArg(int index, T data)
template<class T>
void setArg(const std::string& name, T data)
template<class T>
void setArg(int index, std::size_t size, T data)
template<class T>
void setArg(const std::string& name, std::size_t size, T data)
template<typename T, typename... Args>
void setArgs(T&& firstArg, Args... args)
template<typename T>
void setArgs(T&& lastArg)
void setImageArg(int index, std::shared_ptr<fast::Image> data, accessType access, bool forceOpenCLImage = false)
void setImageArg(std::string name, std::shared_ptr<fast::Image> data, accessType access, bool forceOpenCLImage = false)
void setTensorArg(int index, std::shared_ptr<fast::Tensor> tensor, accessType access)
void setTensorArg(std::string name, std::shared_ptr<fast::Tensor> tensor, accessType access)
auto getNumberOfArgs() const -> int
Get number of arguments of the given.
auto getArg(int index) const -> KernelArgument
Get kernel argument by index.
auto getArg(std::string name) const -> KernelArgument
Get kernel arguemnt by name.
auto allArgumentsGotValue() const -> bool
Check whether all arguments have gotten a value by setArg.
auto getArgumentsWithoutValue() const -> std::vector<std::string>
Get list of argument names which haven't received a value yet.
void clearBuffers()
Clear list of buffers assigned to arguments in this kernel.
template<>
void setArg(int index, std::unique_ptr<OpenCLImageAccess> access)
template<>
void setArg(const std::string& name, std::unique_ptr<OpenCLImageAccess> access)
template<>
void setArg(int index, OpenCLBuffer buffer)
template<>
void setArg(const std::string& name, OpenCLBuffer buffer)
template<>
void setArg(int index, Image::pointer image)
template<>
void setArg(const std::string& name, std::shared_ptr<Image> image)
template<>
void setArg(int index, std::unique_ptr<OpenCLBufferAccess> access)
template<>
void setArg(const std::string& name, std::unique_ptr<OpenCLBufferAccess> access)
template<>
void setArg(const std::string& name, Tensor::pointer tensor)
template<>
auto setArg(int index, std::shared_ptr<Image> image) -> FAST_EXPORT void
template<>
auto setArg(int index, std::shared_ptr<Tensor> tensor) -> FAST_EXPORT void
template<>
auto setArg(const std::string& name, std::shared_ptr<Tensor> tensor) -> FAST_EXPORT void

Function documentation

KernelArgument fast::Kernel::getArg(int index) const

Get kernel argument by index.

Parameters
index

KernelArgument fast::Kernel::getArg(std::string name) const

Get kernel arguemnt by name.

Parameters
name

template<>
void fast::Kernel::setArg(int index, std::unique_ptr<OpenCLImageAccess> access)

template<>
void fast::Kernel::setArg(const std::string& name, std::unique_ptr<OpenCLImageAccess> access)

template<>
void fast::Kernel::setArg(int index, OpenCLBuffer buffer)

template<>
void fast::Kernel::setArg(const std::string& name, OpenCLBuffer buffer)

template<>
void fast::Kernel::setArg(int index, Image::pointer image)

template<>
void fast::Kernel::setArg(const std::string& name, std::shared_ptr<Image> image)

template<>
void fast::Kernel::setArg(int index, std::unique_ptr<OpenCLBufferAccess> access)

template<>
void fast::Kernel::setArg(const std::string& name, std::unique_ptr<OpenCLBufferAccess> access)

template<>
void fast::Kernel::setArg(const std::string& name, Tensor::pointer tensor)