Portability | non-portable (GHC extensions) |
---|---|
Stability | experimental |
Maintainer | Martin Dybdal <dybber@dybber.dk> |
OpenCL bindings for command-queues. Command Queues are used to schedule operations (such as memory operations and kernel invocations) on a given device. Multiple command queues can be used with a single device if no synchronization between individual tasks is desired. See section 5.1 in the OpenCL specification
- createCommandQueue :: Context -> DeviceID -> [CommandQueueProperties] -> IO CommandQueue
- queueContext :: CommandQueue -> IO Context
- queueDevice :: CommandQueue -> IO DeviceID
- queueProperties :: CommandQueue -> IO [CommandQueueProperties]
- flush :: CommandQueue -> IO ()
Documentation
:: Context | The |
-> DeviceID | The |
-> [CommandQueueProperties] | Can be used to specify out-of-order execution and enable profiling |
-> IO CommandQueue |
Create a new CommandQueue
for scheduling operations on the given device.
queueContext :: CommandQueue -> IO Context
The Context
this CommandQueue
is associated with
queueDevice :: CommandQueue -> IO DeviceID
The DeviceID
of the device this CommandQueue
is associated with
queueProperties :: CommandQueue -> IO [CommandQueueProperties]
The list of CommandQueueProperties
specified when the
CommandQueue
was created.
flush :: CommandQueue -> IO ()
Issues all previously queued OpenCL commands in the
CommandQueue
to the device associated with the
CommandQueue
. flush
only guarantees that all queued commands to
the CommandQueue
get issued to the appropriate device. There is
no guarantee that they will be complete after flush
returns. (See
also Foreign.OpenCL.Bindings.Synchronization.finish
)