CUDA Runtime Interfaces
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int), | public, | parameter | :: | cudaEventDisableTiming | = | 2 |
enumerator | :: | cudaSuccess | = | 0 | |
enumerator | :: | cudaErrorInvalidValue | = | 1 | |
enumerator | :: | cudaErrorMemoryAllocation | = | 2 | |
enumerator | :: | cudaErrorInitializationError | = | 3 | |
enumerator | :: | cudaErrorCudartUnloading | = | 4 | |
enumerator | :: | cudaErrorProfilerDisabled | = | 5 | |
enumerator | :: | cudaErrorProfilerNotInitialized | = | 6 | |
enumerator | :: | cudaErrorProfilerAlreadyStarted | = | 7 | |
enumerator | :: | cudaErrorProfilerAlreadyStopped | = | 8 | |
enumerator | :: | cudaErrorInvalidConfiguration | = | 9 | |
enumerator | :: | cudaErrorInvalidPitchValue | = | 12 | |
enumerator | :: | cudaErrorInvalidSymbol | = | 13 | |
enumerator | :: | cudaErrorInvalidHostPointer | = | 16 | |
enumerator | :: | cudaErrorInvalidDevicePointer | = | 17 | |
enumerator | :: | cudaErrorInvalidTexture | = | 18 | |
enumerator | :: | cudaErrorInvalidTextureBinding | = | 19 | |
enumerator | :: | cudaErrorInvalidChannelDescriptor | = | 20 | |
enumerator | :: | cudaErrorInvalidMemcpyDirection | = | 21 | |
enumerator | :: | cudaErrorAddressOfConstant | = | 22 | |
enumerator | :: | cudaErrorTextureFetchFailed | = | 23 | |
enumerator | :: | cudaErrorTextureNotBound | = | 24 | |
enumerator | :: | cudaErrorSynchronizationError | = | 25 | |
enumerator | :: | cudaErrorInvalidFilterSetting | = | 26 | |
enumerator | :: | cudaErrorInvalidNormSetting | = | 27 | |
enumerator | :: | cudaErrorMixedDeviceExecution | = | 28 | |
enumerator | :: | cudaErrorNotYetImplemented | = | 31 | |
enumerator | :: | cudaErrorMemoryValueTooLarge | = | 32 | |
enumerator | :: | cudaErrorInsufficientDriver | = | 35 | |
enumerator | :: | cudaErrorInvalidSurface | = | 37 | |
enumerator | :: | cudaErrorDuplicateVariableName | = | 43 | |
enumerator | :: | cudaErrorDuplicateTextureName | = | 44 | |
enumerator | :: | cudaErrorDuplicateSurfaceName | = | 45 | |
enumerator | :: | cudaErrorDevicesUnavailable | = | 46 | |
enumerator | :: | cudaErrorIncompatibleDriverContext | = | 49 | |
enumerator | :: | cudaErrorMissingConfiguration | = | 52 | |
enumerator | :: | cudaErrorPriorLaunchFailure | = | 53 | |
enumerator | :: | cudaErrorLaunchMaxDepthExceeded | = | 65 | |
enumerator | :: | cudaErrorLaunchFileScopedTex | = | 66 | |
enumerator | :: | cudaErrorLaunchFileScopedSurf | = | 67 | |
enumerator | :: | cudaErrorSyncDepthExceeded | = | 68 | |
enumerator | :: | cudaErrorLaunchPendingCountExceeded | = | 69 | |
enumerator | :: | cudaErrorInvalidDeviceFunction | = | 98 | |
enumerator | :: | cudaErrorNoDevice | = | 100 | |
enumerator | :: | cudaErrorInvalidDevice | = | 101 | |
enumerator | :: | cudaErrorStartupFailure | = | 127 | |
enumerator | :: | cudaErrorInvalidKernelImage | = | 200 | |
enumerator | :: | cudaErrorDeviceUninitialized | = | 201 | |
enumerator | :: | cudaErrorMapBufferObjectFailed | = | 205 | |
enumerator | :: | cudaErrorUnmapBufferObjectFailed | = | 206 | |
enumerator | :: | cudaErrorArrayIsMapped | = | 207 | |
enumerator | :: | cudaErrorAlreadyMapped | = | 208 | |
enumerator | :: | cudaErrorNoKernelImageForDevice | = | 209 | |
enumerator | :: | cudaErrorAlreadyAcquired | = | 210 | |
enumerator | :: | cudaErrorNotMapped | = | 211 | |
enumerator | :: | cudaErrorNotMappedAsArray | = | 212 | |
enumerator | :: | cudaErrorNotMappedAsPointer | = | 213 | |
enumerator | :: | cudaErrorECCUncorrectable | = | 214 | |
enumerator | :: | cudaErrorUnsupportedLimit | = | 215 | |
enumerator | :: | cudaErrorDeviceAlreadyInUse | = | 216 | |
enumerator | :: | cudaErrorPeerAccessUnsupported | = | 217 | |
enumerator | :: | cudaErrorInvalidPtx | = | 218 | |
enumerator | :: | cudaErrorInvalidGraphicsContext | = | 219 | |
enumerator | :: | cudaErrorNvlinkUncorrectable | = | 220 | |
enumerator | :: | cudaErrorJitCompilerNotFound | = | 221 | |
enumerator | :: | cudaErrorInvalidSource | = | 300 | |
enumerator | :: | cudaErrorFileNotFound | = | 301 | |
enumerator | :: | cudaErrorSharedObjectSymbolNotFound | = | 302 | |
enumerator | :: | cudaErrorSharedObjectInitFailed | = | 303 | |
enumerator | :: | cudaErrorOperatingSystem | = | 304 | |
enumerator | :: | cudaErrorInvalidResourceHandle | = | 400 | |
enumerator | :: | cudaErrorIllegalState | = | 401 | |
enumerator | :: | cudaErrorSymbolNotFound | = | 500 | |
enumerator | :: | cudaErrorNotReady | = | 600 | |
enumerator | :: | cudaErrorIllegalAddress | = | 700 | |
enumerator | :: | cudaErrorLaunchOutOfResources | = | 701 | |
enumerator | :: | cudaErrorLaunchTimeout | = | 702 | |
enumerator | :: | cudaErrorLaunchIncompatibleTexturing | = | 703 | |
enumerator | :: | cudaErrorPeerAccessAlreadyEnabled | = | 704 | |
enumerator | :: | cudaErrorPeerAccessNotEnabled | = | 705 | |
enumerator | :: | cudaErrorSetOnActiveProcess | = | 708 | |
enumerator | :: | cudaErrorContextIsDestroyed | = | 709 | |
enumerator | :: | cudaErrorAssert | = | 710 | |
enumerator | :: | cudaErrorTooManyPeers | = | 711 | |
enumerator | :: | cudaErrorHostMemoryAlreadyRegistered | = | 712 | |
enumerator | :: | cudaErrorHostMemoryNotRegistered | = | 713 | |
enumerator | :: | cudaErrorHardwareStackError | = | 714 | |
enumerator | :: | cudaErrorIllegalInstruction | = | 715 | |
enumerator | :: | cudaErrorMisalignedAddress | = | 716 | |
enumerator | :: | cudaErrorInvalidAddressSpace | = | 717 | |
enumerator | :: | cudaErrorInvalidPc | = | 718 | |
enumerator | :: | cudaErrorLaunchFailure | = | 719 | |
enumerator | :: | cudaErrorCooperativeLaunchTooLarge | = | 720 | |
enumerator | :: | cudaErrorNotPermitted | = | 800 | |
enumerator | :: | cudaErrorNotSupported | = | 801 | |
enumerator | :: | cudaErrorSystemNotReady | = | 802 | |
enumerator | :: | cudaErrorSystemDriverMismatch | = | 803 | |
enumerator | :: | cudaErrorCompatNotSupportedOnDevice | = | 804 | |
enumerator | :: | cudaErrorStreamCaptureUnsupported | = | 900 | |
enumerator | :: | cudaErrorStreamCaptureInvalidated | = | 901 | |
enumerator | :: | cudaErrorStreamCaptureMerge | = | 902 | |
enumerator | :: | cudaErrorStreamCaptureUnmatched | = | 903 | |
enumerator | :: | cudaErrorStreamCaptureUnjoined | = | 904 | |
enumerator | :: | cudaErrorStreamCaptureIsolation | = | 905 | |
enumerator | :: | cudaErrorStreamCaptureImplicit | = | 906 | |
enumerator | :: | cudaErrorCapturedEvent | = | 907 | |
enumerator | :: | cudaErrorStreamCaptureWrongThread | = | 908 | |
enumerator | :: | cudaErrorTimeout | = | 909 | |
enumerator | :: | cudaErrorGraphExecUpdateFailure | = | 910 | |
enumerator | :: | cudaErrorUnknown | = | 999 | |
enumerator | :: | cudaErrorApiFailureBase | = | 10000 |
enumerator | :: | cudaMemcpyHostToHost | = | 0 | |
enumerator | :: | cudaMemcpyHostToDevice | = | 1 | |
enumerator | :: | cudaMemcpyDeviceToHost | = | 2 | |
enumerator | :: | cudaMemcpyDeviceToDevice | = | 3 | |
enumerator | :: | cudaMemcpyDefault | = | 4 |
Queries an asynchronous stream for completion status.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_stream_t), | value | :: | stream |
Stream identifier |
Returns cudaSuccess
if all operations in stream have completed,
or cudaErrorNotReady
if not.
Creates an asynchronous stream.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_stream_t) | :: | stream |
Pointer to the created stream |
Returns cudaSuccess
if the stream was created successfully,
or an error code if there was an issue.
Destroys an asynchronous stream.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_stream_t), | value | :: | stream |
Stream identifier |
Returns cudaSuccess
if the stream was destroyed successfully,
or an error code if there was an issue.
Waits for stream tasks to complete.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_stream_t), | value | :: | stream |
Stream identifier |
Returns cudaSuccess
if the stream tasks completed successfully,
or an error code if there was an issue.
Allocates memory on the device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr) | :: | ptr |
Pointer to allocated device memory |
|||
integer(kind=c_size_t), | value | :: | count |
Requested allocation size in bytes |
Returns cudaSuccess
if memory was allocated successfully,
or cudaErrorMemoryAllocation
if the memory could not be allocated.
Frees memory on the device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | ptr |
Pointer to memory to free |
Returns cudaSuccess
if memory was freed successfully,
or an error code if there was an issue.
Initializes or sets device memory to a value.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | ptr |
Pointer to device memory |
||
integer(kind=c_int), | value | :: | val |
Value to set |
||
integer(kind=c_size_t), | value | :: | count |
Size in bytes to set |
Returns cudaSuccess
if the memory was set successfully,
or an error code if there was an issue.
Creates an event with the specified flags.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(cudaEvent) | :: | event |
Event identifier |
|||
integer(kind=c_int), | value | :: | flags |
Flags for event creation |
Returns cudaSuccess
if the event was created successfully,
or an error code if there was an issue.
Records an event in a stream.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(cudaEvent), | value | :: | event |
Event identifier |
||
type(dtfft_stream_t), | value | :: | stream |
Stream identifier |
Returns cudaSuccess
if the event was recorded successfully,
or an error code if there was an issue.
Makes a stream wait on an event.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_stream_t), | value | :: | stream |
Stream identifier |
||
type(cudaEvent), | value | :: | event |
Event identifier |
||
integer(kind=c_int), | value | :: | flags |
Flags for the wait operation |
Returns cudaSuccess
if the stream is waiting successfully,
or an error code if there was an issue.
Destroys an event.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(cudaEvent), | value | :: | event |
Event identifier |
Returns cudaSuccess
if the event was destroyed successfully,
or an error code if there was an issue.
Creates an event.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(cudaEvent) | :: | event |
Event identifier |
Returns cudaSuccess
if the event was created successfully,
or an error code if there was an issue.
Waits for an event to complete.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(cudaEvent), | value | :: | event |
Event identifier |
Returns cudaSuccess
if the event completed successfully,
or an error code if there was an issue.
Computes the elapsed time between two events.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=c_float) | :: | time |
Elapsed time in milliseconds |
|||
type(cudaEvent), | value | :: | start |
Starting event |
||
type(cudaEvent), | value | :: | end |
Ending event |
Returns cudaSuccess
if the elapsed time was computed successfully,
or an error code if there was an issue.
Copies data asynchronously between host and device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | dst |
Destination pointer |
||
type(c_ptr), | value | :: | src |
Source pointer |
||
integer(kind=c_size_t), | value | :: | count |
Size in bytes to copy |
||
integer(kind=c_int), | value | :: | kdir |
Direction of copy (host-to-device, device-to-host, etc.) |
||
type(dtfft_stream_t), | value | :: | stream |
Stream identifier |
Returns cudaSuccess
if the copy was initiated successfully,
or an error code if there was an issue.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=c_float) | :: | dst |
Destination array (32-bit float) |
|||
real(kind=c_float) | :: | src |
Source array (32-bit float) |
|||
integer(kind=c_size_t), | value | :: | count |
Number of elements to copy |
||
integer(kind=c_int), | value | :: | kdir |
Direction of copy |
||
type(dtfft_stream_t), | value | :: | stream |
Stream identifier |
Returns cudaSuccess
if the copy was initiated successfully,
or an error code if there was an issue.
Copies data synchronously between host and device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | dst |
Destination pointer |
||
type(c_ptr), | value | :: | src |
Source pointer |
||
integer(kind=c_size_t), | value | :: | count |
Size in bytes to copy |
||
integer(kind=c_int), | value | :: | kdir |
Direction of copy |
Returns cudaSuccess
if the copy was completed successfully,
or an error code if there was an issue.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=c_double) | :: | dst(*) |
Destination array (64-bit float) |
|||
real(kind=c_double) | :: | src(*) |
Source array (64-bit float) |
|||
integer(kind=c_size_t), | value | :: | count |
Number of bytes to copy |
||
integer(kind=c_int), | value | :: | kdir |
Direction of copy |
Returns cudaSuccess
if the copy was completed successfully,
or an error code if there was an issue.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=c_float) | :: | dst(*) |
Destination array (32-bit float) |
|||
real(kind=c_float) | :: | src(*) |
Source array (32-bit float) |
|||
integer(kind=c_size_t), | value | :: | count |
Number of bytes to copy |
||
integer(kind=c_int), | value | :: | kdir |
Direction of copy |
Returns cudaSuccess
if the copy was completed successfully,
or an error code if there was an issue.
Returns the current device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int) | :: | num |
Device number |
Returns cudaSuccess
if the device was retrieved successfully,
or an error code if there was an issue.
Returns the number of available devices.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int) | :: | num |
Number of devices |
Returns cudaSuccess
if the device count was retrieved successfully,
or an error code if there was an issue.
Sets the current device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int), | value | :: | num |
Device number |
Returns cudaSuccess
if the device was set successfully,
or an error code if there was an issue.
Returns the CUDA architecture for a given device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int), | value | :: | device |
Device number |
||
integer(kind=c_int) | :: | major |
Major compute capability |
|||
integer(kind=c_int) | :: | minor |
Minor compute capability |
Returns the amount of free and total memory on the device.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_size_t) | :: | free |
Free memory in bytes |
|||
integer(kind=c_size_t) | :: | total |
Total memory in bytes |
Returns cudaSuccess
if the memory information was retrieved successfully,
or an error code if there was an issue.
Synchronizes the device, blocking until all preceding tasks in all streams have completed.
Returns cudaSuccess
if the device was set successfully,
or an error code if there was an issue.
Returns the string representation of an error code.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int), | value | :: | errcode |
Error code |
Pointer to the error string
Dimension specification type
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int), | public | :: | x | ||||
integer(kind=c_int), | public | :: | y | ||||
integer(kind=c_int), | public | :: | z |
CUDA event types
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(c_ptr), | public | :: | event |
Handle |
Helper function that returns a string describing the given nvrtcResult code If the error code is not recognized, “unrecognized error code” is returned.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int), | intent(in) | :: | errcode |
CUDA Runtime Compilation API result code. |
Result string