8 #ifndef K_FIRESYNC_CUDA_UTILS_H
9 #define K_FIRESYNC_CUDA_UTILS_H
14 #include <kFireSync/Cuda/kCudaUtils.x.h>
53 return xkCudaUtils_AllocValue(stream, allocator, pointer, sync);
92 return xkCudaUtils_CloneValue(stream, destAlloc, dest, source, sync);
108 return kAlloc_FreeRef(allocator, pointer);
286 kAllocTrait traits = kAlloc_Traits(kArrayProvider_ValueAlloc(array));
288 return kAllocTrait_IsCudaDevice(traits) || kAllocTrait_IsCudaPinned(traits) || (kAllocTrait_IsCudaManaged(traits) && (!kAllocTrait_IsSerial(traits) || isExclusive));
kStatus kCudaUtils_Copy(kCudaStream stream, void *dest, const void *src, kSize size, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Copies data from one memory address to another.
Represents the synchronization mode for a Cuda operation.
kBool kCudaUtils_IsArrayDeviceAccessible(kArrayProvider array, kBool isExclusive=kTRUE)
Reports whether an array's buffer can potentially be accessed by a Cuda device.
Definition: kCudaUtils.h:284
kStatus kCudaUtils_CloneObject(kCudaStream stream, kObject *object, kObject source, kAlloc objectAllocator, kAlloc valueAllocator, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Constructs a new object by copying an existing object, including any aggregated child elements...
Represents the overall state of the Cuda processing environment.
#define kCUDA_SYNC_DEFAULT
Use default synchronization mode of the associated stream.
Definition: kCudaDef.h:40
Represents a Cuda stream object.
kStatus kCudaUtils_AttachToStream(kCudaStream stream, void *pointer, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Attaches serial managed memory to a stream.
Definition: kCudaUtils.h:145
kStatus kCudaUtils_AllocValue(kCudaStream stream, kAlloc allocator, T **pointer, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Allocates storage for a value-type with the specified allocator.
Definition: kCudaUtils.h:51
kStatus kCudaUtils_AssignArray(kCudaStream stream, kArrayProvider destination, kArrayProvider source, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Assigns an array-based data type.
kStatus kCudaStream_DetachMemory(kCudaStream stream, kPointer mem, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Detaches serial managed memory from a stream.
kStatus kCudaUtils_ConstructArrayFromTemplate(kCudaStream stream, kArrayProvider *outputArray, kArrayProvider templateArray, kAlloc objectAlloc=kNULL, kAlloc valueAlloc=kNULL, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Constructs an array object, using a template object to determine properties.
Declares the kCudaAlloc class.
kStatus kCudaUtils_MemSet(kCudaStream stream, void *dest, kByte fill, kSize size, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Sets a block of memory to the given byte value.
kStatus kCudaUtils_Allocate(kCudaStream stream, kAlloc alloc, kSize size, void *mem, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Allocates a block of memory and attaches it to the specified stream.
kStatus kCudaUtils_FreeValueRef(kAlloc allocator, T **pointer)
Frees a value buffer and resets the buffer pointer to null.
Definition: kCudaUtils.h:106
kStatus kCudaUtils_CloneValue(kCudaStream stream, kAlloc destAlloc, T **dest, const T *source, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Moves an item from its existing location to a new buffer created with the specified allocator...
Definition: kCudaUtils.h:90
kStatus kCudaUtils_PrepareDeviceArray(kCudaStream stream, kArrayProvider *outputArray, kArrayProvider inputArray, kBool copyData=kTRUE, kAlloc objectAlloc=kNULL, kAlloc valueAlloc=kNULL, kBool inputExclusive=kTRUE, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Ensures the specified input array is device-accessible by either cloning or sharing it...
kStatus kCudaUtils_AttachArrayToStream(kCudaStream stream, kArrayProvider array, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Attaches an array's internal buffer to a stream.
Definition: kCudaUtils.h:216
kStatus kCudaUtils_AssignValue(kCudaStream stream, T *dest, const T *source, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Copies an item from its existing location to a new location.
Definition: kCudaUtils.h:69
kCudaEnvironmentStatus kCudaUtils_EnvironmentStatus()
Reports the overall status of the Cuda processing environment.
kStatus kCudaUtils_DetachFromStream(kCudaStream stream, void *pointer, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Detaches serial managed memory from a stream.
Definition: kCudaUtils.h:164
kStatus kCudaUtils_DetachArrayFromStream(kCudaStream stream, kArrayProvider array, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Detaches an array's internal buffer from a stream.
Definition: kCudaUtils.h:234
Central Cuda-related definitions.
kStatus kCudaStream_AttachMemory(kCudaStream stream, kPointer mem, kCudaSync sync=kCUDA_SYNC_DEFAULT)
Attaches serial managed memory to a stream.