30 #ifndef HIP_INCLUDE_HIP_HIP_RUNTIME_API_H 31 #define HIP_INCLUDE_HIP_HIP_RUNTIME_API_H 35 #include <hip/hip_common.h> 39 HIP_ERROR_INVALID_VALUE,
40 HIP_ERROR_NOT_INITIALIZED,
41 HIP_ERROR_LAUNCH_OUT_OF_RESOURCES
46 unsigned hasGlobalInt32Atomics : 1;
47 unsigned hasGlobalFloatAtomicExch : 1;
48 unsigned hasSharedInt32Atomics : 1;
49 unsigned hasSharedFloatAtomicExch : 1;
50 unsigned hasFloatAtomicAdd : 1;
53 unsigned hasGlobalInt64Atomics : 1;
54 unsigned hasSharedInt64Atomics : 1;
57 unsigned hasDoubles : 1;
60 unsigned hasWarpVote : 1;
61 unsigned hasWarpBallot : 1;
62 unsigned hasWarpShuffle : 1;
63 unsigned hasFunnelShift : 1;
66 unsigned hasThreadFenceSystem : 1;
67 unsigned hasSyncThreadsExt : 1;
70 unsigned hasSurfaceFuncs : 1;
71 unsigned has3dGrid : 1;
72 unsigned hasDynamicParallelism : 1;
138 typedef enum hipMemoryType {
152 enum hipMemoryType memoryType;
157 unsigned allocationFlags;
171 #if __cplusplus >= 201703L 172 #define __HIP_NODISCARD [[nodiscard]] 174 #define __HIP_NODISCARD 185 typedef enum __HIP_NODISCARD hipError_t {
187 hipErrorInvalidValue = 1,
188 hipErrorOutOfMemory = 2,
191 hipErrorMemoryAllocation = 2,
192 hipErrorNotInitialized = 3,
194 hipErrorInitializationError = 3,
195 hipErrorDeinitialized = 4,
196 hipErrorProfilerDisabled = 5,
197 hipErrorProfilerNotInitialized = 6,
198 hipErrorProfilerAlreadyStarted = 7,
199 hipErrorProfilerAlreadyStopped = 8,
200 hipErrorInvalidConfiguration = 9,
201 hipErrorInvalidSymbol = 13,
202 hipErrorInvalidDevicePointer = 17,
203 hipErrorInvalidMemcpyDirection = 21,
204 hipErrorInsufficientDriver = 35,
205 hipErrorMissingConfiguration = 52,
206 hipErrorPriorLaunchFailure = 53,
207 hipErrorInvalidDeviceFunction = 98,
208 hipErrorNoDevice = 100,
209 hipErrorInvalidDevice = 101,
210 hipErrorInvalidImage = 200,
211 hipErrorInvalidContext = 201,
212 hipErrorContextAlreadyCurrent = 202,
213 hipErrorMapFailed = 205,
215 hipErrorMapBufferObjectFailed = 205,
216 hipErrorUnmapFailed = 206,
217 hipErrorArrayIsMapped = 207,
218 hipErrorAlreadyMapped = 208,
219 hipErrorNoBinaryForGpu = 209,
220 hipErrorAlreadyAcquired = 210,
221 hipErrorNotMapped = 211,
222 hipErrorNotMappedAsArray = 212,
223 hipErrorNotMappedAsPointer = 213,
224 hipErrorECCNotCorrectable = 214,
225 hipErrorUnsupportedLimit = 215,
226 hipErrorContextAlreadyInUse = 216,
227 hipErrorPeerAccessUnsupported = 217,
228 hipErrorInvalidKernelFile = 218,
229 hipErrorInvalidGraphicsContext = 219,
230 hipErrorInvalidSource = 300,
231 hipErrorFileNotFound = 301,
232 hipErrorSharedObjectSymbolNotFound = 302,
233 hipErrorSharedObjectInitFailed = 303,
234 hipErrorOperatingSystem = 304,
235 hipErrorInvalidHandle = 400,
237 hipErrorInvalidResourceHandle = 400,
238 hipErrorNotFound = 500,
239 hipErrorNotReady = 600,
240 hipErrorIllegalAddress = 700,
244 hipErrorLaunchOutOfResources = 701,
245 hipErrorLaunchTimeOut = 702,
246 hipErrorPeerAccessAlreadyEnabled =
248 hipErrorPeerAccessNotEnabled =
250 hipErrorSetOnActiveProcess = 708,
251 hipErrorAssert = 710,
252 hipErrorHostMemoryAlreadyRegistered =
254 hipErrorHostMemoryNotRegistered =
256 hipErrorLaunchFailure =
258 hipErrorCooperativeLaunchTooLarge =
260 hipErrorNotSupported = 801,
263 hipErrorUnknown = 999,
265 hipErrorRuntimeMemory = 1052,
266 hipErrorRuntimeOther = 1053,
272 #undef __HIP_NODISCARD 336 enum hipComputeMode {
337 hipComputeModeDefault = 0,
338 hipComputeModeExclusive = 1,
339 hipComputeModeProhibited = 2,
340 hipComputeModeExclusiveProcess = 3
347 #if defined(__HIP_PLATFORM_HCC__) && !defined(__HIP_PLATFORM_NVCC__) 349 #elif defined(__HIP_PLATFORM_NVCC__) && !defined(__HIP_PLATFORM_HCC__) 350 #include "hip/nvcc_detail/hip_runtime_api.h" 352 #error("Must define exactly one of __HIP_PLATFORM_HCC__ or __HIP_PLATFORM_NVCC__"); 367 #if defined(__cplusplus) && !defined(__HIP_DISABLE_CPP_FUNCTIONS__) 369 static inline hipError_t
hipMalloc(T** devPtr,
size_t size) {
383 unsigned int flags = hipMemAttachGlobal) {
size_t totalConstMem
Size of shared memory region (in bytes).
Definition: hip_runtime_api.h:95
Definition: hip_runtime_api.h:310
Maximum x-dimension of a block.
Definition: hip_runtime_api.h:281
Maximum x-dimension of a grid.
Definition: hip_runtime_api.h:284
Maximum pitch in bytes allowed by memory copies.
Definition: hip_runtime_api.h:327
Global memory bus width in bits.
Definition: hip_runtime_api.h:297
int minor
Definition: hip_runtime_api.h:99
unsigned int * hdpRegFlushCntl
Addres of HDP_REG_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:124
size_t texturePitchAlignment
Pitch alignment requirement for texture references bound to pitched memory.
Definition: hip_runtime_api.h:127
int canMapHostMemory
Check whether HIP can map host memory.
Definition: hip_runtime_api.h:115
Definition: hip_runtime_api.h:291
int regsPerBlock
Registers per block.
Definition: hip_runtime_api.h:87
int maxTexture3D[3]
Maximum dimensions (width, height, depth) of 3D images, in image elements.
Definition: hip_runtime_api.h:122
Definition: hip_runtime_api.h:300
Run time limit for kernels executed on the device.
Definition: hip_runtime_api.h:330
#define hipHostMallocDefault
Flags that can be used with hipHostMalloc.
Definition: hip_runtime_api.h:168
Maximum dimension width of 3D images in image elements.
Definition: hip_runtime_api.h:320
iGPU
Definition: hip_runtime_api.h:313
int isMultiGpuBoard
1 if device is on a multi-GPU board, 0 if not.
Definition: hip_runtime_api.h:114
Peak clock frequency in kilohertz.
Definition: hip_runtime_api.h:295
int maxTexture1D
Maximum number of elements in 1D images.
Definition: hip_runtime_api.h:120
Definition: hip_runtime_api.h:151
int clockRate
Max clock frequency of the multiProcessors in khz.
Definition: hip_runtime_api.h:92
Maximum z-dimension of a grid.
Definition: hip_runtime_api.h:286
Minor compute capability version number.
Definition: hip_runtime_api.h:305
Definition: hip_runtime_api.h:287
int pciBusID
PCI Bus ID.
Definition: hip_runtime_api.h:111
Maximum y-dimension of a grid.
Definition: hip_runtime_api.h:285
Multiple GPU devices.
Definition: hip_runtime_api.h:312
int tccDriver
1:If device is Tesla device using TCC driver, else 0
Definition: hip_runtime_api.h:130
int maxThreadsPerBlock
Max work items per work group or workgroup max size.
Definition: hip_runtime_api.h:89
Maximum y-dimension of a block.
Definition: hip_runtime_api.h:282
hipError_t hipHostMalloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory.
Definition: hip_memory.cpp:737
size_t sharedMemPerBlock
Size of shared memory region (in bytes).
Definition: hip_runtime_api.h:86
Support cooperative launch on multiple devices.
Definition: hip_runtime_api.h:315
int maxThreadsPerMultiProcessor
Maximum resident threads per multi-processor.
Definition: hip_runtime_api.h:104
size_t memPitch
Maximum pitch in bytes allowed by memory copies.
Definition: hip_runtime_api.h:125
int l2CacheSize
L2 cache size.
Definition: hip_runtime_api.h:103
hipDeviceAttribute_t
Definition: hip_runtime_api.h:279
size_t textureAlignment
Alignment requirement for textures.
Definition: hip_runtime_api.h:126
Major compute capability version number.
Definition: hip_runtime_api.h:304
Maximum number of threads per block.
Definition: hip_runtime_api.h:280
int gcnArch
AMD GCN Arch Value. Eg: 803, 701.
Definition: hip_runtime_api.h:116
Maximum dimensions depth of 3D images in image elements.
Definition: hip_runtime_api.h:322
int kernelExecTimeoutEnabled
Run time limit for kernels executed on the device.
Definition: hip_runtime_api.h:128
hipDeviceArch_t arch
Architectural feature flags. New for HIP.
Definition: hip_runtime_api.h:108
int maxGridSize[3]
Max grid dimensions (XYZ).
Definition: hip_runtime_api.h:91
int computeMode
Compute mode.
Definition: hip_runtime_api.h:105
Maximum z-dimension of a block.
Definition: hip_runtime_api.h:283
PCI Bus ID.
Definition: hip_runtime_api.h:308
unsigned int * hdpMemFlushCntl
Addres of HDP_MEM_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:123
Maximum dimension height of 2D images in image elements.
Definition: hip_runtime_api.h:319
Warp size in threads.
Definition: hip_runtime_api.h:290
int major
Definition: hip_runtime_api.h:96
Maximum dimensions height of 3D images in image elements.
Definition: hip_runtime_api.h:321
Peak memory clock frequency in kilohertz.
Definition: hip_runtime_api.h:296
Definition: hip_runtime_api.h:302
Address of the HDP_REG_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:325
hipError_t hipMallocManaged(void **devPtr, size_t size, unsigned int flags __dparm(0))
Allocates memory that will be automatically managed by the Unified Memory system. ...
int clockInstructionRate
Definition: hip_runtime_api.h:106
int cooperativeMultiDeviceLaunch
HIP device supports cooperative launch on multiple devices.
Definition: hip_runtime_api.h:119
Constant memory size in bytes.
Definition: hip_runtime_api.h:289
Pitch alignment requirement for 2D texture references bound to pitched memory;.
Definition: hip_runtime_api.h:329
int warpSize
Warp size.
Definition: hip_runtime_api.h:88
int concurrentKernels
Device can possibly execute multiple kernels concurrently.
Definition: hip_runtime_api.h:109
Alignment requirement for textures.
Definition: hip_runtime_api.h:328
size_t totalGlobalMem
Size of global memory region (in bytes).
Definition: hip_runtime_api.h:85
hipError_t hipMalloc(void **ptr, size_t size)
Allocate memory on the default accelerator.
Definition: hip_memory.cpp:672
Compute mode that device is currently in.
Definition: hip_runtime_api.h:299
PCI Device ID.
Definition: hip_runtime_api.h:309
Device can map host memory into device address space.
Definition: hip_runtime_api.h:331
int maxThreadsDim[3]
Max number of threads in each dimension (XYZ) of a block.
Definition: hip_runtime_api.h:90
Number of multiprocessors on the device.
Definition: hip_runtime_api.h:298
int integrated
APU vs dGPU.
Definition: hip_runtime_api.h:117
int memoryBusWidth
Global memory bus width in bits.
Definition: hip_runtime_api.h:94
Definition: hip_runtime_api.h:83
size_t maxSharedMemoryPerMultiProcessor
Maximum Shared Memory Per Multiprocessor.
Definition: hip_runtime_api.h:113
int cooperativeLaunch
HIP device supports cooperative launch.
Definition: hip_runtime_api.h:118
Support cooperative launch.
Definition: hip_runtime_api.h:314
Maximum number of elements in 1D images.
Definition: hip_runtime_api.h:317
int pciDeviceID
PCI Device ID.
Definition: hip_runtime_api.h:112
int pciDomainID
PCI Domain ID.
Definition: hip_runtime_api.h:110
int ECCEnabled
Device has ECC support enabled.
Definition: hip_runtime_api.h:129
char name[256]
Device name.
Definition: hip_runtime_api.h:84
Definition: hip_runtime_api.h:44
Contains C function APIs for HIP runtime. This file does not use any HCC builtin or special language ...
int memoryClockRate
Max global memory clock frequency in khz.
Definition: hip_runtime_api.h:93
Maximum dimension width of 2D images in image elements.
Definition: hip_runtime_api.h:318
Address of the HDP_MEM_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:324
int maxTexture2D[2]
Maximum dimensions (width, height) of 2D images, in image elements.
Definition: hip_runtime_api.h:121
Device has ECC support enabled.
Definition: hip_runtime_api.h:332
Definition: hip_runtime_api.h:306
int multiProcessorCount
Number of multi-processors (compute units).
Definition: hip_runtime_api.h:102