uncomplicate.clojurecl.internal.protocols

Argument

protocol

Object that can be argument in OpenCL kernels. Built-in implementations:
[[CLBuffer]], java numbers, primitive arrays and `ByteBuffer`s.

members

set-arg

(set-arg arg kernel n)
Specific implementation of setting the kernel arguments.

CLMem

protocol

A wrapper for `cl_mem` objects, that also holds a `Pointer` to the cl mem
object, context that created it, and size in bytes. It is useful in many
functions that need that (redundant in Java) data because of the C background
of OpenCL functions.

members

enq-copy*

(enq-copy* this queue dst src-offset dst-offset cb wait-events ev)
A specific implementation for copying this `cl-mem` object to another cl mem.

enq-fill*

(enq-fill* this queue pattern offset multiplier wait-events ev)
A specific implementation for filling this `cl-mem` object.

Mem

protocol

An object that represents memory that participates in OpenCL operations.
It can be on the device ([[CLMem]]), or on the host.  Built-in implementations:
cl buffer, Java primitive arrays and `ByteBuffer`s.

members

ptr

(ptr this)
JOCL `Pointer` to this object.

size

(size this)
Memory size of this cl or host object in bytes.

SVMMem

protocol

A wrapper for SVM Buffer objects, that also holds a context that created it,
`Pointer`, size in bytes, and can create a `ByteBuffer`. It is useful in many
functions that need that (redundant in Java) data because of the C background
of OpenCL functions.

members

byte-buffer

(byte-buffer this)(byte-buffer this offset size)
Creates a Java `ByteBuffer` for this SVM memory.

enq-svm-copy

(enq-svm-copy this)

Wrappable

protocol

members

wrap

(wrap this)