HIP: Heterogenous-computing Interface for Portability
hip_runtime_api.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2015 - 2022 Advanced Micro Devices, Inc. All rights reserved.
3 
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
10 
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13 
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 THE SOFTWARE.
21 */
22 
30 #ifndef HIP_INCLUDE_HIP_HIP_RUNTIME_API_H
31 #define HIP_INCLUDE_HIP_HIP_RUNTIME_API_H
32 
33 
34 #include <string.h> // for getDeviceProp
35 #include <hip/hip_version.h>
36 #include <hip/hip_common.h>
37 
38 enum {
39  HIP_SUCCESS = 0,
40  HIP_ERROR_INVALID_VALUE,
41  HIP_ERROR_NOT_INITIALIZED,
42  HIP_ERROR_LAUNCH_OUT_OF_RESOURCES
43 };
44 
45 typedef struct {
46  // 32-bit Atomics
47  unsigned hasGlobalInt32Atomics : 1;
48  unsigned hasGlobalFloatAtomicExch : 1;
49  unsigned hasSharedInt32Atomics : 1;
50  unsigned hasSharedFloatAtomicExch : 1;
51  unsigned hasFloatAtomicAdd : 1;
52 
53  // 64-bit Atomics
54  unsigned hasGlobalInt64Atomics : 1;
55  unsigned hasSharedInt64Atomics : 1;
56 
57  // Doubles
58  unsigned hasDoubles : 1;
59 
60  // Warp cross-lane operations
61  unsigned hasWarpVote : 1;
62  unsigned hasWarpBallot : 1;
63  unsigned hasWarpShuffle : 1;
64  unsigned hasFunnelShift : 1;
65 
66  // Sync
67  unsigned hasThreadFenceSystem : 1;
68  unsigned hasSyncThreadsExt : 1;
69 
70  // Misc
71  unsigned hasSurfaceFuncs : 1;
72  unsigned has3dGrid : 1;
73  unsigned hasDynamicParallelism : 1;
75 
76 typedef struct hipUUID_t {
77  char bytes[16];
78 } hipUUID;
79 
80 //---
81 // Common headers for both NVCC and HCC paths:
82 
87 typedef struct hipDeviceProp_t {
88  char name[256];
89  size_t totalGlobalMem;
92  int warpSize;
94  int maxThreadsDim[3];
95  int maxGridSize[3];
96  int clockRate;
99  size_t totalConstMem;
100  int major;
103  int minor;
115  int pciBusID;
120  int gcnArch;
121  char gcnArchName[256];
127  int maxTexture2D[2];
128  int maxTexture3D[3];
129  unsigned int* hdpMemFlushCntl;
130  unsigned int* hdpRegFlushCntl;
131  size_t memPitch;
136  int tccDriver;
154 
155 
159 typedef enum hipMemoryType {
168 
172 typedef struct hipPointerAttribute_t {
173  enum hipMemoryType memoryType;
174  int device;
175  void* devicePointer;
176  void* hostPointer;
177  int isManaged;
178  unsigned allocationFlags; /* flags specified when memory was allocated*/
179  /* peers? */
181 
182 
183 // hack to get these to show up in Doxygen:
190 // Ignoring error-code return values from hip APIs is discouraged. On C++17,
191 // we can make that yield a warning
192 #if __cplusplus >= 201703L
193 #define __HIP_NODISCARD [[nodiscard]]
194 #else
195 #define __HIP_NODISCARD
196 #endif
197 
198 /*
199  * @brief hipError_t
200  * @enum
201  * @ingroup Enumerations
202  */
203 // Developer note - when updating these, update the hipErrorName and hipErrorString functions in
204 // NVCC and HCC paths Also update the hipCUDAErrorTohipError function in NVCC path.
205 
206 typedef enum __HIP_NODISCARD hipError_t {
210  hipErrorOutOfMemory = 2,
211  // Deprecated
213  hipErrorNotInitialized = 3,
214  // Deprecated
215  hipErrorInitializationError = 3,
216  hipErrorDeinitialized = 4,
217  hipErrorProfilerDisabled = 5,
218  hipErrorProfilerNotInitialized = 6,
219  hipErrorProfilerAlreadyStarted = 7,
220  hipErrorProfilerAlreadyStopped = 8,
221  hipErrorInvalidConfiguration = 9,
222  hipErrorInvalidPitchValue = 12,
223  hipErrorInvalidSymbol = 13,
226  hipErrorInsufficientDriver = 35,
227  hipErrorMissingConfiguration = 52,
228  hipErrorPriorLaunchFailure = 53,
229  hipErrorInvalidDeviceFunction = 98,
232  hipErrorInvalidImage = 200,
234  hipErrorContextAlreadyCurrent = 202,
235  hipErrorMapFailed = 205,
236  // Deprecated
238  hipErrorUnmapFailed = 206,
239  hipErrorArrayIsMapped = 207,
240  hipErrorAlreadyMapped = 208,
241  hipErrorNoBinaryForGpu = 209,
242  hipErrorAlreadyAcquired = 210,
243  hipErrorNotMapped = 211,
244  hipErrorNotMappedAsArray = 212,
245  hipErrorNotMappedAsPointer = 213,
246  hipErrorECCNotCorrectable = 214,
247  hipErrorUnsupportedLimit = 215,
248  hipErrorContextAlreadyInUse = 216,
249  hipErrorPeerAccessUnsupported = 217,
251  hipErrorInvalidGraphicsContext = 219,
252  hipErrorInvalidSource = 300,
253  hipErrorFileNotFound = 301,
254  hipErrorSharedObjectSymbolNotFound = 302,
255  hipErrorSharedObjectInitFailed = 303,
256  hipErrorOperatingSystem = 304,
257  hipErrorInvalidHandle = 400,
258  // Deprecated
261  hipErrorNotFound = 500,
266  hipErrorIllegalAddress = 700,
268  hipErrorLaunchTimeOut = 702,
270  704,
272  705,
273  hipErrorSetOnActiveProcess = 708,
274  hipErrorContextIsDestroyed = 709,
277  712,
279  713,
281  719,
283  720,
313  hipErrorUnknown = 999, //< Unknown error.
314  // HSA Runtime Error Codes start here.
319  hipErrorTbd
320 } hipError_t;
321 
322 #undef __HIP_NODISCARD
323 
324 /*
325  * @brief hipDeviceAttribute_t
326  * @enum
327  * @ingroup Enumerations
328  */
329 typedef enum hipDeviceAttribute_t {
330  hipDeviceAttributeCudaCompatibleBegin = 0,
331 
332  hipDeviceAttributeEccEnabled = hipDeviceAttributeCudaCompatibleBegin,
428 
429  hipDeviceAttributeCudaCompatibleEnd = 9999,
430  hipDeviceAttributeAmdSpecificBegin = 10000,
431 
432  hipDeviceAttributeClockInstructionRate = hipDeviceAttributeAmdSpecificBegin,
456 
457  hipDeviceAttributeAmdSpecificEnd = 19999,
458  hipDeviceAttributeVendorSpecificBegin = 20000,
459  // Extended attributes for vendors
461 
462 enum hipComputeMode {
463  hipComputeModeDefault = 0,
464  hipComputeModeExclusive = 1,
465  hipComputeModeProhibited = 2,
466  hipComputeModeExclusiveProcess = 3
467 };
468 
473 #if (defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__)) && !(defined(__HIP_PLATFORM_NVCC__) || defined(__HIP_PLATFORM_NVIDIA__))
474 
475 #include <stdint.h>
476 #include <stddef.h>
477 #ifndef GENERIC_GRID_LAUNCH
478 #define GENERIC_GRID_LAUNCH 1
479 #endif
480 #include <hip/amd_detail/host_defines.h>
481 #include <hip/driver_types.h>
482 #include <hip/texture_types.h>
483 #include <hip/surface_types.h>
484 #if defined(_MSC_VER)
485 #define DEPRECATED(msg) __declspec(deprecated(msg))
486 #else // !defined(_MSC_VER)
487 #define DEPRECATED(msg) __attribute__ ((deprecated(msg)))
488 #endif // !defined(_MSC_VER)
489 #define DEPRECATED_MSG "This API is marked as deprecated and may not be supported in future releases. For more details please refer https://github.com/ROCm-Developer-Tools/HIP/blob/master/docs/markdown/hip_deprecated_api_list.md"
490 #define HIP_LAUNCH_PARAM_BUFFER_POINTER ((void*)0x01)
491 #define HIP_LAUNCH_PARAM_BUFFER_SIZE ((void*)0x02)
492 #define HIP_LAUNCH_PARAM_END ((void*)0x03)
493 #ifdef __cplusplus
494  #define __dparm(x) \
495  = x
496 #else
497  #define __dparm(x)
498 #endif
499 #ifdef __GNUC__
500 #pragma GCC visibility push (default)
501 #endif
502 #ifdef __cplusplus
503 namespace hip_impl {
504 hipError_t hip_init();
505 } // namespace hip_impl
506 #endif
507 // Structure definitions:
508 #ifdef __cplusplus
509 extern "C" {
510 #endif
511 //---
512 // API-visible structures
513 typedef struct ihipCtx_t* hipCtx_t;
514 // Note many APIs also use integer deviceIds as an alternative to the device pointer:
515 typedef int hipDevice_t;
516 typedef enum hipDeviceP2PAttr {
517  hipDevP2PAttrPerformanceRank = 0,
518  hipDevP2PAttrAccessSupported,
519  hipDevP2PAttrNativeAtomicSupported,
520  hipDevP2PAttrHipArrayAccessSupported
521 } hipDeviceP2PAttr;
522 typedef struct ihipStream_t* hipStream_t;
523 #define hipIpcMemLazyEnablePeerAccess 0
524 #define HIP_IPC_HANDLE_SIZE 64
525 typedef struct hipIpcMemHandle_st {
526  char reserved[HIP_IPC_HANDLE_SIZE];
528 typedef struct hipIpcEventHandle_st {
529  char reserved[HIP_IPC_HANDLE_SIZE];
531 typedef struct ihipModule_t* hipModule_t;
532 typedef struct ihipModuleSymbol_t* hipFunction_t;
536 typedef struct ihipMemPoolHandle_t* hipMemPool_t;
537 
538 typedef struct hipFuncAttributes {
539  int binaryVersion;
540  int cacheModeCA;
541  size_t constSizeBytes;
542  size_t localSizeBytes;
543  int maxDynamicSharedSizeBytes;
544  int maxThreadsPerBlock;
545  int numRegs;
546  int preferredShmemCarveout;
547  int ptxVersion;
548  size_t sharedSizeBytes;
550 typedef struct ihipEvent_t* hipEvent_t;
551 enum hipLimit_t {
552  hipLimitStackSize = 0x0, // limit device stack size
553  hipLimitPrintfFifoSize = 0x01, // limit printf fifo size
554  hipLimitMallocHeapSize = 0x02, // limit heap size
555  hipLimitRange // supported limit range
556 };
561 //Flags that can be used with hipStreamCreateWithFlags.
563 #define hipStreamDefault 0x00
564 
566 #define hipStreamNonBlocking 0x01
567 
568 //Flags that can be used with hipEventCreateWithFlags.
570 #define hipEventDefault 0x0
571 
573 #define hipEventBlockingSync 0x1
574 
576 #define hipEventDisableTiming 0x2
577 
579 #define hipEventInterprocess 0x4
580 
583 #define hipEventReleaseToDevice 0x40000000
584 
587 #define hipEventReleaseToSystem 0x80000000
588 
589 //Flags that can be used with hipHostMalloc.
591 #define hipHostMallocDefault 0x0
592 
594 #define hipHostMallocPortable 0x1
595 
598 #define hipHostMallocMapped 0x2
599 
603 #define hipHostMallocWriteCombined 0x4
604 
606 #define hipHostMallocNumaUser 0x20000000
607 
609 #define hipHostMallocCoherent 0x40000000
610 
612 #define hipHostMallocNonCoherent 0x80000000
613 
615 #define hipMemAttachGlobal 0x01
616 
618 #define hipMemAttachHost 0x02
619 
621 #define hipMemAttachSingle 0x04
622 
623 #define hipDeviceMallocDefault 0x0
624 
626 #define hipDeviceMallocFinegrained 0x1
627 
629 #define hipMallocSignalMemory 0x2
630 
631 //Flags that can be used with hipHostRegister.
633 #define hipHostRegisterDefault 0x0
634 
636 #define hipHostRegisterPortable 0x1
637 
640 #define hipHostRegisterMapped 0x2
641 
643 #define hipHostRegisterIoMemory 0x4
644 
646 #define hipExtHostRegisterCoarseGrained 0x8
647 
649 #define hipDeviceScheduleAuto 0x0
650 
653 #define hipDeviceScheduleSpin 0x1
654 
657 #define hipDeviceScheduleYield 0x2
658 #define hipDeviceScheduleBlockingSync 0x4
659 #define hipDeviceScheduleMask 0x7
660 #define hipDeviceMapHost 0x8
661 #define hipDeviceLmemResizeToMax 0x10
663 #define hipArrayDefault 0x00
664 #define hipArrayLayered 0x01
665 #define hipArraySurfaceLoadStore 0x02
666 #define hipArrayCubemap 0x04
667 #define hipArrayTextureGather 0x08
668 #define hipOccupancyDefault 0x00
669 #define hipCooperativeLaunchMultiDeviceNoPreSync 0x01
670 #define hipCooperativeLaunchMultiDeviceNoPostSync 0x02
671 #define hipCpuDeviceId ((int)-1)
672 #define hipInvalidDeviceId ((int)-2)
673 //Flags that can be used with hipExtLaunch Set of APIs.
675 #define hipExtAnyOrderLaunch 0x01
676 // Flags to be used with hipStreamWaitValue32 and hipStreamWaitValue64.
677 #define hipStreamWaitValueGte 0x0
678 #define hipStreamWaitValueEq 0x1
679 #define hipStreamWaitValueAnd 0x2
680 #define hipStreamWaitValueNor 0x3
681 // Stream per thread
683 #define hipStreamPerThread ((hipStream_t)2)
684 /*
685  * @brief HIP Memory Advise values
686  * @enum
687  * @ingroup Enumerations
688  */
689 typedef enum hipMemoryAdvise {
707 /*
708  * @brief HIP Coherency Mode
709  * @enum
710  * @ingroup Enumerations
711  */
721 /*
722  * @brief HIP range attributes
723  * @enum
724  * @ingroup Enumerations
725  */
726 typedef enum hipMemRangeAttribute {
737 
743 typedef enum hipMemPoolAttr
744 {
804  typedef enum hipMemLocationType {
805  hipMemLocationTypeInvalid = 0,
813 typedef struct hipMemLocation {
815  int id;
822 typedef enum hipMemAccessFlags {
830 typedef struct hipMemAccessDesc {
839 typedef enum hipMemAllocationType {
840  hipMemAllocationTypeInvalid = 0x0,
845  hipMemAllocationTypeMax = 0x7FFFFFFF
861 typedef struct hipMemPoolProps {
869  unsigned char reserved[64];
874 typedef struct hipMemPoolPtrExportData {
875  unsigned char reserved[64];
877 
878 /*
879  * @brief hipJitOption
880  * @enum
881  * @ingroup Enumerations
882  */
883 typedef enum hipJitOption {
884  hipJitOptionMaxRegisters = 0,
885  hipJitOptionThreadsPerBlock,
886  hipJitOptionWallTime,
887  hipJitOptionInfoLogBuffer,
888  hipJitOptionInfoLogBufferSizeBytes,
889  hipJitOptionErrorLogBuffer,
890  hipJitOptionErrorLogBufferSizeBytes,
891  hipJitOptionOptimizationLevel,
892  hipJitOptionTargetFromContext,
893  hipJitOptionTarget,
894  hipJitOptionFallbackStrategy,
895  hipJitOptionGenerateDebugInfo,
896  hipJitOptionLogVerbose,
897  hipJitOptionGenerateLineInfo,
898  hipJitOptionCacheMode,
899  hipJitOptionSm3xOpt,
900  hipJitOptionFastCompile,
901  hipJitOptionNumOptions
902 } hipJitOption;
906 typedef enum hipFuncAttribute {
907  hipFuncAttributeMaxDynamicSharedMemorySize = 8,
908  hipFuncAttributePreferredSharedMemoryCarveout = 9,
909  hipFuncAttributeMax
914 typedef enum hipFuncCache_t {
923 typedef enum hipSharedMemConfig {
934 typedef struct dim3 {
935  uint32_t x;
936  uint32_t y;
937  uint32_t z;
938 #ifdef __cplusplus
939  constexpr __host__ __device__ dim3(uint32_t _x = 1, uint32_t _y = 1, uint32_t _z = 1) : x(_x), y(_y), z(_z){};
940 #endif
942 typedef struct hipLaunchParams_t {
943  void* func;
946  void **args;
947  size_t sharedMem;
948  hipStream_t stream;
950 typedef enum hipExternalMemoryHandleType_enum {
951  hipExternalMemoryHandleTypeOpaqueFd = 1,
952  hipExternalMemoryHandleTypeOpaqueWin32 = 2,
953  hipExternalMemoryHandleTypeOpaqueWin32Kmt = 3,
954  hipExternalMemoryHandleTypeD3D12Heap = 4,
955  hipExternalMemoryHandleTypeD3D12Resource = 5,
956  hipExternalMemoryHandleTypeD3D11Resource = 6,
957  hipExternalMemoryHandleTypeD3D11ResourceKmt = 7,
958 } hipExternalMemoryHandleType;
960  hipExternalMemoryHandleType type;
961  union {
962  int fd;
963  struct {
964  void *handle;
965  const void *name;
966  } win32;
967  } handle;
968  unsigned long long size;
969  unsigned int flags;
972  unsigned long long offset;
973  unsigned long long size;
974  unsigned int flags;
976 typedef void* hipExternalMemory_t;
977 typedef enum hipExternalSemaphoreHandleType_enum {
978  hipExternalSemaphoreHandleTypeOpaqueFd = 1,
979  hipExternalSemaphoreHandleTypeOpaqueWin32 = 2,
980  hipExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3,
981  hipExternalSemaphoreHandleTypeD3D12Fence = 4
982 } hipExternalSemaphoreHandleType;
984  hipExternalSemaphoreHandleType type;
985  union {
986  int fd;
987  struct {
988  void* handle;
989  const void* name;
990  } win32;
991  } handle;
992  unsigned int flags;
994 typedef void* hipExternalSemaphore_t;
996  struct {
997  struct {
998  unsigned long long value;
999  } fence;
1000  struct {
1001  unsigned long long key;
1002  } keyedMutex;
1003  unsigned int reserved[12];
1004  } params;
1005  unsigned int flags;
1006  unsigned int reserved[16];
1012  struct {
1013  struct {
1014  unsigned long long value;
1015  } fence;
1016  struct {
1017  unsigned long long key;
1018  unsigned int timeoutMs;
1019  } keyedMutex;
1020  unsigned int reserved[10];
1021  } params;
1022  unsigned int flags;
1023  unsigned int reserved[16];
1025 
1026 #if __HIP_HAS_GET_PCH
1032  void __hipGetPCH(const char** pch, unsigned int*size);
1033 #endif
1034 
1035 /*
1036  * @brief HIP Devices used by current OpenGL Context.
1037  * @enum
1038  * @ingroup Enumerations
1039  */
1040 typedef enum hipGLDeviceList {
1047 
1048 /*
1049  * @brief HIP Access falgs for Interop resources.
1050  * @enum
1051  * @ingroup Enumerations
1052  */
1054  hipGraphicsRegisterFlagsNone = 0,
1057  2,
1060  8
1062 
1063 typedef struct _hipGraphicsResource hipGraphicsResource;
1064 
1065 typedef hipGraphicsResource* hipGraphicsResource_t;
1066 
1070 typedef struct ihipGraph* hipGraph_t;
1074 typedef struct hipGraphNode* hipGraphNode_t;
1078 typedef struct hipGraphExec* hipGraphExec_t;
1079 
1083 typedef struct hipUserObject* hipUserObject_t;
1084 
1085 
1091 typedef enum hipGraphNodeType {
1104  hipGraphNodeTypeCount
1106 
1107 typedef void (*hipHostFn_t)(void* userData);
1108 typedef struct hipHostNodeParams {
1109  hipHostFn_t fn;
1110  void* userData;
1112 typedef struct hipKernelNodeParams {
1113  dim3 blockDim;
1114  void** extra;
1115  void* func;
1116  dim3 gridDim;
1117  void** kernelParams;
1118  unsigned int sharedMemBytes;
1120 typedef struct hipMemsetParams {
1121  void* dst;
1122  unsigned int elementSize;
1123  size_t height;
1124  size_t pitch;
1125  unsigned int value;
1126  size_t width;
1127 } hipMemsetParams;
1128 
1134 typedef enum hipKernelNodeAttrID {
1135  hipKernelNodeAttributeAccessPolicyWindow = 1,
1136  hipKernelNodeAttributeCooperative = 2,
1137 } hipKernelNodeAttrID;
1138 typedef enum hipAccessProperty {
1139  hipAccessPropertyNormal = 0,
1140  hipAccessPropertyStreaming = 1,
1141  hipAccessPropertyPersisting = 2,
1142 } hipAccessProperty;
1143 typedef struct hipAccessPolicyWindow {
1144  void* base_ptr;
1145  hipAccessProperty hitProp;
1146  float hitRatio;
1147  hipAccessProperty missProp;
1148  size_t num_bytes;
1150 typedef union hipKernelNodeAttrValue {
1151  hipAccessPolicyWindow accessPolicyWindow;
1152  int cooperative;
1154 
1162  hipGraphExecUpdateError = 0x1,
1167  0x4,
1169  0x5,
1171  0x6,
1172  hipGraphExecUpdateErrorUnsupportedFunctionChange = 0x7
1174 
1175 typedef enum hipStreamCaptureMode {
1176  hipStreamCaptureModeGlobal = 0,
1177  hipStreamCaptureModeThreadLocal,
1178  hipStreamCaptureModeRelaxed
1179 } hipStreamCaptureMode;
1186 
1191 
1198 typedef enum hipUserObjectFlags {
1201 
1205 
1208  1,
1210 
1211 // Doxygen end group GlobalDefs
1213 //-------------------------------------------------------------------------------------------------
1214 // The handle allows the async commands to use the stream even if the parent hipStream_t goes
1215 // out-of-scope.
1216 // typedef class ihipStream_t * hipStream_t;
1217 /*
1218  * Opaque structure allows the true event (pointed at by the handle) to remain "live" even if the
1219  * surrounding hipEvent_t goes out-of-scope. This is handy for cases where the hipEvent_t goes
1220  * out-of-scope but the true event is being written by some async queue or device */
1221 // typedef struct hipEvent_t {
1222 // struct ihipEvent_t *_handle;
1223 //} hipEvent_t;
1242 // TODO-ctx - more description on error codes.
1243 hipError_t hipInit(unsigned int flags);
1259 hipError_t hipDriverGetVersion(int* driverVersion);
1275 hipError_t hipRuntimeGetVersion(int* runtimeVersion);
1283 hipError_t hipDeviceGet(hipDevice_t* device, int ordinal);
1284 
1293 hipError_t hipDeviceComputeCapability(int* major, int* minor, hipDevice_t device);
1302 hipError_t hipDeviceGetName(char* name, int len, hipDevice_t device);
1314 hipError_t hipDeviceGetUuid(hipUUID* uuid, hipDevice_t device);
1324 hipError_t hipDeviceGetP2PAttribute(int* value, hipDeviceP2PAttr attr,
1325  int srcDevice, int dstDevice);
1334 hipError_t hipDeviceGetPCIBusId(char* pciBusId, int len, int device);
1342 hipError_t hipDeviceGetByPCIBusId(int* device, const char* pciBusId);
1350 hipError_t hipDeviceTotalMem(size_t* bytes, hipDevice_t device);
1351 // doxygen end initialization
1370 hipError_t hipDeviceSynchronize(void);
1382 hipError_t hipDeviceReset(void);
1414 hipError_t hipSetDevice(int deviceId);
1428 hipError_t hipGetDevice(int* deviceId);
1441 hipError_t hipGetDeviceCount(int* count);
1451 hipError_t hipDeviceGetAttribute(int* pi, hipDeviceAttribute_t attr, int deviceId);
1466 hipError_t hipDeviceGetDefaultMemPool(hipMemPool_t* mem_pool, int device);
1488 hipError_t hipDeviceSetMemPool(int device, hipMemPool_t mem_pool);
1508 hipError_t hipDeviceGetMemPool(hipMemPool_t* mem_pool, int device);
1522 hipError_t hipGetDeviceProperties(hipDeviceProp_t* prop, int deviceId);
1533 hipError_t hipDeviceSetCacheConfig(hipFuncCache_t cacheConfig);
1544 hipError_t hipDeviceGetCacheConfig(hipFuncCache_t* cacheConfig);
1555 hipError_t hipDeviceGetLimit(size_t* pValue, enum hipLimit_t limit);
1565 hipError_t hipDeviceSetLimit ( enum hipLimit_t limit, size_t value );
1585 hipError_t hipGetDeviceFlags(unsigned int* flags);
1622 hipError_t hipSetDeviceFlags(unsigned flags);
1631 hipError_t hipChooseDevice(int* device, const hipDeviceProp_t* prop);
1644 hipError_t hipExtGetLinkTypeAndHopCount(int device1, int device2, uint32_t* linktype, uint32_t* hopcount);
1645 // TODO: implement IPC apis
1671 hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t* handle, void* devPtr);
1708 hipError_t hipIpcOpenMemHandle(void** devPtr, hipIpcMemHandle_t handle, unsigned int flags);
1727 hipError_t hipIpcCloseMemHandle(void* devPtr);
1728 
1743 hipError_t hipIpcGetEventHandle(hipIpcEventHandle_t* handle, hipEvent_t event);
1744 
1760 hipError_t hipIpcOpenEventHandle(hipEvent_t* event, hipIpcEventHandle_t handle);
1761 
1762 // end doxygen Device
1786 hipError_t hipFuncSetAttribute(const void* func, hipFuncAttribute attr, int value);
1797 hipError_t hipFuncSetCacheConfig(const void* func, hipFuncCache_t config);
1810 hipError_t hipFuncSetSharedMemConfig(const void* func, hipSharedMemConfig config);
1811 //doxygen end execution
1833 hipError_t hipGetLastError(void);
1844 hipError_t hipPeekAtLastError(void);
1853 const char* hipGetErrorName(hipError_t hip_error);
1864 const char* hipGetErrorString(hipError_t hipError);
1865 // end doxygen Error
1895 hipError_t hipStreamCreate(hipStream_t* stream);
1912 hipError_t hipStreamCreateWithFlags(hipStream_t* stream, unsigned int flags);
1930 hipError_t hipStreamCreateWithPriority(hipStream_t* stream, unsigned int flags, int priority);
1944 hipError_t hipDeviceGetStreamPriorityRange(int* leastPriority, int* greatestPriority);
1963 hipError_t hipStreamDestroy(hipStream_t stream);
1979 hipError_t hipStreamQuery(hipStream_t stream);
1999 hipError_t hipStreamSynchronize(hipStream_t stream);
2019 hipError_t hipStreamWaitEvent(hipStream_t stream, hipEvent_t event, unsigned int flags);
2033 hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int* flags);
2047 hipError_t hipStreamGetPriority(hipStream_t stream, int* priority);
2067 hipError_t hipExtStreamCreateWithCUMask(hipStream_t* stream, uint32_t cuMaskSize, const uint32_t* cuMask);
2080 hipError_t hipExtStreamGetCUMask(hipStream_t stream, uint32_t cuMaskSize, uint32_t* cuMask);
2084 typedef void (*hipStreamCallback_t)(hipStream_t stream, hipError_t status, void* userData);
2100 hipError_t hipStreamAddCallback(hipStream_t stream, hipStreamCallback_t callback, void* userData,
2101  unsigned int flags);
2102 // end doxygen Stream
2145 hipError_t hipStreamWaitValue32(hipStream_t stream, void* ptr, uint32_t value, unsigned int flags,
2146  uint32_t mask __dparm(0xFFFFFFFF));
2179 hipError_t hipStreamWaitValue64(hipStream_t stream, void* ptr, uint64_t value, unsigned int flags,
2180  uint64_t mask __dparm(0xFFFFFFFFFFFFFFFF));
2200 hipError_t hipStreamWriteValue32(hipStream_t stream, void* ptr, uint32_t value, unsigned int flags);
2220 hipError_t hipStreamWriteValue64(hipStream_t stream, void* ptr, uint64_t value, unsigned int flags);
2221 // end doxygen Stream Memory Operations
2254 hipError_t hipEventCreateWithFlags(hipEvent_t* event, unsigned flags);
2266 hipError_t hipEventCreate(hipEvent_t* event);
2294 #ifdef __cplusplus
2295 hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream = NULL);
2296 #else
2297 hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream);
2298 #endif
2315 hipError_t hipEventDestroy(hipEvent_t event);
2333 hipError_t hipEventSynchronize(hipEvent_t event);
2369 hipError_t hipEventElapsedTime(float* ms, hipEvent_t start, hipEvent_t stop);
2385 hipError_t hipEventQuery(hipEvent_t event);
2386 // end doxygen Events
2413 hipError_t hipPointerGetAttributes(hipPointerAttribute_t* attributes, const void* ptr);
2428 hipError_t hipPointerGetAttribute(void* data, hipPointer_attribute attribute,
2429  hipDeviceptr_t ptr);
2446 hipError_t hipDrvPointerGetAttributes(unsigned int numAttributes, hipPointer_attribute* attributes,
2447  void** data, hipDeviceptr_t ptr);
2458 hipError_t hipImportExternalSemaphore(hipExternalSemaphore_t* extSem_out,
2459  const hipExternalSemaphoreHandleDesc* semHandleDesc);
2472 hipError_t hipSignalExternalSemaphoresAsync(const hipExternalSemaphore_t* extSemArray,
2473  const hipExternalSemaphoreSignalParams* paramsArray,
2474  unsigned int numExtSems, hipStream_t stream);
2487 hipError_t hipWaitExternalSemaphoresAsync(const hipExternalSemaphore_t* extSemArray,
2488  const hipExternalSemaphoreWaitParams* paramsArray,
2489  unsigned int numExtSems, hipStream_t stream);
2499 hipError_t hipDestroyExternalSemaphore(hipExternalSemaphore_t extSem);
2500 
2511 hipError_t hipImportExternalMemory(hipExternalMemory_t* extMem_out, const hipExternalMemoryHandleDesc* memHandleDesc);
2523 hipError_t hipExternalMemoryGetMappedBuffer(void **devPtr, hipExternalMemory_t extMem, const hipExternalMemoryBufferDesc *bufferDesc);
2533 hipError_t hipDestroyExternalMemory(hipExternalMemory_t extMem);
2547 hipError_t hipMalloc(void** ptr, size_t size);
2562 hipError_t hipExtMallocWithFlags(void** ptr, size_t sizeBytes, unsigned int flags);
2575 DEPRECATED("use hipHostMalloc instead")
2576 hipError_t hipMallocHost(void** ptr, size_t size);
2589 DEPRECATED("use hipHostMalloc instead")
2590 hipError_t hipMemAllocHost(void** ptr, size_t size);
2604 hipError_t hipHostMalloc(void** ptr, size_t size, unsigned int flags);
2624 hipError_t hipMallocManaged(void** dev_ptr,
2625  size_t size,
2626  unsigned int flags __dparm(hipMemAttachGlobal));
2637 hipError_t hipMemPrefetchAsync(const void* dev_ptr,
2638  size_t count,
2639  int device,
2640  hipStream_t stream __dparm(0));
2651 hipError_t hipMemAdvise(const void* dev_ptr,
2652  size_t count,
2653  hipMemoryAdvise advice,
2654  int device);
2667 hipError_t hipMemRangeGetAttribute(void* data,
2668  size_t data_size,
2669  hipMemRangeAttribute attribute,
2670  const void* dev_ptr,
2671  size_t count);
2686 hipError_t hipMemRangeGetAttributes(void** data,
2687  size_t* data_sizes,
2688  hipMemRangeAttribute* attributes,
2689  size_t num_attributes,
2690  const void* dev_ptr,
2691  size_t count);
2704 hipError_t hipStreamAttachMemAsync(hipStream_t stream,
2705  void* dev_ptr,
2706  size_t length __dparm(0),
2707  unsigned int flags __dparm(hipMemAttachSingle));
2708 // end doxygen Managed Memory
2764 hipError_t hipMallocAsync(void** dev_ptr, size_t size, hipStream_t stream);
2787 hipError_t hipFreeAsync(void* dev_ptr, hipStream_t stream);
2813 hipError_t hipMemPoolTrimTo(hipMemPool_t mem_pool, size_t min_bytes_to_hold);
2850 hipError_t hipMemPoolSetAttribute(hipMemPool_t mem_pool, hipMemPoolAttr attr, void* value);
2887 hipError_t hipMemPoolGetAttribute(hipMemPool_t mem_pool, hipMemPoolAttr attr, void* value);
2903 hipError_t hipMemPoolSetAccess(hipMemPool_t mem_pool, const hipMemAccessDesc* desc_list, size_t count);
2921 hipError_t hipMemPoolGetAccess(hipMemAccessFlags* flags, hipMemPool_t mem_pool, hipMemLocation* location);
2943 hipError_t hipMemPoolCreate(hipMemPool_t* mem_pool, const hipMemPoolProps* pool_props);
2968 hipError_t hipMemPoolDestroy(hipMemPool_t mem_pool);
3000 hipError_t hipMallocFromPoolAsync(void** dev_ptr, size_t size, hipMemPool_t mem_pool, hipStream_t stream);
3026  void* shared_handle,
3027  hipMemPool_t mem_pool,
3028  hipMemAllocationHandleType handle_type,
3029  unsigned int flags);
3052  hipMemPool_t* mem_pool,
3053  void* shared_handle,
3054  hipMemAllocationHandleType handle_type,
3055  unsigned int flags);
3073 hipError_t hipMemPoolExportPointer(hipMemPoolPtrExportData* export_data, void* dev_ptr);
3101  void** dev_ptr,
3102  hipMemPool_t mem_pool,
3103  hipMemPoolPtrExportData* export_data);
3104 // Doxygen end of ordered memory allocator
3122 DEPRECATED("use hipHostMalloc instead")
3123 hipError_t hipHostAlloc(void** ptr, size_t size, unsigned int flags);
3135 hipError_t hipHostGetDevicePointer(void** devPtr, void* hstPtr, unsigned int flags);
3145 hipError_t hipHostGetFlags(unsigned int* flagsPtr, void* hostPtr);
3182 hipError_t hipHostRegister(void* hostPtr, size_t sizeBytes, unsigned int flags);
3191 hipError_t hipHostUnregister(void* hostPtr);
3210 hipError_t hipMallocPitch(void** ptr, size_t* pitch, size_t width, size_t height);
3232 hipError_t hipMemAllocPitch(hipDeviceptr_t* dptr, size_t* pitch, size_t widthInBytes, size_t height, unsigned int elementSizeBytes);
3246 hipError_t hipFree(void* ptr);
3256 DEPRECATED("use hipHostFree instead")
3257 hipError_t hipFreeHost(void* ptr);
3271 hipError_t hipHostFree(void* ptr);
3301 hipError_t hipMemcpy(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind);
3302 // TODO: Add description
3303 hipError_t hipMemcpyWithStream(void* dst, const void* src, size_t sizeBytes,
3304  hipMemcpyKind kind, hipStream_t stream);
3322 hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void* src, size_t sizeBytes);
3340 hipError_t hipMemcpyDtoH(void* dst, hipDeviceptr_t src, size_t sizeBytes);
3358 hipError_t hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes);
3376 hipError_t hipMemcpyHtoDAsync(hipDeviceptr_t dst, void* src, size_t sizeBytes, hipStream_t stream);
3394 hipError_t hipMemcpyDtoHAsync(void* dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream);
3412 hipError_t hipMemcpyDtoDAsync(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes,
3413  hipStream_t stream);
3414 
3429 hipError_t hipModuleGetGlobal(hipDeviceptr_t* dptr, size_t* bytes,
3430  hipModule_t hmod, const char* name);
3431 
3441 hipError_t hipGetSymbolAddress(void** devPtr, const void* symbol);
3442 
3452 hipError_t hipGetSymbolSize(size_t* size, const void* symbol);
3453 
3472 hipError_t hipMemcpyToSymbol(const void* symbol, const void* src,
3473  size_t sizeBytes, size_t offset __dparm(0),
3474  hipMemcpyKind kind __dparm(hipMemcpyHostToDevice));
3475 
3489 hipError_t hipMemcpyToSymbolAsync(const void* symbol, const void* src,
3490  size_t sizeBytes, size_t offset,
3491  hipMemcpyKind kind, hipStream_t stream __dparm(0));
3492 
3505 hipError_t hipMemcpyFromSymbol(void* dst, const void* symbol,
3506  size_t sizeBytes, size_t offset __dparm(0),
3507  hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost));
3508 
3522 hipError_t hipMemcpyFromSymbolAsync(void* dst, const void* symbol,
3523  size_t sizeBytes, size_t offset,
3524  hipMemcpyKind kind,
3525  hipStream_t stream __dparm(0));
3554 hipError_t hipMemcpyAsync(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind,
3555  hipStream_t stream __dparm(0));
3565 hipError_t hipMemset(void* dst, int value, size_t sizeBytes);
3575 hipError_t hipMemsetD8(hipDeviceptr_t dest, unsigned char value, size_t count);
3591 hipError_t hipMemsetD8Async(hipDeviceptr_t dest, unsigned char value, size_t count, hipStream_t stream __dparm(0));
3601 hipError_t hipMemsetD16(hipDeviceptr_t dest, unsigned short value, size_t count);
3617 hipError_t hipMemsetD16Async(hipDeviceptr_t dest, unsigned short value, size_t count, hipStream_t stream __dparm(0));
3627 hipError_t hipMemsetD32(hipDeviceptr_t dest, int value, size_t count);
3643 hipError_t hipMemsetAsync(void* dst, int value, size_t sizeBytes, hipStream_t stream __dparm(0));
3659 hipError_t hipMemsetD32Async(hipDeviceptr_t dst, int value, size_t count,
3660  hipStream_t stream __dparm(0));
3671 hipError_t hipMemset2D(void* dst, size_t pitch, int value, size_t width, size_t height);
3683 hipError_t hipMemset2DAsync(void* dst, size_t pitch, int value, size_t width, size_t height,hipStream_t stream __dparm(0));
3692 hipError_t hipMemset3D(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent );
3702 hipError_t hipMemset3DAsync(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent ,hipStream_t stream __dparm(0));
3712 hipError_t hipMemGetInfo(size_t* free, size_t* total);
3713 hipError_t hipMemPtrGetInfo(void* ptr, size_t* size);
3726 hipError_t hipMallocArray(hipArray** array, const hipChannelFormatDesc* desc, size_t width,
3727  size_t height __dparm(0), unsigned int flags __dparm(hipArrayDefault));
3728 hipError_t hipArrayCreate(hipArray** pHandle, const HIP_ARRAY_DESCRIPTOR* pAllocateArray);
3729 hipError_t hipArrayDestroy(hipArray* array);
3730 hipError_t hipArray3DCreate(hipArray** array, const HIP_ARRAY3D_DESCRIPTOR* pAllocateArray);
3731 hipError_t hipMalloc3D(hipPitchedPtr* pitchedDevPtr, hipExtent extent);
3740 hipError_t hipFreeArray(hipArray* array);
3748 hipError_t hipFreeMipmappedArray(hipMipmappedArray_t mipmappedArray);
3760 hipError_t hipMalloc3DArray(hipArray** array, const struct hipChannelFormatDesc* desc,
3761  struct hipExtent extent, unsigned int flags);
3774  hipMipmappedArray_t *mipmappedArray,
3775  const struct hipChannelFormatDesc* desc,
3776  struct hipExtent extent,
3777  unsigned int numLevels,
3778  unsigned int flags __dparm(0));
3789  hipArray_t *levelArray,
3790  hipMipmappedArray_const_t mipmappedArray,
3791  unsigned int level);
3808 hipError_t hipMemcpy2D(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
3809  size_t height, hipMemcpyKind kind);
3819 hipError_t hipMemcpyParam2D(const hip_Memcpy2D* pCopy);
3830 hipError_t hipMemcpyParam2DAsync(const hip_Memcpy2D* pCopy, hipStream_t stream __dparm(0));
3848 hipError_t hipMemcpy2DAsync(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
3849  size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0));
3867 hipError_t hipMemcpy2DToArray(hipArray* dst, size_t wOffset, size_t hOffset, const void* src,
3868  size_t spitch, size_t width, size_t height, hipMemcpyKind kind);
3887 hipError_t hipMemcpy2DToArrayAsync(hipArray* dst, size_t wOffset, size_t hOffset, const void* src,
3888  size_t spitch, size_t width, size_t height, hipMemcpyKind kind,
3889  hipStream_t stream __dparm(0));
3905 DEPRECATED(DEPRECATED_MSG)
3906 hipError_t hipMemcpyToArray(hipArray* dst, size_t wOffset, size_t hOffset, const void* src,
3907  size_t count, hipMemcpyKind kind);
3923 DEPRECATED(DEPRECATED_MSG)
3924 hipError_t hipMemcpyFromArray(void* dst, hipArray_const_t srcArray, size_t wOffset, size_t hOffset,
3925  size_t count, hipMemcpyKind kind);
3943 hipError_t hipMemcpy2DFromArray( void* dst, size_t dpitch, hipArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind);
3962 hipError_t hipMemcpy2DFromArrayAsync( void* dst, size_t dpitch, hipArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0));
3976 hipError_t hipMemcpyAtoH(void* dst, hipArray* srcArray, size_t srcOffset, size_t count);
3990 hipError_t hipMemcpyHtoA(hipArray* dstArray, size_t dstOffset, const void* srcHost, size_t count);
4001 hipError_t hipMemcpy3D(const struct hipMemcpy3DParms* p);
4013 hipError_t hipMemcpy3DAsync(const struct hipMemcpy3DParms* p, hipStream_t stream __dparm(0));
4024 hipError_t hipDrvMemcpy3D(const HIP_MEMCPY3D* pCopy);
4036 hipError_t hipDrvMemcpy3DAsync(const HIP_MEMCPY3D* pCopy, hipStream_t stream);
4037 // doxygen end Memory
4065 hipError_t hipDeviceCanAccessPeer(int* canAccessPeer, int deviceId, int peerDeviceId);
4082 hipError_t hipDeviceEnablePeerAccess(int peerDeviceId, unsigned int flags);
4094 hipError_t hipDeviceDisablePeerAccess(int peerDeviceId);
4107 hipError_t hipMemGetAddressRange(hipDeviceptr_t* pbase, size_t* psize, hipDeviceptr_t dptr);
4108 #ifndef USE_PEER_NON_UNIFIED
4109 #define USE_PEER_NON_UNIFIED 1
4110 #endif
4111 #if USE_PEER_NON_UNIFIED == 1
4123 hipError_t hipMemcpyPeer(void* dst, int dstDeviceId, const void* src, int srcDeviceId,
4124  size_t sizeBytes);
4137 hipError_t hipMemcpyPeerAsync(void* dst, int dstDeviceId, const void* src, int srcDevice,
4138  size_t sizeBytes, hipStream_t stream __dparm(0));
4139 #endif
4140 // doxygen end PeerToPeer
4170 DEPRECATED(DEPRECATED_MSG)
4171 hipError_t hipCtxCreate(hipCtx_t* ctx, unsigned int flags, hipDevice_t device);
4182 DEPRECATED(DEPRECATED_MSG)
4183 hipError_t hipCtxDestroy(hipCtx_t ctx);
4194 DEPRECATED(DEPRECATED_MSG)
4195 hipError_t hipCtxPopCurrent(hipCtx_t* ctx);
4206 DEPRECATED(DEPRECATED_MSG)
4207 hipError_t hipCtxPushCurrent(hipCtx_t ctx);
4218 DEPRECATED(DEPRECATED_MSG)
4219 hipError_t hipCtxSetCurrent(hipCtx_t ctx);
4230 DEPRECATED(DEPRECATED_MSG)
4231 hipError_t hipCtxGetCurrent(hipCtx_t* ctx);
4242 DEPRECATED(DEPRECATED_MSG)
4243 hipError_t hipCtxGetDevice(hipDevice_t* device);
4261 DEPRECATED(DEPRECATED_MSG)
4262 hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int* apiVersion);
4276 DEPRECATED(DEPRECATED_MSG)
4277 hipError_t hipCtxGetCacheConfig(hipFuncCache_t* cacheConfig);
4291 DEPRECATED(DEPRECATED_MSG)
4292 hipError_t hipCtxSetCacheConfig(hipFuncCache_t cacheConfig);
4306 DEPRECATED(DEPRECATED_MSG)
4321 DEPRECATED(DEPRECATED_MSG)
4334 DEPRECATED(DEPRECATED_MSG)
4335 hipError_t hipCtxSynchronize(void);
4346 DEPRECATED(DEPRECATED_MSG)
4347 hipError_t hipCtxGetFlags(unsigned int* flags);
4367 DEPRECATED(DEPRECATED_MSG)
4368 hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags);
4385 DEPRECATED(DEPRECATED_MSG)
4386 hipError_t hipCtxDisablePeerAccess(hipCtx_t peerCtx);
4387 // doxygen end Context deprecated
4403 hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int* flags, int* active);
4416 hipError_t hipDevicePrimaryCtxRelease(hipDevice_t dev);
4428 hipError_t hipDevicePrimaryCtxRetain(hipCtx_t* pctx, hipDevice_t dev);
4439 hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev);
4451 hipError_t hipDevicePrimaryCtxSetFlags(hipDevice_t dev, unsigned int flags);
4452 // doxygen end Context Management
4476 hipError_t hipModuleLoad(hipModule_t* module, const char* fname);
4486 hipError_t hipModuleUnload(hipModule_t module);
4497 hipError_t hipModuleGetFunction(hipFunction_t* function, hipModule_t module, const char* kname);
4506 hipError_t hipFuncGetAttributes(struct hipFuncAttributes* attr, const void* func);
4516 hipError_t hipFuncGetAttribute(int* value, hipFunction_attribute attrib, hipFunction_t hfunc);
4526 hipError_t hipModuleGetTexRef(textureReference** texRef, hipModule_t hmod, const char* name);
4536 hipError_t hipModuleLoadData(hipModule_t* module, const void* image);
4549 hipError_t hipModuleLoadDataEx(hipModule_t* module, const void* image, unsigned int numOptions,
4550  hipJitOption* options, void** optionValues);
4579 hipError_t hipModuleLaunchKernel(hipFunction_t f, unsigned int gridDimX, unsigned int gridDimY,
4580  unsigned int gridDimZ, unsigned int blockDimX,
4581  unsigned int blockDimY, unsigned int blockDimZ,
4582  unsigned int sharedMemBytes, hipStream_t stream,
4583  void** kernelParams, void** extra);
4602 hipError_t hipLaunchCooperativeKernel(const void* f, dim3 gridDim, dim3 blockDimX,
4603  void** kernelParams, unsigned int sharedMemBytes,
4604  hipStream_t stream);
4616  int numDevices, unsigned int flags);
4629  int numDevices, unsigned int flags);
4630 // doxygen end Module
4655 //TODO - Match CUoccupancyB2DSize
4656 hipError_t hipModuleOccupancyMaxPotentialBlockSize(int* gridSize, int* blockSize,
4657  hipFunction_t f, size_t dynSharedMemPerBlk,
4658  int blockSizeLimit);
4674 //TODO - Match CUoccupancyB2DSize
4675 hipError_t hipModuleOccupancyMaxPotentialBlockSizeWithFlags(int* gridSize, int* blockSize,
4676  hipFunction_t f, size_t dynSharedMemPerBlk,
4677  int blockSizeLimit, unsigned int flags);
4687  int* numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk);
4698  int* numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags);
4708  int* numBlocks, const void* f, int blockSize, size_t dynSharedMemPerBlk);
4719  int* numBlocks, const void* f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags __dparm(hipOccupancyDefault));
4734 hipError_t hipOccupancyMaxPotentialBlockSize(int* gridSize, int* blockSize,
4735  const void* f, size_t dynSharedMemPerBlk,
4736  int blockSizeLimit);
4737 // doxygen end Occupancy
4751 // TODO - expand descriptions:
4757 DEPRECATED("use roctracer/rocTX instead")
4758 hipError_t hipProfilerStart();
4764 DEPRECATED("use roctracer/rocTX instead")
4765 hipError_t hipProfilerStop();
4766 // doxygen end profiler
4793 hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0));
4804 hipError_t hipSetupArgument(const void* arg, size_t size, size_t offset);
4813 hipError_t hipLaunchByPtr(const void* func);
4831  dim3 blockDim,
4832  size_t sharedMem __dparm(0),
4833  hipStream_t stream __dparm(0));
4853 hipError_t __hipPopCallConfiguration(dim3 *gridDim,
4854  dim3 *blockDim,
4855  size_t *sharedMem,
4856  hipStream_t *stream);
4872 hipError_t hipLaunchKernel(const void* function_address,
4873  dim3 numBlocks,
4874  dim3 dimBlocks,
4875  void** args,
4876  size_t sharedMemBytes __dparm(0),
4877  hipStream_t stream __dparm(0));
4885 hipError_t hipDrvMemcpy2DUnaligned(const hip_Memcpy2D* pCopy);
4886 //TODO: Move this to hip_ext.h
4907 hipError_t hipExtLaunchKernel(const void* function_address, dim3 numBlocks, dim3 dimBlocks,
4908  void** args, size_t sharedMemBytes, hipStream_t stream,
4909  hipEvent_t startEvent, hipEvent_t stopEvent, int flags);
4910 // doxygen end Clang launch
4933  const textureReference* tex,
4934  hipMipmappedArray_const_t mipmappedArray,
4935  const hipChannelFormatDesc* desc);
4936 
4949  hipTextureObject_t* pTexObject,
4950  const hipResourceDesc* pResDesc,
4951  const hipTextureDesc* pTexDesc,
4952  const struct hipResourceViewDesc* pResViewDesc);
4953 
4962 hipError_t hipDestroyTextureObject(hipTextureObject_t textureObject);
4963 
4974  hipChannelFormatDesc* desc,
4975  hipArray_const_t array);
4976 
4987  hipResourceDesc* pResDesc,
4988  hipTextureObject_t textureObject);
4989 
5000  struct hipResourceViewDesc* pResViewDesc,
5001  hipTextureObject_t textureObject);
5002 
5013  hipTextureDesc* pTexDesc,
5014  hipTextureObject_t textureObject);
5015 
5028  hipTextureObject_t* pTexObject,
5029  const HIP_RESOURCE_DESC* pResDesc,
5030  const HIP_TEXTURE_DESC* pTexDesc,
5031  const HIP_RESOURCE_VIEW_DESC* pResViewDesc);
5032 
5042  hipTextureObject_t texObject);
5043 
5054  HIP_RESOURCE_DESC* pResDesc,
5055  hipTextureObject_t texObject);
5056 
5067  HIP_RESOURCE_VIEW_DESC* pResViewDesc,
5068  hipTextureObject_t texObject);
5069 
5080  HIP_TEXTURE_DESC* pTexDesc,
5081  hipTextureObject_t texObject);
5082 
5099 DEPRECATED(DEPRECATED_MSG)
5101  const textureReference** texref,
5102  const void* symbol);
5103 
5104 DEPRECATED(DEPRECATED_MSG)
5105 hipError_t hipTexRefSetAddressMode(
5106  textureReference* texRef,
5107  int dim,
5108  enum hipTextureAddressMode am);
5109 DEPRECATED(DEPRECATED_MSG)
5110 hipError_t hipTexRefSetArray(
5111  textureReference* tex,
5112  hipArray_const_t array,
5113  unsigned int flags);
5114 DEPRECATED(DEPRECATED_MSG)
5115 hipError_t hipTexRefSetFilterMode(
5116  textureReference* texRef,
5117  enum hipTextureFilterMode fm);
5118 DEPRECATED(DEPRECATED_MSG)
5119 hipError_t hipTexRefSetFlags(
5120  textureReference* texRef,
5121  unsigned int Flags);
5122 DEPRECATED(DEPRECATED_MSG)
5123 hipError_t hipTexRefSetFormat(
5124  textureReference* texRef,
5125  hipArray_Format fmt,
5126  int NumPackedComponents);
5127 DEPRECATED(DEPRECATED_MSG)
5128 hipError_t hipBindTexture(
5129  size_t* offset,
5130  const textureReference* tex,
5131  const void* devPtr,
5132  const hipChannelFormatDesc* desc,
5133  size_t size __dparm(UINT_MAX));
5134 DEPRECATED(DEPRECATED_MSG)
5135 hipError_t hipBindTexture2D(
5136  size_t* offset,
5137  const textureReference* tex,
5138  const void* devPtr,
5139  const hipChannelFormatDesc* desc,
5140  size_t width,
5141  size_t height,
5142  size_t pitch);
5143 DEPRECATED(DEPRECATED_MSG)
5144 hipError_t hipBindTextureToArray(
5145  const textureReference* tex,
5146  hipArray_const_t array,
5147  const hipChannelFormatDesc* desc);
5148 DEPRECATED(DEPRECATED_MSG)
5149 hipError_t hipGetTextureAlignmentOffset(
5150  size_t* offset,
5151  const textureReference* texref);
5152 DEPRECATED(DEPRECATED_MSG)
5153 hipError_t hipUnbindTexture(const textureReference* tex);
5154 DEPRECATED(DEPRECATED_MSG)
5155 hipError_t hipTexRefGetAddress(
5156  hipDeviceptr_t* dev_ptr,
5157  const textureReference* texRef);
5158 DEPRECATED(DEPRECATED_MSG)
5159 hipError_t hipTexRefGetAddressMode(
5160  enum hipTextureAddressMode* pam,
5161  const textureReference* texRef,
5162  int dim);
5163 DEPRECATED(DEPRECATED_MSG)
5164 hipError_t hipTexRefGetFilterMode(
5165  enum hipTextureFilterMode* pfm,
5166  const textureReference* texRef);
5167 DEPRECATED(DEPRECATED_MSG)
5168 hipError_t hipTexRefGetFlags(
5169  unsigned int* pFlags,
5170  const textureReference* texRef);
5171 DEPRECATED(DEPRECATED_MSG)
5172 hipError_t hipTexRefGetFormat(
5173  hipArray_Format* pFormat,
5174  int* pNumChannels,
5175  const textureReference* texRef);
5176 DEPRECATED(DEPRECATED_MSG)
5177 hipError_t hipTexRefGetMaxAnisotropy(
5178  int* pmaxAnsio,
5179  const textureReference* texRef);
5180 DEPRECATED(DEPRECATED_MSG)
5181 hipError_t hipTexRefGetMipmapFilterMode(
5182  enum hipTextureFilterMode* pfm,
5183  const textureReference* texRef);
5184 DEPRECATED(DEPRECATED_MSG)
5185 hipError_t hipTexRefGetMipmapLevelBias(
5186  float* pbias,
5187  const textureReference* texRef);
5188 DEPRECATED(DEPRECATED_MSG)
5189 hipError_t hipTexRefGetMipmapLevelClamp(
5190  float* pminMipmapLevelClamp,
5191  float* pmaxMipmapLevelClamp,
5192  const textureReference* texRef);
5193 DEPRECATED(DEPRECATED_MSG)
5194 hipError_t hipTexRefGetMipMappedArray(
5195  hipMipmappedArray_t* pArray,
5196  const textureReference* texRef);
5197 DEPRECATED(DEPRECATED_MSG)
5198 hipError_t hipTexRefSetAddress(
5199  size_t* ByteOffset,
5200  textureReference* texRef,
5201  hipDeviceptr_t dptr,
5202  size_t bytes);
5203 DEPRECATED(DEPRECATED_MSG)
5204 hipError_t hipTexRefSetAddress2D(
5205  textureReference* texRef,
5206  const HIP_ARRAY_DESCRIPTOR* desc,
5207  hipDeviceptr_t dptr,
5208  size_t Pitch);
5209 DEPRECATED(DEPRECATED_MSG)
5210 hipError_t hipTexRefSetMaxAnisotropy(
5211  textureReference* texRef,
5212  unsigned int maxAniso);
5213  DEPRECATED(DEPRECATED_MSG)
5214 hipError_t hipTexRefSetBorderColor(
5215  textureReference* texRef,
5216  float* pBorderColor);
5217 DEPRECATED(DEPRECATED_MSG)
5218 hipError_t hipTexRefSetMipmapFilterMode(
5219  textureReference* texRef,
5220  enum hipTextureFilterMode fm);
5221 DEPRECATED(DEPRECATED_MSG)
5222 hipError_t hipTexRefSetMipmapLevelBias(
5223  textureReference* texRef,
5224  float bias);
5225 DEPRECATED(DEPRECATED_MSG)
5226 hipError_t hipTexRefSetMipmapLevelClamp(
5227  textureReference* texRef,
5228  float minMipMapLevelClamp,
5229  float maxMipMapLevelClamp);
5230 DEPRECATED(DEPRECATED_MSG)
5231 hipError_t hipTexRefSetMipmappedArray(
5232  textureReference* texRef,
5233  struct hipMipmappedArray* mipmappedArray,
5234  unsigned int Flags);
5235 
5236 // doxygen end deprecated texture management
5241 // The following are not supported.
5250 hipError_t hipMipmappedArrayCreate(
5251  hipMipmappedArray_t* pHandle,
5252  HIP_ARRAY3D_DESCRIPTOR* pMipmappedArrayDesc,
5253  unsigned int numMipmapLevels);
5254 hipError_t hipMipmappedArrayDestroy(
5255  hipMipmappedArray_t hMipmappedArray);
5256 hipError_t hipMipmappedArrayGetLevel(
5257  hipArray_t* pLevelArray,
5258  hipMipmappedArray_t hMipMappedArray,
5259  unsigned int level);
5260 // doxygen end unsuppported texture management
5265 // doxygen end Texture management
5277 // This group is for HIPrtc
5278 
5279 // doxygen end Runtime
5290 hipError_t hipRegisterApiCallback(uint32_t id, void* fun, void* arg);
5291 hipError_t hipRemoveApiCallback(uint32_t id);
5292 hipError_t hipRegisterActivityCallback(uint32_t id, void* fun, void* arg);
5293 hipError_t hipRemoveActivityCallback(uint32_t id);
5294 const char* hipApiName(uint32_t id);
5295 const char* hipKernelNameRef(const hipFunction_t f);
5296 const char* hipKernelNameRefByPtr(const void* hostFunction, hipStream_t stream);
5297 int hipGetStreamDeviceId(hipStream_t stream);
5298 
5299 // doxygen end Callback
5324 hipError_t hipStreamBeginCapture(hipStream_t stream, hipStreamCaptureMode mode);
5325 
5338 hipError_t hipStreamEndCapture(hipStream_t stream, hipGraph_t* pGraph);
5339 
5353 hipError_t hipStreamGetCaptureInfo(hipStream_t stream, hipStreamCaptureStatus* pCaptureStatus,
5354  unsigned long long* pId);
5355 
5372 hipError_t hipStreamGetCaptureInfo_v2(hipStream_t stream, hipStreamCaptureStatus* captureStatus_out,
5373  unsigned long long* id_out __dparm(0),
5374  hipGraph_t* graph_out __dparm(0),
5375  const hipGraphNode_t** dependencies_out __dparm(0),
5376  size_t* numDependencies_out __dparm(0));
5377 
5390 hipError_t hipStreamIsCapturing(hipStream_t stream, hipStreamCaptureStatus* pCaptureStatus);
5391 
5404 hipError_t hipStreamUpdateCaptureDependencies(hipStream_t stream, hipGraphNode_t* dependencies,
5405  size_t numDependencies,
5406  unsigned int flags __dparm(0));
5407 
5419 hipError_t hipLaunchHostFunc(hipStream_t stream, hipHostFn_t fn, void* userData);
5420 
5431 hipError_t hipThreadExchangeStreamCaptureMode(hipStreamCaptureMode* mode);
5432 
5445 hipError_t hipGraphCreate(hipGraph_t* pGraph, unsigned int flags);
5446 
5458 hipError_t hipGraphDestroy(hipGraph_t graph);
5459 
5473 hipError_t hipGraphAddDependencies(hipGraph_t graph, const hipGraphNode_t* from,
5474  const hipGraphNode_t* to, size_t numDependencies);
5475 
5490  const hipGraphNode_t* to, size_t numDependencies);
5491 
5510  size_t* numEdges);
5511 
5528 hipError_t hipGraphGetNodes(hipGraph_t graph, hipGraphNode_t* nodes, size_t* numNodes);
5529 
5546 hipError_t hipGraphGetRootNodes(hipGraph_t graph, hipGraphNode_t* pRootNodes,
5547  size_t* pNumRootNodes);
5548 
5566  size_t* pNumDependencies);
5567 
5586  size_t* pNumDependentNodes);
5587 
5600 
5612 
5624 hipError_t hipGraphClone(hipGraph_t* pGraphClone, hipGraph_t originalGraph);
5625 
5639  hipGraph_t clonedGraph);
5640 
5657 hipError_t hipGraphInstantiate(hipGraphExec_t* pGraphExec, hipGraph_t graph,
5658  hipGraphNode_t* pErrorNode, char* pLogBuffer, size_t bufferSize);
5659 
5673  unsigned long long flags);
5674 
5685 hipError_t hipGraphLaunch(hipGraphExec_t graphExec, hipStream_t stream);
5686 
5697 hipError_t hipGraphUpload(hipGraphExec_t graphExec, hipStream_t stream);
5698 
5709 hipError_t hipGraphExecDestroy(hipGraphExec_t graphExec);
5710 
5711 // Check whether an executable graph can be updated with a graph and perform the update if possible.
5725 hipError_t hipGraphExecUpdate(hipGraphExec_t hGraphExec, hipGraph_t hGraph,
5726  hipGraphNode_t* hErrorNode_out,
5727  hipGraphExecUpdateResult* updateResult_out);
5728 
5741 hipError_t hipGraphAddKernelNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
5742  const hipGraphNode_t* pDependencies, size_t numDependencies,
5743  const hipKernelNodeParams* pNodeParams);
5744 
5755 
5766 
5778  const hipKernelNodeParams* pNodeParams);
5779 
5792 hipError_t hipGraphAddMemcpyNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
5793  const hipGraphNode_t* pDependencies, size_t numDependencies,
5794  const hipMemcpy3DParms* pCopyParams);
5805 
5815 hipError_t hipGraphMemcpyNodeSetParams(hipGraphNode_t node, const hipMemcpy3DParms* pNodeParams);
5816 
5827 hipError_t hipGraphKernelNodeSetAttribute(hipGraphNode_t hNode, hipKernelNodeAttrID attr,
5828  const hipKernelNodeAttrValue* value);
5839 hipError_t hipGraphKernelNodeGetAttribute(hipGraphNode_t hNode, hipKernelNodeAttrID attr,
5840  hipKernelNodeAttrValue* value);
5852  hipMemcpy3DParms* pNodeParams);
5853 
5869 hipError_t hipGraphAddMemcpyNode1D(hipGraphNode_t* pGraphNode, hipGraph_t graph,
5870  const hipGraphNode_t* pDependencies, size_t numDependencies,
5871  void* dst, const void* src, size_t count, hipMemcpyKind kind);
5872 
5885 hipError_t hipGraphMemcpyNodeSetParams1D(hipGraphNode_t node, void* dst, const void* src,
5886  size_t count, hipMemcpyKind kind);
5887 
5903  void* dst, const void* src, size_t count,
5904  hipMemcpyKind kind);
5905 
5923  const hipGraphNode_t* pDependencies,
5924  size_t numDependencies, void* dst, const void* symbol,
5925  size_t count, size_t offset, hipMemcpyKind kind);
5926 
5940 hipError_t hipGraphMemcpyNodeSetParamsFromSymbol(hipGraphNode_t node, void* dst, const void* symbol,
5941  size_t count, size_t offset, hipMemcpyKind kind);
5942 
5959  void* dst, const void* symbol, size_t count,
5960  size_t offset, hipMemcpyKind kind);
5961 
5979  const hipGraphNode_t* pDependencies,
5980  size_t numDependencies, const void* symbol,
5981  const void* src, size_t count, size_t offset,
5982  hipMemcpyKind kind);
5983 
5997 hipError_t hipGraphMemcpyNodeSetParamsToSymbol(hipGraphNode_t node, const void* symbol,
5998  const void* src, size_t count, size_t offset,
5999  hipMemcpyKind kind);
6000 
6001 
6017  const void* symbol, const void* src,
6018  size_t count, size_t offset, hipMemcpyKind kind);
6019 
6032 hipError_t hipGraphAddMemsetNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
6033  const hipGraphNode_t* pDependencies, size_t numDependencies,
6034  const hipMemsetParams* pMemsetParams);
6035 
6046 
6056 hipError_t hipGraphMemsetNodeSetParams(hipGraphNode_t node, const hipMemsetParams* pNodeParams);
6057 
6069  const hipMemsetParams* pNodeParams);
6070 
6083 hipError_t hipGraphAddHostNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
6084  const hipGraphNode_t* pDependencies, size_t numDependencies,
6085  const hipHostNodeParams* pNodeParams);
6086 
6097 
6107 hipError_t hipGraphHostNodeSetParams(hipGraphNode_t node, const hipHostNodeParams* pNodeParams);
6108 
6120  const hipHostNodeParams* pNodeParams);
6121 
6135  const hipGraphNode_t* pDependencies, size_t numDependencies,
6136  hipGraph_t childGraph);
6137 
6148 
6160  hipGraph_t childGraph);
6161 
6173 hipError_t hipGraphAddEmptyNode(hipGraphNode_t* pGraphNode, hipGraph_t graph,
6174  const hipGraphNode_t* pDependencies, size_t numDependencies);
6175 
6176 
6190  const hipGraphNode_t* pDependencies, size_t numDependencies,
6191  hipEvent_t event);
6192 
6202 hipError_t hipGraphEventRecordNodeGetEvent(hipGraphNode_t node, hipEvent_t* event_out);
6203 
6213 hipError_t hipGraphEventRecordNodeSetEvent(hipGraphNode_t node, hipEvent_t event);
6214 
6226  hipEvent_t event);
6227 
6241  const hipGraphNode_t* pDependencies, size_t numDependencies,
6242  hipEvent_t event);
6243 
6244 
6254 hipError_t hipGraphEventWaitNodeGetEvent(hipGraphNode_t node, hipEvent_t* event_out);
6255 
6265 hipError_t hipGraphEventWaitNodeSetEvent(hipGraphNode_t node, hipEvent_t event);
6266 
6278  hipEvent_t event);
6279 
6290 hipError_t hipDeviceGetGraphMemAttribute(int device, hipGraphMemAttributeType attr, void* value);
6291 
6302 hipError_t hipDeviceSetGraphMemAttribute(int device, hipGraphMemAttributeType attr, void* value);
6303 
6311 hipError_t hipDeviceGraphMemTrim(int device);
6312 
6325 hipError_t hipUserObjectCreate(hipUserObject_t* object_out, void* ptr, hipHostFn_t destroy, unsigned int initialRefcount, unsigned int flags);
6326 
6336 hipError_t hipUserObjectRelease(hipUserObject_t object, unsigned int count);
6337 
6347 hipError_t hipUserObjectRetain(hipUserObject_t object, unsigned int count);
6348 
6360 hipError_t hipGraphRetainUserObject(hipGraph_t graph, hipUserObject_t object, unsigned int count, unsigned int flags);
6361 
6372 hipError_t hipGraphReleaseUserObject(hipGraph_t graph, hipUserObject_t object, unsigned int count);
6373 // doxygen end graph API
6382 typedef struct hipMemAllocationProp {
6387  struct {
6388  unsigned char compressionType;
6389  unsigned char gpuDirectRDMACapable;
6390  unsigned short usage;
6391  } allocFlags;
6393 
6397 typedef struct ihipMemGenericAllocationHandle* hipMemGenericAllocationHandle_t;
6398 
6408 
6414 typedef enum hipMemHandleType {
6417 
6423 typedef enum hipMemOperationType {
6427 
6437 
6441 typedef struct hipArrayMapInfo {
6442  hipResourceType resourceType;
6443  union {
6444  hipMipmappedArray mipmap;
6445  hipArray_t array;
6446  } resource;
6448  union {
6449  struct {
6450  unsigned int level;
6451  unsigned int layer;
6452  unsigned int offsetX;
6453  unsigned int offsetY;
6454  unsigned int offsetZ;
6455  unsigned int extentWidth;
6456  unsigned int extentHeight;
6457  unsigned int extentDepth;
6458  } sparseLevel;
6459  struct {
6460  unsigned int layer;
6461  unsigned long long offset;
6462  unsigned long long size;
6463  } miptail;
6464  } subresource;
6467  union {
6469  } memHandle;
6470  unsigned long long offset;
6471  unsigned int deviceBitMask;
6472  unsigned int flags;
6473  unsigned int reserved[2];
6475 
6493 hipError_t hipMemAddressFree(void* devPtr, size_t size);
6494 
6507 hipError_t hipMemAddressReserve(void** ptr, size_t size, size_t alignment, void* addr, unsigned long long flags);
6508 
6520 hipError_t hipMemCreate(hipMemGenericAllocationHandle_t* handle, size_t size, const hipMemAllocationProp* prop, unsigned long long flags);
6521 
6533 hipError_t hipMemExportToShareableHandle(void* shareableHandle, hipMemGenericAllocationHandle_t handle, hipMemAllocationHandleType handleType, unsigned long long flags);
6534 
6545 hipError_t hipMemGetAccess(unsigned long long* flags, const hipMemLocation* location, void* ptr);
6546 
6558 
6569 
6581 
6594 hipError_t hipMemMap(void* ptr, size_t size, size_t offset, hipMemGenericAllocationHandle_t handle, unsigned long long flags);
6595 
6606 hipError_t hipMemMapArrayAsync(hipArrayMapInfo* mapInfoList, unsigned int count, hipStream_t stream);
6607 
6617 
6628 
6640 hipError_t hipMemSetAccess(void* ptr, size_t size, const hipMemAccessDesc* desc, size_t count);
6641 
6651 hipError_t hipMemUnmap(void* ptr, size_t size);
6652 
6653 // doxygen end virtual memory management API
6665 typedef unsigned int GLuint;
6666 typedef unsigned int GLenum;
6667 
6668 // Queries devices associated with GL Context.
6669 hipError_t hipGLGetDevices(unsigned int* pHipDeviceCount, int* pHipDevices,
6670  unsigned int hipDeviceCount, hipGLDeviceList deviceList);
6671 // Registers a GL Buffer for interop and returns corresponding graphics resource.
6672 hipError_t hipGraphicsGLRegisterBuffer(hipGraphicsResource** resource, GLuint buffer,
6673  unsigned int flags);
6674 // Register a GL Image for interop and returns the corresponding graphic resource
6675 hipError_t hipGraphicsGLRegisterImage(hipGraphicsResource** resource, GLuint image,
6676  GLenum target, unsigned int flags);
6677 // Maps a graphics resource for hip access.
6678 hipError_t hipGraphicsMapResources(int count, hipGraphicsResource_t* resources,
6679  hipStream_t stream __dparm(0) );
6680 // Get an array through which to access a subresource of a mapped graphics resource.
6681 hipError_t hipGraphicsSubResourceGetMappedArray(hipArray_t* array, hipGraphicsResource_t resource,
6682  unsigned int arrayIndex, unsigned int mipLevel);
6683 // Gets device accessible address of a graphics resource.
6684 hipError_t hipGraphicsResourceGetMappedPointer(void** devPtr, size_t* size,
6685  hipGraphicsResource_t resource);
6686 // Unmaps a graphics resource for hip access.
6687 hipError_t hipGraphicsUnmapResources(int count, hipGraphicsResource_t* resources,
6688  hipStream_t stream __dparm(0));
6689 // Unregisters a graphics resource.
6690 hipError_t hipGraphicsUnregisterResource(hipGraphicsResource_t resource);
6691 // doxygen end GL Interop
6697 #ifdef __cplusplus
6698 } /* extern "c" */
6699 #endif
6700 #ifdef __cplusplus
6701 #if defined(__clang__) && defined(__HIP__)
6702 template <typename T>
6703 static hipError_t __host__ inline hipOccupancyMaxPotentialBlockSize(int* gridSize, int* blockSize,
6704  T f, size_t dynSharedMemPerBlk = 0, int blockSizeLimit = 0) {
6705  return hipOccupancyMaxPotentialBlockSize(gridSize, blockSize, reinterpret_cast<const void*>(f),dynSharedMemPerBlk,blockSizeLimit);
6706 }
6707 template <typename T>
6708 static hipError_t __host__ inline hipOccupancyMaxPotentialBlockSizeWithFlags(int* gridSize, int* blockSize,
6709  T f, size_t dynSharedMemPerBlk = 0, int blockSizeLimit = 0, unsigned int flags = 0 ) {
6710  return hipOccupancyMaxPotentialBlockSize(gridSize, blockSize, reinterpret_cast<const void*>(f),dynSharedMemPerBlk,blockSizeLimit);
6711 }
6712 #endif // defined(__clang__) && defined(__HIP__)
6713 template <typename T>
6714 hipError_t hipGetSymbolAddress(void** devPtr, const T &symbol) {
6715  return ::hipGetSymbolAddress(devPtr, (const void *)&symbol);
6716 }
6717 template <typename T>
6718 hipError_t hipGetSymbolSize(size_t* size, const T &symbol) {
6719  return ::hipGetSymbolSize(size, (const void *)&symbol);
6720 }
6721 template <typename T>
6722 hipError_t hipMemcpyToSymbol(const T& symbol, const void* src, size_t sizeBytes,
6723  size_t offset __dparm(0),
6724  hipMemcpyKind kind __dparm(hipMemcpyHostToDevice)) {
6725  return ::hipMemcpyToSymbol((const void*)&symbol, src, sizeBytes, offset, kind);
6726 }
6727 template <typename T>
6728 hipError_t hipMemcpyToSymbolAsync(const T& symbol, const void* src, size_t sizeBytes, size_t offset,
6729  hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
6730  return ::hipMemcpyToSymbolAsync((const void*)&symbol, src, sizeBytes, offset, kind, stream);
6731 }
6732 template <typename T>
6733 hipError_t hipMemcpyFromSymbol(void* dst, const T &symbol,
6734  size_t sizeBytes, size_t offset __dparm(0),
6735  hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost)) {
6736  return ::hipMemcpyFromSymbol(dst, (const void*)&symbol, sizeBytes, offset, kind);
6737 }
6738 template <typename T>
6739 hipError_t hipMemcpyFromSymbolAsync(void* dst, const T& symbol, size_t sizeBytes, size_t offset,
6740  hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
6741  return ::hipMemcpyFromSymbolAsync(dst, (const void*)&symbol, sizeBytes, offset, kind, stream);
6742 }
6743 template <class T>
6745  int* numBlocks, T f, int blockSize, size_t dynSharedMemPerBlk) {
6747  numBlocks, reinterpret_cast<const void*>(f), blockSize, dynSharedMemPerBlk);
6748 }
6749 template <class T>
6751  int* numBlocks, T f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags) {
6753  numBlocks, reinterpret_cast<const void*>(f), blockSize, dynSharedMemPerBlk, flags);
6754 }
6755 template <typename F>
6756 inline hipError_t hipOccupancyMaxPotentialBlockSize(int* gridSize, int* blockSize,
6757  F kernel, size_t dynSharedMemPerBlk, uint32_t blockSizeLimit) {
6758 return hipOccupancyMaxPotentialBlockSize(gridSize, blockSize,(hipFunction_t)kernel, dynSharedMemPerBlk, blockSizeLimit);
6759 }
6760 template <class T>
6761 inline hipError_t hipLaunchCooperativeKernel(T f, dim3 gridDim, dim3 blockDim,
6762  void** kernelParams, unsigned int sharedMemBytes, hipStream_t stream) {
6763  return hipLaunchCooperativeKernel(reinterpret_cast<const void*>(f), gridDim,
6764  blockDim, kernelParams, sharedMemBytes, stream);
6765 }
6766 template <class T>
6767 inline hipError_t hipLaunchCooperativeKernelMultiDevice(hipLaunchParams* launchParamsList,
6768  unsigned int numDevices, unsigned int flags = 0) {
6769  return hipLaunchCooperativeKernelMultiDevice(launchParamsList, numDevices, flags);
6770 }
6771 template <class T>
6772 inline hipError_t hipExtLaunchMultiKernelMultiDevice(hipLaunchParams* launchParamsList,
6773  unsigned int numDevices, unsigned int flags = 0) {
6774  return hipExtLaunchMultiKernelMultiDevice(launchParamsList, numDevices, flags);
6775 }
6776 hipError_t hipCreateSurfaceObject(hipSurfaceObject_t* pSurfObject, const hipResourceDesc* pResDesc);
6777 hipError_t hipDestroySurfaceObject(hipSurfaceObject_t surfaceObject);
6778 template <class T, int dim, enum hipTextureReadMode readMode>
6779 DEPRECATED(DEPRECATED_MSG)
6780 static inline hipError_t hipBindTexture(size_t* offset, const struct texture<T, dim, readMode>& tex,
6781  const void* devPtr, size_t size = UINT_MAX) {
6782  return hipBindTexture(offset, &tex, devPtr, &tex.channelDesc, size);
6783 }
6784 template <class T, int dim, enum hipTextureReadMode readMode>
6785 DEPRECATED(DEPRECATED_MSG)
6786 static inline hipError_t
6787  hipBindTexture(size_t* offset, const struct texture<T, dim, readMode>& tex, const void* devPtr,
6788  const struct hipChannelFormatDesc& desc, size_t size = UINT_MAX) {
6789  return hipBindTexture(offset, &tex, devPtr, &desc, size);
6790 }
6791 template<class T, int dim, enum hipTextureReadMode readMode>
6792 DEPRECATED(DEPRECATED_MSG)
6793 static inline hipError_t hipBindTexture2D(
6794  size_t *offset,
6795  const struct texture<T, dim, readMode> &tex,
6796  const void *devPtr,
6797  size_t width,
6798  size_t height,
6799  size_t pitch)
6800 {
6801  return hipBindTexture2D(offset, &tex, devPtr, &tex.channelDesc, width, height, pitch);
6802 }
6803 template<class T, int dim, enum hipTextureReadMode readMode>
6804 DEPRECATED(DEPRECATED_MSG)
6805 static inline hipError_t hipBindTexture2D(
6806  size_t *offset,
6807  const struct texture<T, dim, readMode> &tex,
6808  const void *devPtr,
6809  const struct hipChannelFormatDesc &desc,
6810  size_t width,
6811  size_t height,
6812  size_t pitch)
6813 {
6814  return hipBindTexture2D(offset, &tex, devPtr, &desc, width, height, pitch);
6815 }
6816 template<class T, int dim, enum hipTextureReadMode readMode>
6817 DEPRECATED(DEPRECATED_MSG)
6818 static inline hipError_t hipBindTextureToArray(
6819  const struct texture<T, dim, readMode> &tex,
6820  hipArray_const_t array)
6821 {
6822  struct hipChannelFormatDesc desc;
6823  hipError_t err = hipGetChannelDesc(&desc, array);
6824  return (err == hipSuccess) ? hipBindTextureToArray(&tex, array, &desc) : err;
6825 }
6826 template<class T, int dim, enum hipTextureReadMode readMode>
6827 DEPRECATED(DEPRECATED_MSG)
6828 static inline hipError_t hipBindTextureToArray(
6829  const struct texture<T, dim, readMode> &tex,
6830  hipArray_const_t array,
6831  const struct hipChannelFormatDesc &desc)
6832 {
6833  return hipBindTextureToArray(&tex, array, &desc);
6834 }
6835 template<class T, int dim, enum hipTextureReadMode readMode>
6836 static inline hipError_t hipBindTextureToMipmappedArray(
6837  const struct texture<T, dim, readMode> &tex,
6838  hipMipmappedArray_const_t mipmappedArray)
6839 {
6840  struct hipChannelFormatDesc desc;
6841  hipArray_t levelArray;
6842  hipError_t err = hipGetMipmappedArrayLevel(&levelArray, mipmappedArray, 0);
6843  if (err != hipSuccess) {
6844  return err;
6845  }
6846  err = hipGetChannelDesc(&desc, levelArray);
6847  return (err == hipSuccess) ? hipBindTextureToMipmappedArray(&tex, mipmappedArray, &desc) : err;
6848 }
6849 template<class T, int dim, enum hipTextureReadMode readMode>
6850 static inline hipError_t hipBindTextureToMipmappedArray(
6851  const struct texture<T, dim, readMode> &tex,
6852  hipMipmappedArray_const_t mipmappedArray,
6853  const struct hipChannelFormatDesc &desc)
6854 {
6855  return hipBindTextureToMipmappedArray(&tex, mipmappedArray, &desc);
6856 }
6857 template<class T, int dim, enum hipTextureReadMode readMode>
6858 DEPRECATED(DEPRECATED_MSG)
6859 static inline hipError_t hipUnbindTexture(
6860  const struct texture<T, dim, readMode> &tex)
6861 {
6862  return hipUnbindTexture(&tex);
6863 }
6871 static inline hipError_t hipMallocAsync(
6872  void** dev_ptr,
6873  size_t size,
6874  hipMemPool_t mem_pool,
6875  hipStream_t stream) {
6876  return hipMallocFromPoolAsync(dev_ptr, size, mem_pool, stream);
6877 }
6878 
6879 template<class T>
6880 static inline hipError_t hipMallocAsync(
6881  T** dev_ptr,
6882  size_t size,
6883  hipMemPool_t mem_pool,
6884  hipStream_t stream) {
6885  return hipMallocFromPoolAsync(reinterpret_cast<void**>(dev_ptr), size, mem_pool, stream);
6886 }
6887 
6888 template<class T>
6889 static inline hipError_t hipMallocAsync(
6890  T** dev_ptr,
6891  size_t size,
6892  hipStream_t stream) {
6893  return hipMallocAsync(reinterpret_cast<void**>(dev_ptr), size, stream);
6894 }
6895 
6896 template<class T>
6897 static inline hipError_t hipMallocFromPoolAsync(
6898  T** dev_ptr,
6899  size_t size,
6900  hipMemPool_t mem_pool,
6901  hipStream_t stream) {
6902  return hipMallocFromPoolAsync(reinterpret_cast<void**>(dev_ptr), size, mem_pool, stream);
6903 }
6904 #endif // __cplusplus
6905 
6906 #ifdef __GNUC__
6907 #pragma GCC visibility pop
6908 #endif
6909 // doxygen end HIP API
6914 #elif !(defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__)) && (defined(__HIP_PLATFORM_NVCC__) || defined(__HIP_PLATFORM_NVIDIA__))
6915 #include "hip/nvidia_detail/nvidia_hip_runtime_api.h"
6916 #else
6917 #error("Must define exactly one of __HIP_PLATFORM_AMD__ or __HIP_PLATFORM_NVIDIA__");
6918 #endif
6919 
6920 
6932 #if defined(__cplusplus) && !defined(__HIP_DISABLE_CPP_FUNCTIONS__)
6933 template <class T>
6934 static inline hipError_t hipMalloc(T** devPtr, size_t size) {
6935  return hipMalloc((void**)devPtr, size);
6936 }
6937 
6938 // Provide an override to automatically typecast the pointer type from void**, and also provide a
6939 // default for the flags.
6940 template <class T>
6941 static inline hipError_t hipHostMalloc(T** ptr, size_t size,
6942  unsigned int flags = hipHostMallocDefault) {
6943  return hipHostMalloc((void**)ptr, size, flags);
6944 }
6945 
6946 template <class T>
6947 static inline hipError_t hipMallocManaged(T** devPtr, size_t size,
6948  unsigned int flags = hipMemAttachGlobal) {
6949  return hipMallocManaged((void**)devPtr, size, flags);
6950 }
6951 
6952 #endif
6953 #endif
6954 
6955 #include <hip/amd_detail/amd_hip_runtime_pt_api.h>
6956 
6957 #if USE_PROF_API
6958 #include <hip/amd_detail/hip_prof_str.h>
6959 #endif
struct hipMemAllocationProp hipMemAllocationProp
hipMemHandleType
Definition: hip_runtime_api.h:6414
struct hipArrayMapInfo hipArrayMapInfo
hipMemOperationType
Definition: hip_runtime_api.h:6423
hipMemAllocationGranularity_flags
Definition: hip_runtime_api.h:6404
struct ihipMemGenericAllocationHandle * hipMemGenericAllocationHandle_t
Definition: hip_runtime_api.h:6397
hipArraySparseSubresourceType
Definition: hip_runtime_api.h:6433
@ hipMemHandleTypeGeneric
Generic handle type.
Definition: hip_runtime_api.h:6415
@ hipMemOperationTypeMap
Map operation.
Definition: hip_runtime_api.h:6424
@ hipMemOperationTypeUnmap
Unmap operation.
Definition: hip_runtime_api.h:6425
@ hipMemAllocationGranularityMinimum
Minimum granularity.
Definition: hip_runtime_api.h:6405
@ hipMemAllocationGranularityRecommended
Recommended granularity for performance.
Definition: hip_runtime_api.h:6406
@ hipArraySparseSubresourceTypeSparseLevel
Sparse level.
Definition: hip_runtime_api.h:6434
@ hipArraySparseSubresourceTypeMiptail
Miptail.
Definition: hip_runtime_api.h:6435
hipError_t hipSetupArgument(const void *arg, size_t size, size_t offset)
Set a kernel argument.
hipError_t __hipPopCallConfiguration(dim3 *gridDim, dim3 *blockDim, size_t *sharedMem, hipStream_t *stream)
Pop configuration of a kernel launch.
hipError_t __hipPushCallConfiguration(dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0))
Push configuration of a kernel launch.
hipError_t hipExtLaunchKernel(const void *function_address, dim3 numBlocks, dim3 dimBlocks, void **args, size_t sharedMemBytes, hipStream_t stream, hipEvent_t startEvent, hipEvent_t stopEvent, int flags)
Launches kernel from the pointer address, with arguments and shared memory on stream.
hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0))
Configure a kernel launch.
hipError_t hipLaunchByPtr(const void *func)
Launch a kernel.
hipError_t hipLaunchKernel(const void *function_address, dim3 numBlocks, dim3 dimBlocks, void **args, size_t sharedMemBytes __dparm(0), hipStream_t stream __dparm(0))
C compliant kernel launch API.
hipError_t hipDrvMemcpy2DUnaligned(const hip_Memcpy2D *pCopy)
hipError_t hipCtxGetFlags(unsigned int *flags)
Return flags used for creating default context.
hipError_t hipCtxPopCurrent(hipCtx_t *ctx)
Pop the current/default context and return the popped context.
hipError_t hipCtxGetSharedMemConfig(hipSharedMemConfig *pConfig)
Get Shared memory bank configuration.
hipError_t hipCtxGetCurrent(hipCtx_t *ctx)
Get the handle of the current/ default context.
hipError_t hipCtxSetCacheConfig(hipFuncCache_t cacheConfig)
Set L1/Shared cache partition.
hipError_t hipCtxSetCurrent(hipCtx_t ctx)
Set the passed context as current/default.
hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags)
Enables direct access to memory allocations in a peer context.
hipError_t hipCtxGetDevice(hipDevice_t *device)
Get the handle of the device associated with current/default context.
hipError_t hipCtxDestroy(hipCtx_t ctx)
Destroy a HIP context.
hipError_t hipCtxPushCurrent(hipCtx_t ctx)
Push the context to be set as current/ default context.
hipError_t hipCtxGetCacheConfig(hipFuncCache_t *cacheConfig)
Set Cache configuration for a specific function.
hipError_t hipCtxCreate(hipCtx_t *ctx, unsigned int flags, hipDevice_t device)
Create a context and set it as current/ default context.
hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int *apiVersion)
Returns the approximate HIP api version.
hipError_t hipCtxSynchronize(void)
Blocks until the default context has completed all preceding requested tasks.
hipError_t hipCtxSetSharedMemConfig(hipSharedMemConfig config)
Set Shared memory bank configuration.
hipError_t hipCtxDisablePeerAccess(hipCtx_t peerCtx)
Disable direct access from current context's virtual address space to memory allocations physically l...
hipError_t hipDevicePrimaryCtxSetFlags(hipDevice_t dev, unsigned int flags)
Set flags for the primary context.
hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int *flags, int *active)
Get the state of the primary context.
hipError_t hipDevicePrimaryCtxRelease(hipDevice_t dev)
Release the primary context on the GPU.
hipError_t hipDevicePrimaryCtxRetain(hipCtx_t *pctx, hipDevice_t dev)
Retain the primary context on the GPU.
hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev)
Resets the primary context on the GPU.
hipError_t hipGetDeviceFlags(unsigned int *flags)
Gets the flags set for current device.
hipError_t hipIpcGetEventHandle(hipIpcEventHandle_t *handle, hipEvent_t event)
Gets an opaque interprocess handle for an event.
hipError_t hipDeviceGetDefaultMemPool(hipMemPool_t *mem_pool, int device)
Returns the default memory pool of the specified device.
hipError_t hipDeviceGetSharedMemConfig(hipSharedMemConfig *pConfig)
Returns bank width of shared memory for current device.
hipError_t hipDeviceSetMemPool(int device, hipMemPool_t mem_pool)
Sets the current memory pool of a device.
hipError_t hipIpcOpenMemHandle(void **devPtr, hipIpcMemHandle_t handle, unsigned int flags)
Opens an interprocess memory handle exported from another process and returns a device pointer usable...
hipError_t hipGetDeviceProperties(hipDeviceProp_t *prop, int deviceId)
Returns device properties.
hipError_t hipDeviceGetCacheConfig(hipFuncCache_t *cacheConfig)
Get Cache configuration for a specific Device.
hipError_t hipSetDevice(int deviceId)
Set default device to be used for subsequent hip API calls from this thread.
hipError_t hipExtGetLinkTypeAndHopCount(int device1, int device2, uint32_t *linktype, uint32_t *hopcount)
Returns the link type and hop count between two devices.
hipError_t hipSetDeviceFlags(unsigned flags)
The current device behavior is changed according the flags passed.
hipError_t hipDeviceGetAttribute(int *pi, hipDeviceAttribute_t attr, int deviceId)
Query for a specific device attribute.
hipError_t hipGetDevice(int *deviceId)
Return the default device id for the calling host thread.
hipError_t hipGetDeviceCount(int *count)
Return number of compute-capable devices.
hipError_t hipDeviceGetMemPool(hipMemPool_t *mem_pool, int device)
Gets the current memory pool for the specified device.
hipError_t hipDeviceReset(void)
The state of current device is discarded and updated to a fresh state.
hipError_t hipDeviceGetLimit(size_t *pValue, enum hipLimit_t limit)
Get Resource limits of current device.
hipError_t hipDeviceSetSharedMemConfig(hipSharedMemConfig config)
The bank width of shared memory on current device is set.
hipError_t hipDeviceSetLimit(enum hipLimit_t limit, size_t value)
Set Resource limits of current device.
hipError_t hipDeviceSetCacheConfig(hipFuncCache_t cacheConfig)
Set L1/Shared cache partition.
hipError_t hipIpcCloseMemHandle(void *devPtr)
Close memory mapped with hipIpcOpenMemHandle.
hipError_t hipIpcOpenEventHandle(hipEvent_t *event, hipIpcEventHandle_t handle)
Opens an interprocess event handles.
hipError_t hipDeviceSynchronize(void)
Waits on all active streams on current device.
hipError_t hipChooseDevice(int *device, const hipDeviceProp_t *prop)
Device which matches hipDeviceProp_t is returned.
hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t *handle, void *devPtr)
Gets an interprocess memory handle for an existing device memory allocation.
hipError_t hipInit(unsigned int flags)
Explicitly initializes the HIP runtime.
hipError_t hipDeviceComputeCapability(int *major, int *minor, hipDevice_t device)
Returns the compute capability of the device.
hipError_t hipDeviceGetName(char *name, int len, hipDevice_t device)
Returns an identifer string for the device.
hipError_t hipDeviceGetByPCIBusId(int *device, const char *pciBusId)
Returns a handle to a compute device.
hipError_t hipDeviceGetUuid(hipUUID *uuid, hipDevice_t device)
Returns an UUID for the device.[BETA].
hipError_t hipDeviceTotalMem(size_t *bytes, hipDevice_t device)
Returns the total amount of memory on the device.
hipError_t hipDeviceGetPCIBusId(char *pciBusId, int len, int device)
Returns a PCI Bus Id string for the device, overloaded to take int device ID.
hipError_t hipDeviceGet(hipDevice_t *device, int ordinal)
Returns a handle to a compute device.
hipError_t hipRuntimeGetVersion(int *runtimeVersion)
Returns the approximate HIP Runtime version.
hipError_t hipDeviceGetP2PAttribute(int *value, hipDeviceP2PAttr attr, int srcDevice, int dstDevice)
Returns a value for attr of link between two devices.
hipError_t hipDriverGetVersion(int *driverVersion)
Returns the approximate HIP driver version.
const char * hipGetErrorString(hipError_t hipError)
Return handy text string message to explain the error which occurred.
hipError_t hipPeekAtLastError(void)
Return last error returned by any HIP runtime API call.
hipError_t hipGetLastError(void)
Return last error returned by any HIP runtime API call and resets the stored error code to hipSuccess...
const char * hipGetErrorName(hipError_t hip_error)
Return name of the specified error code in text form.
hipError_t hipEventSynchronize(hipEvent_t event)
Wait for an event to complete.
hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream)
Record an event in the specified stream.
hipError_t hipEventQuery(hipEvent_t event)
Query event status.
hipError_t hipEventCreate(hipEvent_t *event)
hipError_t hipEventDestroy(hipEvent_t event)
Destroy the specified event.
hipError_t hipEventElapsedTime(float *ms, hipEvent_t start, hipEvent_t stop)
Return the elapsed time between two events.
hipError_t hipEventCreateWithFlags(hipEvent_t *event, unsigned flags)
Create an event with the specified flags.
hipError_t hipFuncSetSharedMemConfig(const void *func, hipSharedMemConfig config)
Set shared memory configuation for a specific function.
hipError_t hipFuncSetAttribute(const void *func, hipFuncAttribute attr, int value)
Set attribute for a specific function.
hipError_t hipFuncSetCacheConfig(const void *func, hipFuncCache_t config)
Set Cache configuration for a specific function.
hipMemAllocationHandleType
Definition: hip_runtime_api.h:852
hipGLDeviceList
Definition: hip_runtime_api.h:1040
hipMemRangeAttribute
Definition: hip_runtime_api.h:726
#define hipMemAttachSingle
Definition: hip_runtime_api.h:621
hipMemoryAdvise
Definition: hip_runtime_api.h:689
#define hipArrayDefault
Definition: hip_runtime_api.h:663
hipSharedMemConfig
Definition: hip_runtime_api.h:923
hipGraphNodeType
Definition: hip_runtime_api.h:1091
#define hipMemAttachGlobal
Definition: hip_runtime_api.h:615
struct hipMemPoolProps hipMemPoolProps
hipFuncAttribute
Definition: hip_runtime_api.h:906
hipUserObjectRetainFlags
Definition: hip_runtime_api.h:1202
struct hipMemAccessDesc hipMemAccessDesc
hipStreamUpdateCaptureDependenciesFlags
Definition: hip_runtime_api.h:1187
struct ihipGraph * hipGraph_t
Definition: hip_runtime_api.h:1070
hipFuncCache_t
Definition: hip_runtime_api.h:914
hipUserObjectFlags
Definition: hip_runtime_api.h:1198
hipGraphMemAttributeType
Definition: hip_runtime_api.h:1192
struct hipExternalSemaphoreWaitParams_st hipExternalSemaphoreWaitParams
hipMemPoolAttr
Definition: hip_runtime_api.h:744
struct hipUserObject * hipUserObject_t
Definition: hip_runtime_api.h:1083
hipGraphicsRegisterFlags
Definition: hip_runtime_api.h:1053
struct hipMemLocation hipMemLocation
hipMemRangeCoherencyMode
Definition: hip_runtime_api.h:712
hipMemAccessFlags
Definition: hip_runtime_api.h:822
struct hipGraphExec * hipGraphExec_t
Definition: hip_runtime_api.h:1078
hipGraphExecUpdateResult
Definition: hip_runtime_api.h:1160
hipStreamCaptureStatus
Definition: hip_runtime_api.h:1180
hipDeviceAttribute_t
Definition: hip_runtime_api.h:329
#define hipHostMallocDefault
Definition: hip_runtime_api.h:591
hipMemAllocationType
Definition: hip_runtime_api.h:839
struct hipGraphNode * hipGraphNode_t
Definition: hip_runtime_api.h:1074
hipGraphInstantiateFlags
Definition: hip_runtime_api.h:1206
hipMemLocationType
Definition: hip_runtime_api.h:804
struct dim3 dim3
struct hipMemPoolPtrExportData hipMemPoolPtrExportData
@ hipMemHandleTypeWin32
Allows a Win32 NT handle for exporting. (HANDLE)
Definition: hip_runtime_api.h:855
@ hipMemHandleTypeWin32Kmt
Allows a Win32 KMT handle for exporting. (D3DKMT_HANDLE)
Definition: hip_runtime_api.h:856
@ hipMemHandleTypeNone
Does not allow any export mechanism.
Definition: hip_runtime_api.h:853
@ hipMemHandleTypePosixFileDescriptor
Allows a file descriptor for exporting. Permitted only on POSIX systems.
Definition: hip_runtime_api.h:854
@ hipGLDeviceListNextFrame
frame.
Definition: hip_runtime_api.h:1044
@ hipGLDeviceListAll
All hip devices used by current OpenGL context.
Definition: hip_runtime_api.h:1041
@ hipGLDeviceListCurrentFrame
frame
Definition: hip_runtime_api.h:1042
@ hipMemRangeAttributeLastPrefetchLocation
prefetched
Definition: hip_runtime_api.h:732
@ hipMemRangeAttributePreferredLocation
The preferred location of the range.
Definition: hip_runtime_api.h:729
@ hipMemRangeAttributeAccessedBy
Definition: hip_runtime_api.h:730
@ hipMemRangeAttributeReadMostly
Definition: hip_runtime_api.h:727
@ hipMemRangeAttributeCoherencyMode
Definition: hip_runtime_api.h:734
@ hipMemAdviseUnsetAccessedBy
Definition: hip_runtime_api.h:698
@ hipMemAdviseUnsetCoarseGrain
Restores cache coherency policy back to fine-grain.
Definition: hip_runtime_api.h:705
@ hipMemAdviseSetCoarseGrain
Definition: hip_runtime_api.h:700
@ hipMemAdviseUnsetPreferredLocation
Clear the preferred location for the data.
Definition: hip_runtime_api.h:695
@ hipMemAdviseSetAccessedBy
Definition: hip_runtime_api.h:696
@ hipMemAdviseSetPreferredLocation
Definition: hip_runtime_api.h:693
@ hipMemAdviseSetReadMostly
Definition: hip_runtime_api.h:690
@ hipMemAdviseUnsetReadMostly
Undo the effect of hipMemAdviseSetReadMostly.
Definition: hip_runtime_api.h:692
@ hipSharedMemBankSizeFourByte
Definition: hip_runtime_api.h:925
@ hipSharedMemBankSizeEightByte
Definition: hip_runtime_api.h:927
@ hipSharedMemBankSizeDefault
The compiler selects a device-specific value for the banking.
Definition: hip_runtime_api.h:924
@ hipGraphNodeTypeGraph
Node which executes an embedded graph.
Definition: hip_runtime_api.h:1096
@ hipGraphNodeTypeMemset
Memset node.
Definition: hip_runtime_api.h:1094
@ hipGraphNodeTypeEventRecord
External event record node.
Definition: hip_runtime_api.h:1099
@ hipGraphNodeTypeExtSemaphoreSignal
External Semaphore signal node.
Definition: hip_runtime_api.h:1100
@ hipGraphNodeTypeMemcpy
Memcpy node.
Definition: hip_runtime_api.h:1093
@ hipGraphNodeTypeWaitEvent
External event wait node.
Definition: hip_runtime_api.h:1098
@ hipGraphNodeTypeKernel
GPU kernel node.
Definition: hip_runtime_api.h:1092
@ hipGraphNodeTypeHost
Host (executable) node.
Definition: hip_runtime_api.h:1095
@ hipGraphNodeTypeMemcpyFromSymbol
MemcpyFromSymbol node.
Definition: hip_runtime_api.h:1102
@ hipGraphNodeTypeMemcpyToSymbol
MemcpyToSymbol node.
Definition: hip_runtime_api.h:1103
@ hipGraphNodeTypeEmpty
Empty (no-op) node.
Definition: hip_runtime_api.h:1097
@ hipGraphNodeTypeExtSemaphoreWait
External Semaphore wait node.
Definition: hip_runtime_api.h:1101
@ hipGraphUserObjectMove
Add new reference or retain.
Definition: hip_runtime_api.h:1203
@ hipStreamAddCaptureDependencies
Add new nodes to the dependency set.
Definition: hip_runtime_api.h:1188
@ hipStreamSetCaptureDependencies
Replace the dependency set with the new nodes.
Definition: hip_runtime_api.h:1189
@ hipFuncCachePreferNone
no preference for shared memory or L1 (default)
Definition: hip_runtime_api.h:915
@ hipFuncCachePreferEqual
prefer equal size L1 cache and shared memory
Definition: hip_runtime_api.h:918
@ hipFuncCachePreferL1
prefer larger L1 cache and smaller shared memory
Definition: hip_runtime_api.h:917
@ hipFuncCachePreferShared
prefer larger shared memory and smaller L1 cache
Definition: hip_runtime_api.h:916
@ hipUserObjectNoDestructorSync
Destructor execution is not synchronized.
Definition: hip_runtime_api.h:1199
@ hipGraphMemAttrReservedMemHigh
High watermark of memory, in bytes, currently allocated for graphs.
Definition: hip_runtime_api.h:1196
@ hipGraphMemAttrUsedMemCurrent
Amount of memory, in bytes, currently associated with graphs.
Definition: hip_runtime_api.h:1193
@ hipGraphMemAttrUsedMemHigh
High watermark of memory, in bytes, associated with graphs since the last time.
Definition: hip_runtime_api.h:1194
@ hipGraphMemAttrReservedMemCurrent
Amount of memory, in bytes, currently allocated for graphs.
Definition: hip_runtime_api.h:1195
@ hipMemPoolAttrUsedMemCurrent
Definition: hip_runtime_api.h:791
@ hipMemPoolAttrReservedMemHigh
Definition: hip_runtime_api.h:786
@ hipMemPoolAttrReservedMemCurrent
Definition: hip_runtime_api.h:780
@ hipMemPoolAttrReleaseThreshold
Definition: hip_runtime_api.h:775
@ hipMemPoolAttrUsedMemHigh
Definition: hip_runtime_api.h:797
@ hipMemPoolReuseAllowInternalDependencies
Definition: hip_runtime_api.h:766
@ hipMemPoolReuseFollowEventDependencies
Definition: hip_runtime_api.h:753
@ hipMemPoolReuseAllowOpportunistic
Definition: hip_runtime_api.h:759
@ hipGraphicsRegisterFlagsReadOnly
HIP will not write to this registered resource.
Definition: hip_runtime_api.h:1055
@ hipGraphicsRegisterFlagsTextureGather
HIP will perform texture gather operations on this registered resource.
Definition: hip_runtime_api.h:1059
@ hipGraphicsRegisterFlagsWriteDiscard
HIP will only write and will not read from this registered resource.
Definition: hip_runtime_api.h:1056
@ hipGraphicsRegisterFlagsSurfaceLoadStore
HIP will bind this resource to a surface.
Definition: hip_runtime_api.h:1058
@ hipMemRangeCoherencyModeFineGrain
Definition: hip_runtime_api.h:713
@ hipMemRangeCoherencyModeIndeterminate
Definition: hip_runtime_api.h:717
@ hipMemRangeCoherencyModeCoarseGrain
Definition: hip_runtime_api.h:715
@ hipMemAccessFlagsProtRead
Set the address range read accessible.
Definition: hip_runtime_api.h:824
@ hipMemAccessFlagsProtNone
Default, make the address range not accessible.
Definition: hip_runtime_api.h:823
@ hipMemAccessFlagsProtReadWrite
Set the address range read-write accessible.
Definition: hip_runtime_api.h:825
@ hipGraphExecUpdateErrorNotSupported
The update failed because something about the node is not supported.
Definition: hip_runtime_api.h:1170
@ hipGraphExecUpdateErrorNodeTypeChanged
The update failed because a node type changed.
Definition: hip_runtime_api.h:1165
@ hipGraphExecUpdateErrorTopologyChanged
The update failed because the topology changed.
Definition: hip_runtime_api.h:1164
@ hipGraphExecUpdateError
Definition: hip_runtime_api.h:1162
@ hipGraphExecUpdateErrorFunctionChanged
The update failed because the function of a kernel node changed.
Definition: hip_runtime_api.h:1166
@ hipGraphExecUpdateSuccess
The update succeeded.
Definition: hip_runtime_api.h:1161
@ hipGraphExecUpdateErrorParametersChanged
The update failed because the parameters changed in a way that is not supported.
Definition: hip_runtime_api.h:1168
@ hipStreamCaptureStatusInvalidated
Definition: hip_runtime_api.h:1183
@ hipStreamCaptureStatusNone
Stream is not capturing.
Definition: hip_runtime_api.h:1181
@ hipStreamCaptureStatusActive
Stream is actively capturing.
Definition: hip_runtime_api.h:1182
@ hipDeviceAttributeDirectManagedMemAccessFromHost
Definition: hip_runtime_api.h:347
@ hipDeviceAttributeSurfaceAlignment
Cuda only. Alignment requirement for surfaces.
Definition: hip_runtime_api.h:417
@ hipDeviceAttributeMaxGridDimX
Max grid size in width.
Definition: hip_runtime_api.h:364
@ hipDeviceAttributeMaxSurfaceCubemapLayered
Cuda only. Maximum dimension of Cubemap layered surface.
Definition: hip_runtime_api.h:373
@ hipDeviceAttributeMaxSurface3D
Maximum dimension (width, height, depth) of 3D surface.
Definition: hip_runtime_api.h:371
@ hipDeviceAttributeMaxPitch
Maximum pitch in bytes allowed by memory copies.
Definition: hip_runtime_api.h:394
@ hipDeviceAttributeTccDriver
Cuda only. Whether device is a Tesla device using TCC driver.
Definition: hip_runtime_api.h:418
@ hipDeviceAttributeHostNativeAtomicSupported
Cuda only. Link between the device and the host supports native atomic operations.
Definition: hip_runtime_api.h:350
@ hipDeviceAttributePageableMemoryAccessUsesHostPageTables
Device accesses pageable memory via the host's page tables.
Definition: hip_runtime_api.h:403
@ hipDeviceAttributeMaxBlockDimY
Max block size in height.
Definition: hip_runtime_api.h:362
@ hipDeviceAttributeMaxSurfaceCubemap
Cuda only. Maximum dimensions of Cubemap surface.
Definition: hip_runtime_api.h:372
@ hipDeviceAttributeName
Device name.
Definition: hip_runtime_api.h:400
@ hipDeviceAttributePageableMemoryAccess
Definition: hip_runtime_api.h:401
@ hipDeviceAttributeClockRate
Peak clock frequency in kilohertz.
Definition: hip_runtime_api.h:338
@ hipDeviceAttributeMaxTexture1DMipmap
Cuda only. Maximum size of 1D mipmapped texture.
Definition: hip_runtime_api.h:378
@ hipDeviceAttributeComputeCapabilityMajor
Major compute capability version number.
Definition: hip_runtime_api.h:358
@ hipDeviceAttributeGlobalL1CacheSupported
Cuda only. Device supports caching globals in L1.
Definition: hip_runtime_api.h:349
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem
Definition: hip_runtime_api.h:445
@ hipDeviceAttributeAccessPolicyMaxWindowSize
Cuda only. The maximum size of the window policy in bytes.
Definition: hip_runtime_api.h:333
@ hipDeviceAttributeMaxTexture3DHeight
Maximum dimension height of 3D texture.
Definition: hip_runtime_api.h:386
@ hipDeviceAttributeComputeCapabilityMinor
Minor compute capability version number.
Definition: hip_runtime_api.h:397
@ hipDeviceAttributeMaxTextureCubemap
Cuda only. Maximum dimensions of Cubemap texture.
Definition: hip_runtime_api.h:389
@ hipDeviceAttributeDeviceOverlap
Definition: hip_runtime_api.h:345
@ hipDeviceAttributeMaxTexture2DLinear
Cuda only. Maximum dimensions (width, height, pitch) of 2D textures bound to pitched memory.
Definition: hip_runtime_api.h:383
@ hipDeviceAttributeMaxSurface2D
Maximum dimension (width, height) of 2D surface.
Definition: hip_runtime_api.h:369
@ hipDeviceAttributeMaxSurface1DLayered
Cuda only. Maximum dimensions of 1D layered surface.
Definition: hip_runtime_api.h:368
@ hipDeviceAttributeHdpRegFlushCntl
Address of the HDP_REG_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:438
@ hipDeviceAttributeComputeMode
Compute mode that device is currently in.
Definition: hip_runtime_api.h:339
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedFunc
Definition: hip_runtime_api.h:439
@ hipDeviceAttributeAsicRevision
Revision of the GPU in this device.
Definition: hip_runtime_api.h:448
@ hipDeviceAttributeCooperativeMultiDeviceLaunch
Support cooperative launch on multiple devices.
Definition: hip_runtime_api.h:344
@ hipDeviceAttributeMaxTexture2DHeight
Maximum dimension hight of 2D texture.
Definition: hip_runtime_api.h:380
@ hipDeviceAttributePersistingL2CacheMaxSize
Cuda11 only. Maximum l2 persisting lines capacity in bytes.
Definition: hip_runtime_api.h:407
@ hipDeviceAttributeEccEnabled
Whether ECC support is enabled.
Definition: hip_runtime_api.h:332
@ hipDeviceAttributeCanUseHostPointerForRegisteredMem
Definition: hip_runtime_api.h:336
@ hipDeviceAttributePciBusId
PCI Bus ID.
Definition: hip_runtime_api.h:404
@ hipDeviceAttributeL2CacheSize
Size of L2 cache in bytes. 0 if the device doesn't have L2 cache.
Definition: hip_runtime_api.h:354
@ hipDeviceAttributeKernelExecTimeout
Run time limit for kernels executed on the device.
Definition: hip_runtime_api.h:353
@ hipDeviceAttributeMaxThreadsDim
Maximum dimension of a block.
Definition: hip_runtime_api.h:391
@ hipDeviceAttributeSingleToDoublePrecisionPerfRatio
Cuda only. Performance ratio of single precision to double precision.
Definition: hip_runtime_api.h:415
@ hipDeviceAttributeMaxGridDimY
Max grid size in height.
Definition: hip_runtime_api.h:365
@ hipDeviceAttributeMultiprocessorCount
Number of multiprocessors on the device.
Definition: hip_runtime_api.h:399
@ hipDeviceAttributeUuid
Cuda only. Unique ID in 16 byte.
Definition: hip_runtime_api.h:424
@ hipDeviceAttributeMaxRegistersPerMultiprocessor
32-bit registers available per block.
Definition: hip_runtime_api.h:410
@ hipDeviceAttributeGcnArchName
Device gcnArch name in 256 bytes.
Definition: hip_runtime_api.h:436
@ hipDeviceAttributeIsMultiGpuBoard
Multiple GPU devices.
Definition: hip_runtime_api.h:352
@ hipDeviceAttributeSharedMemPerBlockOptin
Cuda only. Maximum shared memory per block usable by special opt in.
Definition: hip_runtime_api.h:413
@ hipDeviceAttributeMaxSurface2DLayered
Cuda only. Maximum dimensions of 2D layered surface.
Definition: hip_runtime_api.h:370
@ hipDeviceAttributeMemoryClockRate
Peak memory clock frequency in kilohertz.
Definition: hip_runtime_api.h:396
@ hipDeviceAttributeGcnArch
Device gcn architecture.
Definition: hip_runtime_api.h:435
@ hipDeviceAttributeMaxGridDimZ
Max grid size in depth.
Definition: hip_runtime_api.h:366
@ hipDeviceAttributeHdpMemFlushCntl
Address of the HDP_MEM_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:437
@ hipDeviceAttributeFineGrainSupport
'1' if Device supports fine grain, '0' otherwise
Definition: hip_runtime_api.h:454
@ hipDeviceAttributeCooperativeLaunch
Support cooperative launch.
Definition: hip_runtime_api.h:343
@ hipDeviceAttributeUnifiedAddressing
Cuda only. An unified address space shared with the host.
Definition: hip_runtime_api.h:423
@ hipDeviceAttributeAsyncEngineCount
Cuda only. Asynchronous engines number.
Definition: hip_runtime_api.h:334
@ hipDeviceAttributeMultiGpuBoardGroupID
Cuda only. Unique ID of device group on the same multi-GPU board.
Definition: hip_runtime_api.h:398
@ hipDeviceAttributeStreamPrioritiesSupported
Cuda only. Whether to support stream priorities.
Definition: hip_runtime_api.h:416
@ hipDeviceAttributeMaxSharedMemoryPerBlock
Maximum shared memory available per block in bytes.
Definition: hip_runtime_api.h:412
@ hipDeviceAttributeLocalL1CacheSupported
caching locals in L1 is supported
Definition: hip_runtime_api.h:355
@ hipDeviceAttributeCanUseStreamWaitValue
Definition: hip_runtime_api.h:449
@ hipDeviceAttributeMaxRegistersPerBlock
Definition: hip_runtime_api.h:408
@ hipDeviceAttributeMaxThreadsPerBlock
Maximum number of threads per block.
Definition: hip_runtime_api.h:392
@ hipDeviceAttributeMemoryBusWidth
Global memory bus width in bits.
Definition: hip_runtime_api.h:395
@ hipDeviceAttributeComputePreemptionSupported
Cuda only. Device supports Compute Preemption.
Definition: hip_runtime_api.h:340
@ hipDeviceAttributeMaxSurface1D
Maximum size of 1D surface.
Definition: hip_runtime_api.h:367
@ hipDeviceAttributeMaxTexture3DAlt
Cuda only. Maximum dimensions of alternate 3D texture.
Definition: hip_runtime_api.h:388
@ hipDeviceAttributeMaxTexture1DLinear
Definition: hip_runtime_api.h:376
@ hipDeviceAttributeMaxTexture2DGather
Cuda only. Maximum dimensions of 2D texture if gather operations performed.
Definition: hip_runtime_api.h:381
@ hipDeviceAttributeWallClockRate
Constant frequency of wall clock in kilohertz.
Definition: hip_runtime_api.h:455
@ hipDeviceAttributePciDeviceId
PCI Device ID.
Definition: hip_runtime_api.h:405
@ hipDeviceAttributeCanMapHostMemory
Whether host memory can be mapped into device address space.
Definition: hip_runtime_api.h:335
@ hipDeviceAttributeMaxTexture1DWidth
Maximum size of 1D texture.
Definition: hip_runtime_api.h:374
@ hipDeviceAttributeConcurrentManagedAccess
Device can coherently access managed memory concurrently with the CPU.
Definition: hip_runtime_api.h:342
@ hipDeviceAttributeArch
Device architecture.
Definition: hip_runtime_api.h:433
@ hipDeviceAttributeManagedMemory
Device supports allocating managed memory on this system.
Definition: hip_runtime_api.h:359
@ hipDeviceAttributeIntegrated
Device is integrated GPU.
Definition: hip_runtime_api.h:351
@ hipDeviceAttributeMaxTexture2DLayered
Cuda only. Maximum dimensions of 2D layered texture.
Definition: hip_runtime_api.h:382
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedGridDim
Definition: hip_runtime_api.h:441
@ hipDeviceAttributeMaxTexture3DDepth
Maximum dimension depth of 3D texture.
Definition: hip_runtime_api.h:387
@ hipDeviceAttributeImageSupport
'1' if Device supports image, '0' otherwise.
Definition: hip_runtime_api.h:451
@ hipDeviceAttributeTotalGlobalMem
Global memory available on devicice.
Definition: hip_runtime_api.h:422
@ hipDeviceAttributeMaxBlocksPerMultiProcessor
Cuda only. Max block size per multiprocessor.
Definition: hip_runtime_api.h:360
@ hipDeviceAttributeIsLargeBar
Whether it is LargeBar.
Definition: hip_runtime_api.h:447
@ hipDeviceAttributeMaxTexture2DWidth
Maximum dimension width of 2D texture.
Definition: hip_runtime_api.h:379
@ hipDeviceAttributeMaxBlockDimX
Max block size in width.
Definition: hip_runtime_api.h:361
@ hipDeviceAttributeMaxTexture3DWidth
Maximum dimension width of 3D texture.
Definition: hip_runtime_api.h:385
@ hipDeviceAttributeTotalConstantMemory
Constant memory size in bytes.
Definition: hip_runtime_api.h:421
@ hipDeviceAttributeTextureAlignment
Alignment requirement for textures.
Definition: hip_runtime_api.h:419
@ hipDeviceAttributeMaxTexture1DLayered
Cuda only. Maximum dimensions of 1D layered texture.
Definition: hip_runtime_api.h:375
@ hipDeviceAttributeMaxSharedMemoryPerMultiprocessor
Maximum Shared Memory PerMultiprocessor.
Definition: hip_runtime_api.h:434
@ hipDeviceAttributeReservedSharedMemPerBlock
Cuda11 only. Shared memory reserved by CUDA driver per block.
Definition: hip_runtime_api.h:411
@ hipDeviceAttributeConcurrentKernels
Device can possibly execute multiple kernels concurrently.
Definition: hip_runtime_api.h:341
@ hipDeviceAttributeLuid
Cuda only. 8-byte locally unique identifier in 8 bytes. Undefined on TCC and non-Windows platforms.
Definition: hip_runtime_api.h:356
@ hipDeviceAttributePciDomainID
PCI Domain ID.
Definition: hip_runtime_api.h:406
@ hipDeviceAttributeMaxThreadsPerMultiProcessor
Maximum resident threads per multiprocessor.
Definition: hip_runtime_api.h:393
@ hipDeviceAttributeTexturePitchAlignment
Pitch alignment requirement for 2D texture references bound to pitched memory;.
Definition: hip_runtime_api.h:420
@ hipDeviceAttributePhysicalMultiProcessorCount
Definition: hip_runtime_api.h:452
@ hipDeviceAttributeSharedMemPerMultiprocessor
Cuda only. Shared memory available per multiprocessor.
Definition: hip_runtime_api.h:414
@ hipDeviceAttributeLuidDeviceNodeMask
Cuda only. Luid device node mask. Undefined on TCC and non-Windows platforms.
Definition: hip_runtime_api.h:357
@ hipDeviceAttributeMaxTextureCubemapLayered
Cuda only. Maximum dimensions of Cubemap layered texture.
Definition: hip_runtime_api.h:390
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedBlockDim
Definition: hip_runtime_api.h:443
@ hipDeviceAttributeVirtualMemoryManagementSupported
Device supports HIP virtual memory management.
Definition: hip_runtime_api.h:427
@ hipDeviceAttributeMemoryPoolsSupported
Device supports HIP Stream Ordered Memory Allocator.
Definition: hip_runtime_api.h:426
@ hipDeviceAttributeClockInstructionRate
Frequency in khz of the timer used by the device-side "clock*".
Definition: hip_runtime_api.h:432
@ hipDeviceAttributeMaxTexture2DMipmap
Cuda only. Maximum dimensions of 2D mipmapped texture.
Definition: hip_runtime_api.h:384
@ hipDeviceAttributeMaxBlockDimZ
Max block size in depth.
Definition: hip_runtime_api.h:363
@ hipDeviceAttributeWarpSize
Warp size in threads.
Definition: hip_runtime_api.h:425
@ hipMemAllocationTypePinned
Definition: hip_runtime_api.h:844
@ hipGraphInstantiateFlagAutoFreeOnLaunch
Automatically free memory allocated in a graph before relaunching.
Definition: hip_runtime_api.h:1207
@ hipMemLocationTypeDevice
Device location, thus it's HIP device ID.
Definition: hip_runtime_api.h:806
hipError_t hipGraphKernelNodeSetParams(hipGraphNode_t node, const hipKernelNodeParams *pNodeParams)
Sets a kernel node's parameters.
hipError_t hipGraphNodeGetDependencies(hipGraphNode_t node, hipGraphNode_t *pDependencies, size_t *pNumDependencies)
Returns a node's dependencies.
hipError_t hipGraphCreate(hipGraph_t *pGraph, unsigned int flags)
Creates a graph.
hipError_t hipGraphAddMemcpyNode1D(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, void *dst, const void *src, size_t count, hipMemcpyKind kind)
Creates a 1D memcpy node and adds it to a graph.
hipError_t hipDeviceSetGraphMemAttribute(int device, hipGraphMemAttributeType attr, void *value)
Set the mem attribute for graphs.
hipError_t hipGraphMemcpyNodeSetParams(hipGraphNode_t node, const hipMemcpy3DParms *pNodeParams)
Sets a memcpy node's parameters.
hipError_t hipUserObjectCreate(hipUserObject_t *object_out, void *ptr, hipHostFn_t destroy, unsigned int initialRefcount, unsigned int flags)
Create an instance of userObject to manage lifetime of a resource.
hipError_t hipGraphExecUpdate(hipGraphExec_t hGraphExec, hipGraph_t hGraph, hipGraphNode_t *hErrorNode_out, hipGraphExecUpdateResult *updateResult_out)
Check whether an executable graph can be updated with a graph and perform the update if * possible.
hipError_t hipGraphNodeFindInClone(hipGraphNode_t *pNode, hipGraphNode_t originalNode, hipGraph_t clonedGraph)
Finds a cloned version of a node.
hipError_t hipLaunchHostFunc(hipStream_t stream, hipHostFn_t fn, void *userData)
Enqueues a host function call in a stream.
hipError_t hipGraphAddEventWaitNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, hipEvent_t event)
Creates an event wait node and adds it to a graph.
hipError_t hipGraphMemcpyNodeSetParamsToSymbol(hipGraphNode_t node, const void *symbol, const void *src, size_t count, size_t offset, hipMemcpyKind kind)
Sets a memcpy node's parameters to copy to a symbol on the device.
hipError_t hipStreamIsCapturing(hipStream_t stream, hipStreamCaptureStatus *pCaptureStatus)
Get stream's capture state.
hipError_t hipGraphAddChildGraphNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, hipGraph_t childGraph)
Creates a child graph node and adds it to a graph.
hipError_t hipGraphDestroyNode(hipGraphNode_t node)
Remove a node from the graph.
hipError_t hipGraphMemcpyNodeSetParamsFromSymbol(hipGraphNode_t node, void *dst, const void *symbol, size_t count, size_t offset, hipMemcpyKind kind)
Sets a memcpy node's parameters to copy from a symbol on the device.
hipError_t hipGraphReleaseUserObject(hipGraph_t graph, hipUserObject_t object, unsigned int count)
Release user object from graphs.
hipError_t hipGraphRemoveDependencies(hipGraph_t graph, const hipGraphNode_t *from, const hipGraphNode_t *to, size_t numDependencies)
Removes dependency edges from a graph.
hipError_t hipGraphMemcpyNodeSetParams1D(hipGraphNode_t node, void *dst, const void *src, size_t count, hipMemcpyKind kind)
Sets a memcpy node's parameters to perform a 1-dimensional copy.
hipError_t hipGraphExecMemcpyNodeSetParams1D(hipGraphExec_t hGraphExec, hipGraphNode_t node, void *dst, const void *src, size_t count, hipMemcpyKind kind)
Sets the parameters for a memcpy node in the given graphExec to perform a 1-dimensional copy.
hipError_t hipGraphExecDestroy(hipGraphExec_t graphExec)
Destroys an executable graph.
hipError_t hipGraphExecHostNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t node, const hipHostNodeParams *pNodeParams)
Sets the parameters for a host node in the given graphExec.
hipError_t hipGraphExecChildGraphNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t node, hipGraph_t childGraph)
Updates node parameters in the child graph node in the given graphExec.
hipError_t hipStreamGetCaptureInfo(hipStream_t stream, hipStreamCaptureStatus *pCaptureStatus, unsigned long long *pId)
Get capture status of a stream.
hipError_t hipGraphAddDependencies(hipGraph_t graph, const hipGraphNode_t *from, const hipGraphNode_t *to, size_t numDependencies)
Adds dependency edges to a graph.
hipError_t hipGraphExecKernelNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t node, const hipKernelNodeParams *pNodeParams)
Sets the parameters for a kernel node in the given graphExec.
hipError_t hipGraphNodeGetDependentNodes(hipGraphNode_t node, hipGraphNode_t *pDependentNodes, size_t *pNumDependentNodes)
Returns a node's dependent nodes.
hipError_t hipDeviceGetGraphMemAttribute(int device, hipGraphMemAttributeType attr, void *value)
Get the mem attribute for graphs.
hipError_t hipGraphHostNodeGetParams(hipGraphNode_t node, hipHostNodeParams *pNodeParams)
Returns a host node's parameters.
hipError_t hipGraphInstantiateWithFlags(hipGraphExec_t *pGraphExec, hipGraph_t graph, unsigned long long flags)
Creates an executable graph from a graph.
hipError_t hipGraphUpload(hipGraphExec_t graphExec, hipStream_t stream)
uploads an executable graph in a stream
hipError_t hipGraphExecMemcpyNodeSetParamsToSymbol(hipGraphExec_t hGraphExec, hipGraphNode_t node, const void *symbol, const void *src, size_t count, size_t offset, hipMemcpyKind kind)
Sets the parameters for a memcpy node in the given graphExec to copy to a symbol on the device.
hipError_t hipUserObjectRelease(hipUserObject_t object, unsigned int count)
Release number of references to resource.
hipError_t hipGraphKernelNodeGetParams(hipGraphNode_t node, hipKernelNodeParams *pNodeParams)
Gets kernel node's parameters.
hipError_t hipGraphAddMemcpyNodeFromSymbol(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, void *dst, const void *symbol, size_t count, size_t offset, hipMemcpyKind kind)
Creates a memcpy node to copy from a symbol on the device and adds it to a graph.
hipError_t hipGraphMemcpyNodeGetParams(hipGraphNode_t node, hipMemcpy3DParms *pNodeParams)
Gets a memcpy node's parameters.
hipError_t hipGraphAddEventRecordNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, hipEvent_t event)
Creates an event record node and adds it to a graph.
hipError_t hipStreamUpdateCaptureDependencies(hipStream_t stream, hipGraphNode_t *dependencies, size_t numDependencies, unsigned int flags __dparm(0))
Update the set of dependencies in a capturing stream.
hipError_t hipStreamBeginCapture(hipStream_t stream, hipStreamCaptureMode mode)
Begins graph capture on a stream.
hipError_t hipStreamEndCapture(hipStream_t stream, hipGraph_t *pGraph)
Ends capture on a stream, returning the captured graph.
hipError_t hipUserObjectRetain(hipUserObject_t object, unsigned int count)
Retain number of references to resource.
hipError_t hipGraphNodeGetType(hipGraphNode_t node, hipGraphNodeType *pType)
Returns a node's type.
hipError_t hipGraphExecMemcpyNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t node, hipMemcpy3DParms *pNodeParams)
Sets the parameters for a memcpy node in the given graphExec.
hipError_t hipGraphHostNodeSetParams(hipGraphNode_t node, const hipHostNodeParams *pNodeParams)
Sets a host node's parameters.
hipError_t hipGraphExecEventRecordNodeSetEvent(hipGraphExec_t hGraphExec, hipGraphNode_t hNode, hipEvent_t event)
Sets the event for an event record node in the given graphExec.
hipError_t hipGraphMemsetNodeGetParams(hipGraphNode_t node, hipMemsetParams *pNodeParams)
Gets a memset node's parameters.
hipError_t hipGraphChildGraphNodeGetGraph(hipGraphNode_t node, hipGraph_t *pGraph)
Gets a handle to the embedded graph of a child graph node.
hipError_t hipGraphKernelNodeGetAttribute(hipGraphNode_t hNode, hipKernelNodeAttrID attr, hipKernelNodeAttrValue *value)
Gets a node attribute.
hipError_t hipThreadExchangeStreamCaptureMode(hipStreamCaptureMode *mode)
Swaps the stream capture mode of a thread.
hipError_t hipGraphLaunch(hipGraphExec_t graphExec, hipStream_t stream)
launches an executable graph in a stream
hipError_t hipGraphExecMemsetNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t node, const hipMemsetParams *pNodeParams)
Sets the parameters for a memset node in the given graphExec.
hipError_t hipGraphGetEdges(hipGraph_t graph, hipGraphNode_t *from, hipGraphNode_t *to, size_t *numEdges)
Returns a graph's dependency edges.
hipError_t hipGraphAddKernelNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipKernelNodeParams *pNodeParams)
Creates a kernel execution node and adds it to a graph.
hipError_t hipGraphExecEventWaitNodeSetEvent(hipGraphExec_t hGraphExec, hipGraphNode_t hNode, hipEvent_t event)
Sets the event for an event record node in the given graphExec.
hipError_t hipGraphEventWaitNodeSetEvent(hipGraphNode_t node, hipEvent_t event)
Sets an event wait node's event.
hipError_t hipGraphEventRecordNodeSetEvent(hipGraphNode_t node, hipEvent_t event)
Sets an event record node's event.
hipError_t hipGraphEventWaitNodeGetEvent(hipGraphNode_t node, hipEvent_t *event_out)
Returns the event associated with an event wait node.
hipError_t hipGraphKernelNodeSetAttribute(hipGraphNode_t hNode, hipKernelNodeAttrID attr, const hipKernelNodeAttrValue *value)
Sets a node attribute.
hipError_t hipGraphMemsetNodeSetParams(hipGraphNode_t node, const hipMemsetParams *pNodeParams)
Sets a memset node's parameters.
hipError_t hipGraphEventRecordNodeGetEvent(hipGraphNode_t node, hipEvent_t *event_out)
Returns the event associated with an event record node.
hipError_t hipGraphAddEmptyNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies)
Creates an empty node and adds it to a graph.
hipError_t hipGraphAddMemcpyNodeToSymbol(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const void *symbol, const void *src, size_t count, size_t offset, hipMemcpyKind kind)
Creates a memcpy node to copy to a symbol on the device and adds it to a graph.
hipError_t hipGraphDestroy(hipGraph_t graph)
Destroys a graph.
hipError_t hipGraphRetainUserObject(hipGraph_t graph, hipUserObject_t object, unsigned int count, unsigned int flags)
Retain user object for graphs.
hipError_t hipGraphExecMemcpyNodeSetParamsFromSymbol(hipGraphExec_t hGraphExec, hipGraphNode_t node, void *dst, const void *symbol, size_t count, size_t offset, hipMemcpyKind kind)
Sets the parameters for a memcpy node in the given graphExec to copy from a symbol on the.
hipError_t hipGraphAddHostNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipHostNodeParams *pNodeParams)
Creates a host execution node and adds it to a graph.
hipError_t hipGraphGetNodes(hipGraph_t graph, hipGraphNode_t *nodes, size_t *numNodes)
Returns graph nodes.
hipError_t hipGraphAddMemsetNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipMemsetParams *pMemsetParams)
Creates a memset node and adds it to a graph.
hipError_t hipGraphInstantiate(hipGraphExec_t *pGraphExec, hipGraph_t graph, hipGraphNode_t *pErrorNode, char *pLogBuffer, size_t bufferSize)
Creates an executable graph from a graph.
hipError_t hipDeviceGraphMemTrim(int device)
Free unused memory on specific device used for graph back to OS.
hipError_t hipGraphClone(hipGraph_t *pGraphClone, hipGraph_t originalGraph)
Clones a graph.
hipError_t hipGraphGetRootNodes(hipGraph_t graph, hipGraphNode_t *pRootNodes, size_t *pNumRootNodes)
Returns graph's root nodes.
hipError_t hipGraphAddMemcpyNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipMemcpy3DParms *pCopyParams)
Creates a memcpy node and adds it to a graph.
hipError_t hipStreamGetCaptureInfo_v2(hipStream_t stream, hipStreamCaptureStatus *captureStatus_out, unsigned long long *id_out __dparm(0), hipGraph_t *graph_out __dparm(0), const hipGraphNode_t **dependencies_out __dparm(0), size_t *numDependencies_out __dparm(0))
Get stream's capture state.
hipError_t hipStreamAttachMemAsync(hipStream_t stream, void *dev_ptr, size_t length __dparm(0), unsigned int flags __dparm(hipMemAttachSingle))
Attach memory to a stream asynchronously in HIP.
hipError_t hipMemRangeGetAttributes(void **data, size_t *data_sizes, hipMemRangeAttribute *attributes, size_t num_attributes, const void *dev_ptr, size_t count)
Query attributes of a given memory range in HIP.
hipError_t hipMemAdvise(const void *dev_ptr, size_t count, hipMemoryAdvise advice, int device)
Advise about the usage of a given memory range to HIP.
hipError_t hipMemPrefetchAsync(const void *dev_ptr, size_t count, int device, hipStream_t stream __dparm(0))
Prefetches memory to the specified destination device using HIP.
hipError_t hipMemRangeGetAttribute(void *data, size_t data_size, hipMemRangeAttribute attribute, const void *dev_ptr, size_t count)
Query an attribute of a given memory range in HIP.
hipError_t hipMallocManaged(void **dev_ptr, size_t size, unsigned int flags __dparm(hipMemAttachGlobal))
Allocates memory that will be automatically managed by HIP.
hipError_t hipFreeMipmappedArray(hipMipmappedArray_t mipmappedArray)
Frees a mipmapped array on the device.
hipError_t hipMemcpyToSymbol(const void *symbol, const void *src, size_t sizeBytes, size_t offset __dparm(0), hipMemcpyKind kind __dparm(hipMemcpyHostToDevice))
Copies data to the given symbol on the device. Symbol HIP APIs allow a kernel to define a device-side...
hipError_t hipDestroyExternalMemory(hipExternalMemory_t extMem)
Destroys an external memory object.
hipError_t hipImportExternalSemaphore(hipExternalSemaphore_t *extSem_out, const hipExternalSemaphoreHandleDesc *semHandleDesc)
Imports an external semaphore.
hipError_t hipMemcpyAtoH(void *dst, hipArray *srcArray, size_t srcOffset, size_t count)
Copies data between host and device.
hipError_t hipHostAlloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory [Deprecated].
hipError_t hipMemcpy2DToArrayAsync(hipArray *dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data between host and device.
hipError_t hipGetMipmappedArrayLevel(hipArray_t *levelArray, hipMipmappedArray_const_t mipmappedArray, unsigned int level)
Gets a mipmap level of a HIP mipmapped array.
hipError_t hipMemsetD16Async(hipDeviceptr_t dest, unsigned short value, size_t count, hipStream_t stream __dparm(0))
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant short value v...
hipError_t hipFreeHost(void *ptr)
Free memory allocated by the hcc hip host memory allocation API. [Deprecated].
hipError_t hipMemcpyFromSymbol(void *dst, const void *symbol, size_t sizeBytes, size_t offset __dparm(0), hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost))
Copies data from the given symbol on the device.
hipError_t hipHostFree(void *ptr)
Free memory allocated by the hcc hip host memory allocation API This API performs an implicit hipDevi...
hipError_t hipMemcpyToArray(hipArray *dst, size_t wOffset, size_t hOffset, const void *src, size_t count, hipMemcpyKind kind)
Copies data between host and device.
hipError_t hipMemcpy2DFromArrayAsync(void *dst, size_t dpitch, hipArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data between host and device asynchronously.
hipError_t hipMemGetInfo(size_t *free, size_t *total)
Query memory info. Return snapshot of free memory, and total allocatable memory on the device.
hipError_t hipExtMallocWithFlags(void **ptr, size_t sizeBytes, unsigned int flags)
Allocate memory on the default accelerator.
hipError_t hipImportExternalMemory(hipExternalMemory_t *extMem_out, const hipExternalMemoryHandleDesc *memHandleDesc)
Imports an external memory object.
hipError_t hipMemcpy3D(const struct hipMemcpy3DParms *p)
Copies data between host and device.
hipError_t hipMemcpy3DAsync(const struct hipMemcpy3DParms *p, hipStream_t stream __dparm(0))
Copies data between host and device asynchronously.
hipError_t hipMemset3D(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent)
Fills synchronously the memory area pointed to by pitchedDevPtr with the constant value.
hipError_t hipModuleGetGlobal(hipDeviceptr_t *dptr, size_t *bytes, hipModule_t hmod, const char *name)
Returns a global pointer from a module. Returns in *dptr and *bytes the pointer and size of the globa...
hipError_t hipMemsetD16(hipDeviceptr_t dest, unsigned short value, size_t count)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant short value v...
hipError_t hipMemcpyFromSymbolAsync(void *dst, const void *symbol, size_t sizeBytes, size_t offset, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data from the given symbol on the device asynchronously.
hipError_t hipMalloc(void **ptr, size_t size)
Allocate memory on the default accelerator.
hipError_t hipHostUnregister(void *hostPtr)
Un-register host pointer.
hipError_t hipHostGetFlags(unsigned int *flagsPtr, void *hostPtr)
Return flags associated with host pointer.
hipError_t hipMemsetD32(hipDeviceptr_t dest, int value, size_t count)
Fills the memory area pointed to by dest with the constant integer value for specified number of time...
hipError_t hipDrvMemcpy3DAsync(const HIP_MEMCPY3D *pCopy, hipStream_t stream)
Copies data between host and device asynchronously.
hipError_t hipMallocHost(void **ptr, size_t size)
Allocate pinned host memory [Deprecated].
hipError_t hipMalloc3DArray(hipArray **array, const struct hipChannelFormatDesc *desc, struct hipExtent extent, unsigned int flags)
Allocate an array on the device.
hipError_t hipFree(void *ptr)
Free memory allocated by the hcc hip memory allocation API. This API performs an implicit hipDeviceSy...
hipError_t hipMemcpyToSymbolAsync(const void *symbol, const void *src, size_t sizeBytes, size_t offset, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data to the given symbol on the device asynchronously.
hipError_t hipPointerGetAttributes(hipPointerAttribute_t *attributes, const void *ptr)
Return attributes for the specified pointer.
hipError_t hipMallocPitch(void **ptr, size_t *pitch, size_t width, size_t height)
hipError_t hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Device.
hipError_t hipMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind)
Copies data between host and device.
hipError_t hipMemcpyFromArray(void *dst, hipArray_const_t srcArray, size_t wOffset, size_t hOffset, size_t count, hipMemcpyKind kind)
Copies data between host and device.
hipError_t hipHostGetDevicePointer(void **devPtr, void *hstPtr, unsigned int flags)
Get Device pointer from Host Pointer allocated through hipHostMalloc.
hipError_t hipMemcpyParam2DAsync(const hip_Memcpy2D *pCopy, hipStream_t stream __dparm(0))
Copies memory for 2D arrays.
hipError_t hipDestroyExternalSemaphore(hipExternalSemaphore_t extSem)
Destroys an external semaphore object and releases any references to the underlying resource....
hipError_t hipMemsetD8Async(hipDeviceptr_t dest, unsigned char value, size_t count, hipStream_t stream __dparm(0))
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
hipError_t hipMemcpy2DFromArray(void *dst, size_t dpitch, hipArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind)
Copies data between host and device.
hipError_t hipDrvMemcpy3D(const HIP_MEMCPY3D *pCopy)
Copies data between host and device.
hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void *src, size_t sizeBytes)
Copy data from Host to Device.
hipError_t hipMemcpyParam2D(const hip_Memcpy2D *pCopy)
Copies memory for 2D arrays.
hipError_t hipMemsetAsync(void *dst, int value, size_t sizeBytes, hipStream_t stream __dparm(0))
Fills the first sizeBytes bytes of the memory area pointed to by dev with the constant byte value val...
hipError_t hipMemset3DAsync(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent, hipStream_t stream __dparm(0))
Fills asynchronously the memory area pointed to by pitchedDevPtr with the constant value.
hipError_t hipHostMalloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory.
hipError_t hipMemcpy2DToArray(hipArray *dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind)
Copies data between host and device.
hipError_t hipMemcpyAsync(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copy data from src to dst asynchronously.
hipError_t hipHostRegister(void *hostPtr, size_t sizeBytes, unsigned int flags)
Register host memory so it can be accessed from the current device.
hipError_t hipMemcpy(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind)
Copy data from src to dst.
hipError_t hipMemset(void *dst, int value, size_t sizeBytes)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
hipError_t hipMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data between host and device.
hipError_t hipDrvPointerGetAttributes(unsigned int numAttributes, hipPointer_attribute *attributes, void **data, hipDeviceptr_t ptr)
Returns information about the specified pointer.[BETA].
hipError_t hipMallocArray(hipArray **array, const hipChannelFormatDesc *desc, size_t width, size_t height __dparm(0), unsigned int flags __dparm(hipArrayDefault))
Allocate an array on the device.
hipError_t hipMemcpyDtoDAsync(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream)
Copy data from Device to Device asynchronously.
hipError_t hipMemAllocPitch(hipDeviceptr_t *dptr, size_t *pitch, size_t widthInBytes, size_t height, unsigned int elementSizeBytes)
hipError_t hipMemsetD8(hipDeviceptr_t dest, unsigned char value, size_t count)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
hipError_t hipMemcpyDtoHAsync(void *dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream)
Copy data from Device to Host asynchronously.
hipError_t hipMemset2DAsync(void *dst, size_t pitch, int value, size_t width, size_t height, hipStream_t stream __dparm(0))
Fills asynchronously the memory area pointed to by dst with the constant value.
hipError_t hipWaitExternalSemaphoresAsync(const hipExternalSemaphore_t *extSemArray, const hipExternalSemaphoreWaitParams *paramsArray, unsigned int numExtSems, hipStream_t stream)
Waits on a set of external semaphore objects.
hipError_t hipMallocMipmappedArray(hipMipmappedArray_t *mipmappedArray, const struct hipChannelFormatDesc *desc, struct hipExtent extent, unsigned int numLevels, unsigned int flags __dparm(0))
Allocate a mipmapped array on the device.
hipError_t hipMemset2D(void *dst, size_t pitch, int value, size_t width, size_t height)
Fills the memory area pointed to by dst with the constant value.
hipError_t hipFreeArray(hipArray *array)
Frees an array on the device.
hipError_t hipMemcpyHtoDAsync(hipDeviceptr_t dst, void *src, size_t sizeBytes, hipStream_t stream)
Copy data from Host to Device asynchronously.
hipError_t hipGetSymbolSize(size_t *size, const void *symbol)
Gets the size of the given symbol on the device.
hipError_t hipMemcpyDtoH(void *dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Host.
hipError_t hipSignalExternalSemaphoresAsync(const hipExternalSemaphore_t *extSemArray, const hipExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, hipStream_t stream)
Signals a set of external semaphore objects.
hipError_t hipGetSymbolAddress(void **devPtr, const void *symbol)
Gets device pointer associated with symbol on the device.
hipError_t hipMemAllocHost(void **ptr, size_t size)
Allocate pinned host memory [Deprecated].
hipError_t hipPointerGetAttribute(void *data, hipPointer_attribute attribute, hipDeviceptr_t ptr)
Returns information about the specified pointer.[BETA].
hipError_t hipMemcpyHtoA(hipArray *dstArray, size_t dstOffset, const void *srcHost, size_t count)
Copies data between host and device.
hipError_t hipMemsetD32Async(hipDeviceptr_t dst, int value, size_t count, hipStream_t stream __dparm(0))
Fills the memory area pointed to by dev with the constant integer value for specified number of times...
hipError_t hipExternalMemoryGetMappedBuffer(void **devPtr, hipExternalMemory_t extMem, const hipExternalMemoryBufferDesc *bufferDesc)
Maps a buffer onto an imported memory object.
hipError_t hipFuncGetAttributes(struct hipFuncAttributes *attr, const void *func)
Find out attributes for a given function.
hipError_t hipModuleGetTexRef(textureReference **texRef, hipModule_t hmod, const char *name)
returns the handle of the texture reference with the name from the module.
hipError_t hipExtLaunchMultiKernelMultiDevice(hipLaunchParams *launchParamsList, int numDevices, unsigned int flags)
Launches kernels on multiple devices and guarantees all specified kernels are dispatched on respectiv...
hipError_t hipModuleLaunchKernel(hipFunction_t f, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hipStream_t stream, void **kernelParams, void **extra)
launches kernel f with launch parameters and shared memory on stream with arguments passed to kernelp...
hipError_t hipModuleLoad(hipModule_t *module, const char *fname)
Loads code object from file into a hipModule_t.
hipError_t hipModuleLoadDataEx(hipModule_t *module, const void *image, unsigned int numOptions, hipJitOption *options, void **optionValues)
builds module from code object which resides in host memory. Image is pointer to that location....
hipError_t hipFuncGetAttribute(int *value, hipFunction_attribute attrib, hipFunction_t hfunc)
Find out a specific attribute for a given function.
hipError_t hipLaunchCooperativeKernelMultiDevice(hipLaunchParams *launchParamsList, int numDevices, unsigned int flags)
Launches kernels on multiple devices where thread blocks can cooperate and synchronize as they execut...
hipError_t hipModuleGetFunction(hipFunction_t *function, hipModule_t module, const char *kname)
Function with kname will be extracted if present in module.
hipError_t hipLaunchCooperativeKernel(const void *f, dim3 gridDim, dim3 blockDimX, void **kernelParams, unsigned int sharedMemBytes, hipStream_t stream)
launches kernel f with launch parameters and shared memory on stream with arguments passed to kernelp...
hipError_t hipModuleLoadData(hipModule_t *module, const void *image)
builds module from code object which resides in host memory. Image is pointer to that location.
hipError_t hipModuleUnload(hipModule_t module)
Frees the module.
hipError_t hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags __dparm(hipOccupancyDefault))
Returns occupancy for a device function.
hipError_t hipModuleOccupancyMaxPotentialBlockSize(int *gridSize, int *blockSize, hipFunction_t f, size_t dynSharedMemPerBlk, int blockSizeLimit)
determine the grid and block sizes to achieves maximum occupancy for a kernel
hipError_t hipOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *f, int blockSize, size_t dynSharedMemPerBlk)
Returns occupancy for a device function.
hipError_t hipOccupancyMaxPotentialBlockSize(int *gridSize, int *blockSize, const void *f, size_t dynSharedMemPerBlk, int blockSizeLimit)
determine the grid and block sizes to achieves maximum occupancy for a kernel
hipError_t hipModuleOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk)
Returns occupancy for a device function.
hipError_t hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags)
Returns occupancy for a device function.
hipError_t hipModuleOccupancyMaxPotentialBlockSizeWithFlags(int *gridSize, int *blockSize, hipFunction_t f, size_t dynSharedMemPerBlk, int blockSizeLimit, unsigned int flags)
determine the grid and block sizes to achieves maximum occupancy for a kernel
hipError_t hipDeviceCanAccessPeer(int *canAccessPeer, int deviceId, int peerDeviceId)
Determine if a device can access a peer's memory.
hipError_t hipDeviceEnablePeerAccess(int peerDeviceId, unsigned int flags)
Enable direct access from current device's virtual address space to memory allocations physically loc...
hipError_t hipMemcpyPeer(void *dst, int dstDeviceId, const void *src, int srcDeviceId, size_t sizeBytes)
Copies memory from one device to memory on another device.
hipError_t hipMemcpyPeerAsync(void *dst, int dstDeviceId, const void *src, int srcDevice, size_t sizeBytes, hipStream_t stream __dparm(0))
Copies memory from one device to memory on another device.
hipError_t hipDeviceDisablePeerAccess(int peerDeviceId)
Disable direct access from current device's virtual address space to memory allocations physically lo...
hipError_t hipMemGetAddressRange(hipDeviceptr_t *pbase, size_t *psize, hipDeviceptr_t dptr)
Get information on memory allocations.
hipError_t hipProfilerStart()
Start recording of profiling information When using this API, start the profiler with profiling disab...
hipError_t hipProfilerStop()
Stop recording of profiling information. When using this API, start the profiler with profiling disab...
hipError_t hipStreamWriteValue64(hipStream_t stream, void *ptr, uint64_t value, unsigned int flags)
Enqueues a write command to the stream.[BETA].
hipError_t hipStreamWriteValue32(hipStream_t stream, void *ptr, uint32_t value, unsigned int flags)
Enqueues a write command to the stream.[BETA].
hipError_t hipStreamWaitValue32(hipStream_t stream, void *ptr, uint32_t value, unsigned int flags, uint32_t mask __dparm(0xFFFFFFFF))
Enqueues a wait command to the stream.[BETA].
hipError_t hipStreamWaitValue64(hipStream_t stream, void *ptr, uint64_t value, unsigned int flags, uint64_t mask __dparm(0xFFFFFFFFFFFFFFFF))
Enqueues a wait command to the stream.[BETA].
hipError_t hipMemPoolImportPointer(void **dev_ptr, hipMemPool_t mem_pool, hipMemPoolPtrExportData *export_data)
Import a memory pool allocation from another process.
hipError_t hipMemPoolImportFromShareableHandle(hipMemPool_t *mem_pool, void *shared_handle, hipMemAllocationHandleType handle_type, unsigned int flags)
Imports a memory pool from a shared handle.
hipError_t hipMallocFromPoolAsync(void **dev_ptr, size_t size, hipMemPool_t mem_pool, hipStream_t stream)
Allocates memory from a specified pool with stream ordered semantics.
hipError_t hipFreeAsync(void *dev_ptr, hipStream_t stream)
Frees memory with stream ordered semantics.
hipError_t hipMemPoolTrimTo(hipMemPool_t mem_pool, size_t min_bytes_to_hold)
Releases freed memory back to the OS.
hipError_t hipMemPoolCreate(hipMemPool_t *mem_pool, const hipMemPoolProps *pool_props)
Creates a memory pool.
hipError_t hipMemPoolSetAccess(hipMemPool_t mem_pool, const hipMemAccessDesc *desc_list, size_t count)
Controls visibility of the specified pool between devices.
hipError_t hipMemPoolDestroy(hipMemPool_t mem_pool)
Destroys the specified memory pool.
hipError_t hipMemPoolSetAttribute(hipMemPool_t mem_pool, hipMemPoolAttr attr, void *value)
Sets attributes of a memory pool.
hipError_t hipMemPoolGetAttribute(hipMemPool_t mem_pool, hipMemPoolAttr attr, void *value)
Gets attributes of a memory pool.
hipError_t hipMemPoolExportToShareableHandle(void *shared_handle, hipMemPool_t mem_pool, hipMemAllocationHandleType handle_type, unsigned int flags)
Exports a memory pool to the requested handle type.
hipError_t hipMemPoolExportPointer(hipMemPoolPtrExportData *export_data, void *dev_ptr)
Export data to share a memory pool allocation between processes.
hipError_t hipMallocAsync(void **dev_ptr, size_t size, hipStream_t stream)
Allocates memory with stream ordered semantics.
hipError_t hipMemPoolGetAccess(hipMemAccessFlags *flags, hipMemPool_t mem_pool, hipMemLocation *location)
Returns the accessibility of a pool from a device.
hipError_t hipDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority)
Returns numerical values that correspond to the least and greatest stream priority.
hipError_t hipStreamDestroy(hipStream_t stream)
Destroys the specified stream.
hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int *flags)
Return flags associated with this stream.
hipError_t hipStreamAddCallback(hipStream_t stream, hipStreamCallback_t callback, void *userData, unsigned int flags)
Adds a callback to be called on the host after all currently enqueued items in the stream have comple...
void(* hipStreamCallback_t)(hipStream_t stream, hipError_t status, void *userData)
Definition: hip_runtime_api.h:2084
hipError_t hipStreamQuery(hipStream_t stream)
Return hipSuccess if all of the operations in the specified stream have completed,...
hipError_t hipStreamSynchronize(hipStream_t stream)
Wait for all commands in stream to complete.
hipError_t hipStreamWaitEvent(hipStream_t stream, hipEvent_t event, unsigned int flags)
Make the specified compute stream wait for an event.
hipError_t hipStreamCreateWithPriority(hipStream_t *stream, unsigned int flags, int priority)
Create an asynchronous stream with the specified priority.
hipError_t hipExtStreamCreateWithCUMask(hipStream_t *stream, uint32_t cuMaskSize, const uint32_t *cuMask)
Create an asynchronous stream with the specified CU mask.
hipError_t hipStreamGetPriority(hipStream_t stream, int *priority)
Query the priority of a stream.
hipError_t hipExtStreamGetCUMask(hipStream_t stream, uint32_t cuMaskSize, uint32_t *cuMask)
Get CU mask associated with an asynchronous stream.
hipError_t hipStreamCreateWithFlags(hipStream_t *stream, unsigned int flags)
Create an asynchronous stream.
hipError_t hipStreamCreate(hipStream_t *stream)
Create an asynchronous stream.
hipError_t hipGetTextureReference(const textureReference **texref, const void *symbol)
Gets the texture reference related with the symbol.
hipError_t hipBindTextureToMipmappedArray(const textureReference *tex, hipMipmappedArray_const_t mipmappedArray, const hipChannelFormatDesc *desc)
Binds a mipmapped array to a texture.
hipError_t hipTexObjectCreate(hipTextureObject_t *pTexObject, const HIP_RESOURCE_DESC *pResDesc, const HIP_TEXTURE_DESC *pTexDesc, const HIP_RESOURCE_VIEW_DESC *pResViewDesc)
Creates a texture object.
hipError_t hipGetTextureObjectResourceDesc(hipResourceDesc *pResDesc, hipTextureObject_t textureObject)
Gets resource descriptor for the texture object.
hipError_t hipGetTextureObjectResourceViewDesc(struct hipResourceViewDesc *pResViewDesc, hipTextureObject_t textureObject)
Gets resource view descriptor for the texture object.
hipError_t hipTexObjectGetTextureDesc(HIP_TEXTURE_DESC *pTexDesc, hipTextureObject_t texObject)
Gets texture descriptor of a texture object.
hipError_t hipCreateTextureObject(hipTextureObject_t *pTexObject, const hipResourceDesc *pResDesc, const hipTextureDesc *pTexDesc, const struct hipResourceViewDesc *pResViewDesc)
Creates a texture object.
hipError_t hipTexObjectDestroy(hipTextureObject_t texObject)
Destroys a texture object.
hipError_t hipGetChannelDesc(hipChannelFormatDesc *desc, hipArray_const_t array)
Gets the channel descriptor in an array.
hipError_t hipTexObjectGetResourceDesc(HIP_RESOURCE_DESC *pResDesc, hipTextureObject_t texObject)
Gets resource descriptor of a texture object.
hipError_t hipTexObjectGetResourceViewDesc(HIP_RESOURCE_VIEW_DESC *pResViewDesc, hipTextureObject_t texObject)
Gets resource view descriptor of a texture object.
hipError_t hipDestroyTextureObject(hipTextureObject_t textureObject)
Destroys a texture object.
hipError_t hipGetTextureObjectTextureDesc(hipTextureDesc *pTexDesc, hipTextureObject_t textureObject)
Gets texture descriptor for the texture object.
hipError_t hipMemAddressFree(void *devPtr, size_t size)
Frees an address range reservation made via hipMemAddressReserve.
hipError_t hipMemExportToShareableHandle(void *shareableHandle, hipMemGenericAllocationHandle_t handle, hipMemAllocationHandleType handleType, unsigned long long flags)
Exports an allocation to a requested shareable handle type.
hipError_t hipMemGetAccess(unsigned long long *flags, const hipMemLocation *location, void *ptr)
Get the access flags set for the given location and ptr.
hipError_t hipMemSetAccess(void *ptr, size_t size, const hipMemAccessDesc *desc, size_t count)
Set the access flags for each location specified in desc for the given virtual address range.
hipError_t hipMemRelease(hipMemGenericAllocationHandle_t handle)
Release a memory handle representing a memory allocation which was previously allocated through hipMe...
hipError_t hipMemUnmap(void *ptr, size_t size)
Unmap memory allocation of a given address range.
hipError_t hipMemGetAllocationGranularity(size_t *granularity, const hipMemAllocationProp *prop, hipMemAllocationGranularity_flags option)
Calculates either the minimal or recommended granularity.
hipError_t hipMemRetainAllocationHandle(hipMemGenericAllocationHandle_t *handle, void *addr)
Returns the allocation handle of the backing memory allocation given the address.
hipError_t hipMemCreate(hipMemGenericAllocationHandle_t *handle, size_t size, const hipMemAllocationProp *prop, unsigned long long flags)
Creates a memory allocation described by the properties and size.
hipError_t hipMemMap(void *ptr, size_t size, size_t offset, hipMemGenericAllocationHandle_t handle, unsigned long long flags)
Maps an allocation handle to a reserved virtual address range.
hipError_t hipMemAddressReserve(void **ptr, size_t size, size_t alignment, void *addr, unsigned long long flags)
Reserves an address range.
hipError_t hipMemGetAllocationPropertiesFromHandle(hipMemAllocationProp *prop, hipMemGenericAllocationHandle_t handle)
Retrieve the property structure of the given handle.
hipError_t hipMemMapArrayAsync(hipArrayMapInfo *mapInfoList, unsigned int count, hipStream_t stream)
Maps or unmaps subregions of sparse HIP arrays and sparse HIP mipmapped arrays.
hipError_t hipMemImportFromShareableHandle(hipMemGenericAllocationHandle_t *handle, void *osHandle, hipMemAllocationHandleType shHandleType)
Imports an allocation from a requested shareable handle type.
hipErrorMemoryAllocation
Memory allocation error.
Definition: hip_runtime_api.h:212
hipErrorInvalidDevicePointer
Invalid Device Pointer.
Definition: hip_runtime_api.h:224
hipErrorRuntimeMemory
Definition: hip_runtime_api.h:315
hipErrorStreamCaptureIsolation
Definition: hip_runtime_api.h:296
hipErrorInvalidKernelFile
In CUDA DRV, it is CUDA_ERROR_INVALID_PTX.
Definition: hip_runtime_api.h:250
hipErrorGraphExecUpdateFailure
Definition: hip_runtime_api.h:309
hipErrorInvalidResourceHandle
Resource handle (hipEvent_t or hipStream_t) invalid.
Definition: hip_runtime_api.h:259
hipErrorInvalidContext
Produced when input context is invalid.
Definition: hip_runtime_api.h:233
hipErrorStreamCaptureUnsupported
Definition: hip_runtime_api.h:287
hipErrorPeerAccessNotEnabled
Peer access was never enabled from the current device.
Definition: hip_runtime_api.h:271
hipErrorStreamCaptureUnjoined
Definition: hip_runtime_api.h:294
struct hipDeviceProp_t hipDeviceProp_t
hipErrorInvalidValue
Definition: hip_runtime_api.h:208
hipErrorLaunchFailure
An exception occurred on the device while executing a kernel.
Definition: hip_runtime_api.h:280
hipErrorInvalidDevice
DeviceID must be in range 0...#compute-devices.
Definition: hip_runtime_api.h:231
hipErrorMapBufferObjectFailed
Produced when the IPC memory attach failed from ROCr.
Definition: hip_runtime_api.h:237
hipErrorHostMemoryAlreadyRegistered
Produced when trying to lock a page-locked memory.
Definition: hip_runtime_api.h:276
hipErrorStreamCaptureWrongThread
Definition: hip_runtime_api.h:305
hipErrorAssert
Produced when the kernel calls assert.
Definition: hip_runtime_api.h:275
hipErrorNotReady
Definition: hip_runtime_api.h:262
hipErrorLaunchOutOfResources
Out of resources error.
Definition: hip_runtime_api.h:267
hipErrorCooperativeLaunchTooLarge
Definition: hip_runtime_api.h:282
hipErrorNoDevice
Call to hipGetDeviceCount returned 0 devices.
Definition: hip_runtime_api.h:230
hipErrorStreamCaptureInvalidated
Definition: hip_runtime_api.h:289
hipErrorPeerAccessAlreadyEnabled
Peer access was already enabled from the current device.
Definition: hip_runtime_api.h:269
hipErrorNotSupported
Produced when the hip API is not supported/implemented.
Definition: hip_runtime_api.h:286
hipErrorStreamCaptureImplicit
Definition: hip_runtime_api.h:300
hipErrorStreamCaptureMerge
Definition: hip_runtime_api.h:291
hipErrorIllegalState
Resource required is not in a valid state to perform operation.
Definition: hip_runtime_api.h:260
hipSuccess
Successful completion.
Definition: hip_runtime_api.h:207
hipMemoryType
Definition: hip_runtime_api.h:159
@ hipMemoryTypeDevice
Definition: hip_runtime_api.h:161
@ hipMemoryTypeHost
Memory is physically located on host.
Definition: hip_runtime_api.h:160
@ hipMemoryTypeArray
Definition: hip_runtime_api.h:163
@ hipMemoryTypeManaged
Managed memory, automaticallly managed by the unified memory system.
Definition: hip_runtime_api.h:166
@ hipMemoryTypeUnified
Not used currently.
Definition: hip_runtime_api.h:165
hipErrorStreamCaptureUnmatched
The capture was not initiated in this stream.
Definition: hip_runtime_api.h:293
hipErrorCapturedEvent
Definition: hip_runtime_api.h:303
hipErrorHostMemoryNotRegistered
Produced when trying to unlock a non-page-locked memory.
Definition: hip_runtime_api.h:278
struct hipPointerAttribute_t hipPointerAttribute_t
struct ihipMemPoolHandle_t * hipMemPool_t
Definition: hip_runtime_api.h:536
hipErrorRuntimeOther
Definition: hip_runtime_api.h:317
hipErrorInvalidMemcpyDirection
Invalid memory copy direction.
Definition: hip_runtime_api.h:225
Definition: driver_types.h:74
Definition: driver_types.h:68
Definition: driver_types.h:379
Definition: driver_types.h:282
Definition: driver_types.h:328
Definition: driver_types.h:165
Definition: hip_runtime_api.h:934
uint32_t y
y
Definition: hip_runtime_api.h:936
uint32_t z
z
Definition: hip_runtime_api.h:937
uint32_t x
x
Definition: hip_runtime_api.h:935
Definition: hip_runtime_api.h:1143
Definition: hip_runtime_api.h:6441
unsigned int level
For mipmapped arrays must be a valid mipmap level. For arrays must be zero.
Definition: hip_runtime_api.h:6450
unsigned int flags
flags for future use, must be zero now.
Definition: hip_runtime_api.h:6472
hipArraySparseSubresourceType subresourceType
Sparse subresource type.
Definition: hip_runtime_api.h:6447
unsigned int extentDepth
Depth in elements.
Definition: hip_runtime_api.h:6457
unsigned int offsetX
X offset in elements.
Definition: hip_runtime_api.h:6452
hipResourceType resourceType
Resource type.
Definition: hip_runtime_api.h:6442
hipMemOperationType memOperationType
Memory operation type.
Definition: hip_runtime_api.h:6465
unsigned int reserved[2]
Reserved for future use, must be zero now.
Definition: hip_runtime_api.h:6473
unsigned int extentWidth
Width in elements.
Definition: hip_runtime_api.h:6455
unsigned int extentHeight
Height in elements.
Definition: hip_runtime_api.h:6456
unsigned int offsetY
Y offset in elements.
Definition: hip_runtime_api.h:6453
hipMemHandleType memHandleType
Memory handle type.
Definition: hip_runtime_api.h:6466
unsigned int layer
For layered arrays must be a valid layer index. Otherwise, must be zero.
Definition: hip_runtime_api.h:6451
unsigned int deviceBitMask
Device ordinal bit mask.
Definition: hip_runtime_api.h:6471
unsigned long long size
Extent in bytes.
Definition: hip_runtime_api.h:6462
unsigned long long offset
Offset within mip tail.
Definition: hip_runtime_api.h:6461
unsigned int offsetZ
Z offset in elements.
Definition: hip_runtime_api.h:6454
Definition: driver_types.h:82
Definition: driver_types.h:47
Definition: hip_runtime_api.h:45
unsigned hasSharedInt64Atomics
64-bit integer atomics for shared memory.
Definition: hip_runtime_api.h:55
unsigned hasSharedInt32Atomics
32-bit integer atomics for shared memory.
Definition: hip_runtime_api.h:49
unsigned hasFloatAtomicAdd
32-bit float atomic add in global and shared memory.
Definition: hip_runtime_api.h:51
unsigned hasDoubles
Double-precision floating point.
Definition: hip_runtime_api.h:58
unsigned hasWarpVote
Warp vote instructions (__any, __all).
Definition: hip_runtime_api.h:61
unsigned hasWarpShuffle
Warp shuffle operations. (__shfl_*).
Definition: hip_runtime_api.h:63
unsigned hasGlobalInt32Atomics
32-bit integer atomics for global memory.
Definition: hip_runtime_api.h:47
unsigned hasGlobalFloatAtomicExch
32-bit float atomic exch for global memory.
Definition: hip_runtime_api.h:48
unsigned hasDynamicParallelism
Dynamic parallelism.
Definition: hip_runtime_api.h:73
unsigned hasSurfaceFuncs
Surface functions.
Definition: hip_runtime_api.h:71
unsigned has3dGrid
Grid and group dims are 3D (rather than 2D).
Definition: hip_runtime_api.h:72
unsigned hasFunnelShift
Funnel two words into one with shift&mask caps.
Definition: hip_runtime_api.h:64
unsigned hasThreadFenceSystem
__threadfence_system.
Definition: hip_runtime_api.h:67
unsigned hasGlobalInt64Atomics
64-bit integer atomics for global memory.
Definition: hip_runtime_api.h:54
unsigned hasSyncThreadsExt
__syncthreads_count, syncthreads_and, syncthreads_or.
Definition: hip_runtime_api.h:68
unsigned hasWarpBallot
Warp ballot instructions (__ballot).
Definition: hip_runtime_api.h:62
unsigned hasSharedFloatAtomicExch
32-bit float atomic exch for shared memory.
Definition: hip_runtime_api.h:50
Definition: hip_runtime_api.h:87
int ECCEnabled
Device has ECC support enabled.
Definition: hip_runtime_api.h:135
int maxTexture1DLinear
Maximum size for 1D textures bound to linear memory.
Definition: hip_runtime_api.h:125
int pciBusID
PCI Bus ID.
Definition: hip_runtime_api.h:115
int maxTexture1D
Maximum number of elements in 1D images.
Definition: hip_runtime_api.h:126
int memoryBusWidth
Global memory bus width in bits.
Definition: hip_runtime_api.h:98
int clockRate
Max clock frequency of the multiProcessors in khz.
Definition: hip_runtime_api.h:96
int maxThreadsPerMultiProcessor
Maximum resident threads per multi-processor.
Definition: hip_runtime_api.h:108
int l2CacheSize
L2 cache size.
Definition: hip_runtime_api.h:107
size_t totalConstMem
Size of shared memory region (in bytes).
Definition: hip_runtime_api.h:99
size_t memPitch
Maximum pitch in bytes allowed by memory copies.
Definition: hip_runtime_api.h:131
size_t sharedMemPerBlock
Size of shared memory region (in bytes).
Definition: hip_runtime_api.h:90
int cooperativeMultiDeviceLaunch
HIP device supports cooperative launch on multiple devices.
Definition: hip_runtime_api.h:124
int pageableMemoryAccess
Definition: hip_runtime_api.h:150
char name[256]
Device name.
Definition: hip_runtime_api.h:88
size_t textureAlignment
Alignment requirement for textures.
Definition: hip_runtime_api.h:132
int memoryClockRate
Max global memory clock frequency in khz.
Definition: hip_runtime_api.h:97
int clockInstructionRate
Definition: hip_runtime_api.h:110
int regsPerBlock
Registers per block.
Definition: hip_runtime_api.h:91
int maxTexture2D[2]
Maximum dimensions (width, height) of 2D images, in image elements.
Definition: hip_runtime_api.h:127
int cooperativeLaunch
HIP device supports cooperative launch.
Definition: hip_runtime_api.h:123
int maxTexture3D[3]
Maximum dimensions (width, height, depth) of 3D images, in image elements.
Definition: hip_runtime_api.h:128
int directManagedMemAccessFromHost
Host can directly access managed memory on the device without migration.
Definition: hip_runtime_api.h:148
int cooperativeMultiDeviceUnmatchedFunc
Definition: hip_runtime_api.h:137
int pageableMemoryAccessUsesHostPageTables
Device accesses pageable memory via the host's page tables.
Definition: hip_runtime_api.h:152
unsigned int * hdpRegFlushCntl
Addres of HDP_REG_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:130
int maxThreadsDim[3]
Max number of threads in each dimension (XYZ) of a block.
Definition: hip_runtime_api.h:94
int isMultiGpuBoard
1 if device is on a multi-GPU board, 0 if not.
Definition: hip_runtime_api.h:118
int pciDomainID
PCI Domain ID.
Definition: hip_runtime_api.h:114
size_t maxSharedMemoryPerMultiProcessor
Maximum Shared Memory Per Multiprocessor.
Definition: hip_runtime_api.h:117
int cooperativeMultiDeviceUnmatchedGridDim
Definition: hip_runtime_api.h:139
int minor
Definition: hip_runtime_api.h:103
char gcnArchName[256]
AMD GCN Arch Name.
Definition: hip_runtime_api.h:121
int kernelExecTimeoutEnabled
Run time limit for kernels executed on the device.
Definition: hip_runtime_api.h:134
unsigned int * hdpMemFlushCntl
Addres of HDP_MEM_COHERENCY_FLUSH_CNTL register.
Definition: hip_runtime_api.h:129
int concurrentManagedAccess
Device can coherently access managed memory concurrently with the CPU.
Definition: hip_runtime_api.h:149
int integrated
APU vs dGPU.
Definition: hip_runtime_api.h:122
int canMapHostMemory
Check whether HIP can map host memory.
Definition: hip_runtime_api.h:119
int asicRevision
Revision of the GPU in this device.
Definition: hip_runtime_api.h:146
size_t totalGlobalMem
Size of global memory region (in bytes).
Definition: hip_runtime_api.h:89
int cooperativeMultiDeviceUnmatchedBlockDim
Definition: hip_runtime_api.h:141
int concurrentKernels
Device can possibly execute multiple kernels concurrently.
Definition: hip_runtime_api.h:113
int isLargeBar
1: if it is a large PCI bar device, else 0
Definition: hip_runtime_api.h:145
int gcnArch
DEPRECATED: use gcnArchName instead.
Definition: hip_runtime_api.h:120
int multiProcessorCount
Number of multi-processors (compute units).
Definition: hip_runtime_api.h:106
int maxGridSize[3]
Max grid dimensions (XYZ).
Definition: hip_runtime_api.h:95
int pciDeviceID
PCI Device ID.
Definition: hip_runtime_api.h:116
int computeMode
Compute mode.
Definition: hip_runtime_api.h:109
int major
Definition: hip_runtime_api.h:100
int warpSize
Warp size.
Definition: hip_runtime_api.h:92
int tccDriver
1:If device is Tesla device using TCC driver, else 0
Definition: hip_runtime_api.h:136
int cooperativeMultiDeviceUnmatchedSharedMem
Definition: hip_runtime_api.h:143
int maxThreadsPerBlock
Max work items per work group or workgroup max size.
Definition: hip_runtime_api.h:93
hipDeviceArch_t arch
Architectural feature flags. New for HIP.
Definition: hip_runtime_api.h:112
int managedMemory
Device supports allocating managed memory on this system.
Definition: hip_runtime_api.h:147
size_t texturePitchAlignment
Pitch alignment requirement for texture references bound to pitched memory.
Definition: hip_runtime_api.h:133
Definition: driver_types.h:358
Definition: hip_runtime_api.h:971
Definition: hip_runtime_api.h:959
Definition: hip_runtime_api.h:983
Definition: hip_runtime_api.h:995
Definition: hip_runtime_api.h:1011
Definition: hip_runtime_api.h:538
Definition: hip_runtime_api.h:1108
Definition: hip_runtime_api.h:528
Definition: hip_runtime_api.h:525
Definition: hip_runtime_api.h:1112
Definition: hip_runtime_api.h:942
size_t sharedMem
Shared memory.
Definition: hip_runtime_api.h:947
dim3 gridDim
Grid dimentions.
Definition: hip_runtime_api.h:944
hipStream_t stream
Stream identifier.
Definition: hip_runtime_api.h:948
void ** args
Arguments.
Definition: hip_runtime_api.h:946
void * func
Device function symbol.
Definition: hip_runtime_api.h:943
dim3 blockDim
Block dimentions.
Definition: hip_runtime_api.h:945
Definition: hip_runtime_api.h:830
hipMemAccessFlags flags
Accessibility flags to set.
Definition: hip_runtime_api.h:832
hipMemLocation location
Location on which the accessibility has to change.
Definition: hip_runtime_api.h:831
Definition: hip_runtime_api.h:6382
void * win32HandleMetaData
Metadata for Win32 handles.
Definition: hip_runtime_api.h:6386
hipMemAllocationType type
Memory allocation type.
Definition: hip_runtime_api.h:6383
unsigned char gpuDirectRDMACapable
RDMA capable.
Definition: hip_runtime_api.h:6389
unsigned short usage
Usage.
Definition: hip_runtime_api.h:6390
hipMemAllocationHandleType requestedHandleType
Requested handle type.
Definition: hip_runtime_api.h:6384
hipMemLocation location
Memory location.
Definition: hip_runtime_api.h:6385
unsigned char compressionType
Compression type.
Definition: hip_runtime_api.h:6388
Definition: hip_runtime_api.h:813
int id
Identifier for the provided location type hipMemLocationType.
Definition: hip_runtime_api.h:815
hipMemLocationType type
Specifies the location type, which describes the meaning of id.
Definition: hip_runtime_api.h:814
Definition: hip_runtime_api.h:861
hipMemLocation location
Location where allocations should reside.
Definition: hip_runtime_api.h:864
hipMemAllocationHandleType handleTypes
Handle types that will be supported by allocations from the pool.
Definition: hip_runtime_api.h:863
hipMemAllocationType allocType
Allocation type. Currently must be specified as hipMemAllocationTypePinned.
Definition: hip_runtime_api.h:862
unsigned char reserved[64]
Reserved for future use, must be 0.
Definition: hip_runtime_api.h:869
void * win32SecurityAttributes
Definition: hip_runtime_api.h:868
Definition: hip_runtime_api.h:874
Definition: driver_types.h:369
Definition: hip_runtime_api.h:1120
Definition: driver_types.h:117
Definition: driver_types.h:352
Definition: hip_runtime_api.h:172
Definition: driver_types.h:258
Definition: driver_types.h:314
Definition: texture_types.h:109
Definition: hip_runtime_api.h:76
Definition: driver_types.h:95
Definition: texture_types.h:88
Defines surface types for HIP runtime.
Definition: hip_runtime_api.h:1150