cl-queue-kernel ( kernel args sizes dependent-events -- event ) (original) (raw)

cl-queue-kernel ( kernel args sizes dependent-events -- event )
OpenCL

Prev: ( program kernel-name -- kernel )
Next: cl-wait ( event/events -- )

Vocabulary
opencl

Inputs

kernel a cl-kernel
args sequence of cl-buffer or byte-array
sizes sequence of integers
dependent-events sequence of events

Outputs

event a cl-event

Word description
Queue a kernel for execution with the given arguments. The sizes argument specifies input array sizes for each dimension. Dependent events can be passed to order the operation relative to other operations.

Definition

USING: accessors alien.c-types alien.data destructors kernel
opencl.ffi opencl.private sequences
specialized-arrays.instances.alien.c-types.size_t
specialized-arrays.instances.alien.c-types.void* ;

IN: opencl

:: cl-queue-kernel
( kernel args sizes dependent-events -- event )
args
[| arg idx | kernel idx arg bind-kernel-arg ] each-index
(current-cl-queue) handle>> kernel handle>> sizes
[ length f ] [ [ ] size_t-array{ } map-as f ] bi
dependent-events
[ length ]
[ [ f ] [ [ handle>> ] void*-array{ } map-as ] if-empty ] bi
f void* [ clEnqueueNDRangeKernel cl-success ] keep
void* deref cl-event new-disposable swap >>handle ;