CUDA中cudaSuccess如何表示
时间: 2023-08-17 15:06:17 浏览: 39
在CUDA中,cudaSuccess是一个枚举类型的常量,它的值为0,表示CUDA API的调用成功完成。当CUDA API调用失败时,会返回一个非零的错误代码。因此,可以使用如下语句来检查CUDA API调用是否成功完成:
```
cudaError_t status = some_cuda_api_call();
if(status != cudaSuccess){
// 处理错误情况
}
```
相关问题
cudaSuccess在哪里定义的
cudaSuccess是CUDA API中定义的一个枚举类型,表示CUDA函数执行成功。在CUDA的头文件cudaError.h中定义了这个枚举类型。具体的定义如下:
```
typedef enum cudaError_enum {
cudaSuccess = 0,
cudaErrorInvalidValue = 1,
cudaErrorMemoryAllocation = 2,
cudaErrorInitializationError = 3,
cudaErrorCudartUnloading = 4,
cudaErrorProfilerDisabled = 5,
cudaErrorProfilerNotInitialized = 6,
cudaErrorProfilerAlreadyStarted = 7,
cudaErrorProfilerAlreadyStopped = 8,
cudaErrorInvalidConfiguration = 9,
cudaErrorInvalidPitchValue = 12,
cudaErrorInvalidSymbol = 13,
cudaErrorInvalidDevicePointer = 17,
cudaErrorInvalidMemcpyDirection = 21,
cudaErrorInsufficientDriver = 35,
cudaErrorMissingConfiguration = 52,
cudaErrorPriorLaunchFailure = 53,
cudaErrorInvalidDeviceFunction = 98,
cudaErrorNoDevice = 100,
cudaErrorInvalidDevice = 101,
cudaErrorInvalidImage = 200,
cudaErrorInvalidContext = 201,
cudaErrorContextAlreadyCurrent = 202,
cudaErrorMapFailed = 205,
cudaErrorUnmapFailed = 206,
cudaErrorArrayIsMapped = 207,
cudaErrorAlreadyMapped = 208,
cudaErrorNoBinaryForGpu = 209,
cudaErrorAlreadyAcquired = 210,
cudaErrorNotMapped = 211,
cudaErrorNotMappedAsArray = 212,
cudaErrorNotMappedAsPointer = 213,
cudaErrorECCUncorrectable = 214,
cudaErrorUnsupportedLimit = 215,
cudaErrorContextAlreadyInUse = 216,
cudaErrorPeerAccessUnsupported = 217,
cudaErrorInvalidPtx = 218,
cudaErrorInvalidGraphicsContext = 219,
cudaErrorNvlinkUncorrectable = 220,
cudaErrorInvalidSource = 300,
cudaErrorFileNotFound = 301,
cudaErrorSharedObjectSymbolNotFound = 302,
cudaErrorSharedObjectInitFailed = 303,
cudaErrorOperatingSystem = 304,
cudaErrorInvalidResourceHandle = 400,
cudaErrorIllegalState = 401,
cudaErrorSymbolNotFound = 500,
cudaErrorNotReady = 600,
cudaErrorIllegalAddress = 700,
cudaErrorLaunchOutOfResources = 701,
cudaErrorLaunchTimeout = 702,
cudaErrorLaunchIncompatibleTexturing = 703,
cudaErrorPeerAccessAlreadyEnabled = 704,
cudaErrorPeerAccessNotEnabled = 705,
cudaErrorPrimaryContextActive = 708,
cudaErrorContextIsDestroyed = 709,
cudaErrorAssert = 710,
cudaErrorTooManyPeers = 711,
cudaErrorHostMemoryAlreadyRegistered = 712,
cudaErrorHostMemoryNotRegistered = 713,
cudaErrorHardwareStackError = 714,
cudaErrorIllegalInstruction = 715,
cudaErrorMisalignedAddress = 716,
cudaErrorInvalidAddressSpace = 717,
cudaErrorInvalidPc = 718,
cudaErrorIllegalAddressSpace = 719,
cudaErrorInvalidSourceSize = 720,
cudaErrorInvalidMemcpyHandle = 721,
cudaErrorInvalidKernelImage = 722,
cudaErrorDeviceUninitialized = 723,
cudaErrorMapBufferObjectFailed = 724,
cudaErrorUnmapBufferObjectFailed = 725,
cudaErrorArrayDoesNotExist = 726,
cudaErrorDeviceAlreadyInUse = 727,
cudaErrorProfilerDisabledForDevice = 728,
cudaErrorProfilerNotInitializedForDevice = 729,
cudaErrorProfilerAlreadyStartedForDevice = 730,
cudaErrorProfilerAlreadyStoppedForDevice = 731,
cudaErrorAssertUnfiled = 732,
cudaErrorAssertFileNotFound = 733,
cudaErrorAssertLineNotFound = 734,
cudaErrorAssertOffsetOutOfBounds = 735,
cudaErrorAssertStrideOutOfBounds = 736,
cudaErrorAssertOutOfMemory = 737,
cudaErrorAssertPreambleNotFound = 738,
cudaErrorAssertParamMismatch = 739,
cudaErrorTextureNotBound = 740,
cudaErrorTextureFetchFailed = 741,
cudaErrorTextureNotMapped = 742,
cudaErrorTextureNotInLinearMemory = 743,
cudaErrorTextureReadModeInvalid = 744,
cudaErrorInvalidSurface = 2000,
cudaErrorSurfaceAlreadyMapped = 2001,
cudaErrorSurfaceNotMapped = 2002,
cudaErrorSurfaceCudaMallocReturned = 2003,
cudaErrorSurfaceInvalidValue = 2004,
cudaErrorDuplicateVariableName = 2010,
cudaErrorDuplicateTextureName = 2011,
cudaErrorDuplicateSurfaceName = 2012,
cudaErrorDevicesUnavailable = 2013,
cudaErrorInvalidKernelArgument = 2014,
cudaErrorInvalidTexture = 2015,
cudaErrorInvalidSurface = 2016,
cudaErrorDuplicateLayerName = 2017,
cudaErrorIncompatibleDriverContext = 2018,
cudaErrorMissingSampleLocation = 2019,
cudaErrorInvalidFilterSetting = 2020,
cudaErrorInvalidNormSetting = 2021,
cudaErrorMixedDeviceExecution = 2022,
cudaErrorCudartStaticInitializationFailure = 2023,
cudaErrorUnknown = 9999
} cudaError_t;
```
cudaError cudastatus
cudaError是一个枚举类型,用于表示CUDA函数调用的执行状态。其中,cudaError_t是一个错误码,用于表示函数执行期间的错误。如果函数执行成功,则返回cudaSuccess,否则返回相应的错误码。你可以使用cudaGetErrorString函数将错误码翻译成详细信息。
与内核相关的函数是cudaMemcpy,它用于在主机和设备之间进行数据交换。该函数可以在不同的传输方向上执行不同的操作,包括从主机到主机、从主机到设备、从设备到主机和从设备到设备。具体的操作是通过cudaMemcpyKind参数确定的。
请问你需要了解具体哪些错误码和数据传输方向的相关信息呢?