cuda- FFI binding to the CUDA interface for programming NVIDIA GPUs

Copyright[2009..2014] Trevor L. McDonell
Safe HaskellNone




Event management for C-for-CUDA runtime environment


Event Management

data Event Source

Events are markers that can be inserted into the CUDA execution stream and later queried.


data EventFlag Source

Event creation flags


Enum EventFlag

Possible option flags for waiting for events

Eq EventFlag 
Show EventFlag 

data WaitFlag Source


create :: [EventFlag] -> IO Event Source

Create a new event

destroy :: Event -> IO () Source

Destroy an event

elapsedTime :: Event -> Event -> IO Float Source

Determine the elapsed time (in milliseconds) between two events

query :: Event -> IO Bool Source

Determines if a event has actually been recorded

record :: Event -> Maybe Stream -> IO () Source

Record an event once all operations in the current context (or optionally specified stream) have completed. This operation is asynchronous.

wait :: Event -> Maybe Stream -> [WaitFlag] -> IO () Source

Makes all future work submitted to the (optional) stream wait until the given event reports completion before beginning execution. Synchronisation is performed on the device, including when the event and stream are from different device contexts. Requires cuda-3.2.

block :: Event -> IO () Source

Wait until the event has been recorded