/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hip/checkouts/docs-6.2.1/include/hip/hip_runtime_api.h Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hip/checkouts/docs-6.2.1/include/hip/hip_runtime_api.h Source File#

HIP Runtime API Reference: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-hip/checkouts/docs-6.2.1/include/hip/hip_runtime_api.h Source File
hip_runtime_api.h
Go to the documentation of this file.
1/*
2Copyright (c) 2015 - 2023 Advanced Micro Devices, Inc. All rights reserved.
3
4Permission is hereby granted, free of charge, to any person obtaining a copy
5of this software and associated documentation files (the "Software"), to deal
6in the Software without restriction, including without limitation the rights
7to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8copies of the Software, and to permit persons to whom the Software is
9furnished to do so, subject to the following conditions:
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20THE SOFTWARE.
21*/
22
30#ifndef HIP_INCLUDE_HIP_HIP_RUNTIME_API_H
31#define HIP_INCLUDE_HIP_HIP_RUNTIME_API_H
32
33#include <string.h> // for getDeviceProp
34#include <hip/hip_version.h>
35#include <hip/hip_common.h>
36
37enum {
42};
43// hack to get these to show up in Doxygen:
53typedef struct {
54 // 32-bit Atomics
55 unsigned hasGlobalInt32Atomics : 1;
57 unsigned hasSharedInt32Atomics : 1;
59 unsigned hasFloatAtomicAdd : 1;
60
61 // 64-bit Atomics
62 unsigned hasGlobalInt64Atomics : 1;
63 unsigned hasSharedInt64Atomics : 1;
64
65 // Doubles
66 unsigned hasDoubles : 1;
67
68 // Warp cross-lane operations
69 unsigned hasWarpVote : 1;
70 unsigned hasWarpBallot : 1;
71 unsigned hasWarpShuffle : 1;
72 unsigned hasFunnelShift : 1;
73
74 // Sync
75 unsigned hasThreadFenceSystem : 1;
76 unsigned hasSyncThreadsExt : 1;
77
78 // Misc
79 unsigned hasSurfaceFuncs : 1;
80 unsigned has3dGrid : 1;
81 unsigned hasDynamicParallelism : 1;
83
84typedef struct hipUUID_t {
85 char bytes[16];
86} hipUUID;
87
88//---
89// Common headers for both NVCC and HCC paths:
90
91#define hipGetDeviceProperties hipGetDevicePropertiesR0600
92#define hipDeviceProp_t hipDeviceProp_tR0600
93#define hipChooseDevice hipChooseDeviceR0600
94
99typedef struct hipDeviceProp_t {
100 char name[256];
102 char luid[8];
103 unsigned int luidDeviceNodeMask;
108 size_t memPitch;
112 int maxGridSize[3];
116 int major;
119 int minor;
185 size_t
204 unsigned int
211 int reserved[63];
212
213 int hipReserved[32];
214
215 /* HIP Only struct members */
216 char gcnArchName[256];
221 unsigned int* hdpMemFlushCntl;
222 unsigned int* hdpRegFlushCntl;
238
258
262typedef struct hipPointerAttribute_t {
268 unsigned allocationFlags; /* flags specified when memory was allocated*/
269 /* peers? */
271
272// Ignoring error-code return values from hip APIs is discouraged. On C++17,
273// we can make that yield a warning
274#if __cplusplus >= 201703L
275#define __HIP_NODISCARD [[nodiscard]]
276#else
277#define __HIP_NODISCARD
278#endif
279
284// Developer note - when updating these, update the hipErrorName and hipErrorString functions in
285// NVCC and HCC paths Also update the hipCUDAErrorTohipError function in NVCC path.
286
292 // Deprecated
295 // Deprecated
317 // Deprecated
339 // Deprecated
393 // HSA Runtime Error Codes start here.
398 hipErrorTbd
399} hipError_t;
400
401#undef __HIP_NODISCARD
402
409
508
511
536
539 // Extended attributes for vendors
541
547
554
559
565
566#if defined(__HIP_PLATFORM_AMD__) && !defined(__HIP_PLATFORM_NVIDIA__)
567
568#include <stdint.h>
569#include <stddef.h>
570#ifndef GENERIC_GRID_LAUNCH
571#define GENERIC_GRID_LAUNCH 1
572#endif
573#include <hip/amd_detail/host_defines.h>
574#include <hip/driver_types.h>
575#include <hip/texture_types.h>
576#include <hip/surface_types.h>
577#if defined(_MSC_VER)
578#define DEPRECATED(msg) __declspec(deprecated(msg))
579#else // !defined(_MSC_VER)
580#define DEPRECATED(msg) __attribute__ ((deprecated(msg)))
581#endif // !defined(_MSC_VER)
582#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/HIP/blob/develop/docs/reference/deprecated_api_list.md"
583#define HIP_LAUNCH_PARAM_BUFFER_POINTER ((void*)0x01)
584#define HIP_LAUNCH_PARAM_BUFFER_SIZE ((void*)0x02)
585#define HIP_LAUNCH_PARAM_END ((void*)0x03)
586#ifdef __cplusplus
587 #define __dparm(x) \
588 = x
589#else
590 #define __dparm(x)
591#endif
592#ifdef __GNUC__
593#pragma GCC visibility push (default)
594#endif
595#ifdef __cplusplus
596namespace hip_impl {
598} // namespace hip_impl
599#endif
600// Structure definitions:
601#ifdef __cplusplus
602extern "C" {
603#endif
604//---
605// API-visible structures
606typedef struct ihipCtx_t* hipCtx_t;
607// Note many APIs also use integer deviceIds as an alternative to the device pointer:
608typedef int hipDevice_t;
615typedef struct ihipStream_t* hipStream_t;
616#define hipIpcMemLazyEnablePeerAccess 0x01
617#define HIP_IPC_HANDLE_SIZE 64
618typedef struct hipIpcMemHandle_st {
619 char reserved[HIP_IPC_HANDLE_SIZE];
621typedef struct hipIpcEventHandle_st {
622 char reserved[HIP_IPC_HANDLE_SIZE];
624typedef struct ihipModule_t* hipModule_t;
625typedef struct ihipModuleSymbol_t* hipFunction_t;
629typedef struct ihipMemPoolHandle_t* hipMemPool_t;
630
643typedef struct ihipEvent_t* hipEvent_t;
644
664//Flags that can be used with hipStreamCreateWithFlags.
666#define hipStreamDefault 0x00
667
669#define hipStreamNonBlocking 0x01
670
671//Flags that can be used with hipEventCreateWithFlags.
673#define hipEventDefault 0x0
674
676#define hipEventBlockingSync 0x1
677
679#define hipEventDisableTiming 0x2
680
682#define hipEventInterprocess 0x4
683
692#define hipEventDisableSystemFence 0x20000000
693
696#define hipEventReleaseToDevice 0x40000000
697
700#define hipEventReleaseToSystem 0x80000000
701
702//Flags that can be used with hipHostMalloc.
704#define hipHostMallocDefault 0x0
705
707#define hipHostMallocPortable 0x1
708
711#define hipHostMallocMapped 0x2
712
716#define hipHostMallocWriteCombined 0x4
717
722#define hipHostMallocNumaUser 0x20000000
723
725#define hipHostMallocCoherent 0x40000000
726
728#define hipHostMallocNonCoherent 0x80000000
729
731#define hipMemAttachGlobal 0x01
732
734#define hipMemAttachHost 0x02
735
737#define hipMemAttachSingle 0x04
738
739#define hipDeviceMallocDefault 0x0
740
742#define hipDeviceMallocFinegrained 0x1
743
745#define hipMallocSignalMemory 0x2
746
748#define hipDeviceMallocUncached 0x3
749
751#define hipDeviceMallocContiguous 0x4
752
753//Flags that can be used with hipHostRegister.
755#define hipHostRegisterDefault 0x0
756
758#define hipHostRegisterPortable 0x1
759
762#define hipHostRegisterMapped 0x2
763
765#define hipHostRegisterIoMemory 0x4
766
768#define hipHostRegisterReadOnly 0x08
769
771#define hipExtHostRegisterCoarseGrained 0x8
772
774#define hipDeviceScheduleAuto 0x0
775
778#define hipDeviceScheduleSpin 0x1
779
782#define hipDeviceScheduleYield 0x2
783#define hipDeviceScheduleBlockingSync 0x4
784#define hipDeviceScheduleMask 0x7
785#define hipDeviceMapHost 0x8
786#define hipDeviceLmemResizeToMax 0x10
788#define hipArrayDefault 0x00
789#define hipArrayLayered 0x01
790#define hipArraySurfaceLoadStore 0x02
791#define hipArrayCubemap 0x04
792#define hipArrayTextureGather 0x08
793#define hipOccupancyDefault 0x00
794#define hipOccupancyDisableCachingOverride 0x01
795#define hipCooperativeLaunchMultiDeviceNoPreSync 0x01
796#define hipCooperativeLaunchMultiDeviceNoPostSync 0x02
797#define hipCpuDeviceId ((int)-1)
798#define hipInvalidDeviceId ((int)-2)
799//Flags that can be used with hipExtLaunch Set of APIs.
801#define hipExtAnyOrderLaunch 0x01
802// Flags to be used with hipStreamWaitValue32 and hipStreamWaitValue64.
803#define hipStreamWaitValueGte 0x0
804#define hipStreamWaitValueEq 0x1
805#define hipStreamWaitValueAnd 0x2
806#define hipStreamWaitValueNor 0x3
807// Stream per thread
809#define hipStreamPerThread ((hipStream_t)2)
810
811#define hipStreamLegacy ((hipStream_t)1)
812
813// Indicates that the external memory object is a dedicated resource
814#define hipExternalMemoryDedicated 0x1
864
995 unsigned char reserved[64];
997
1051typedef struct dim3 {
1052 uint32_t x;
1053 uint32_t y;
1054 uint32_t z;
1055#ifdef __cplusplus
1056 constexpr __host__ __device__ dim3(uint32_t _x = 1, uint32_t _y = 1, uint32_t _z = 1) : x(_x), y(_y), z(_z){};
1057#endif
1058} dim3;
1062typedef struct hipLaunchParams_t {
1063 void* func;
1066 void **args;
1067 size_t sharedMem;
1073typedef struct hipFunctionLaunchParams_t {
1075 unsigned int gridDimX;
1076 unsigned int gridDimY;
1077 unsigned int gridDimZ;
1078 unsigned int blockDimX;
1079 unsigned int blockDimY;
1080 unsigned int blockDimZ;
1081 unsigned int sharedMemBytes;
1095typedef struct hipExternalMemoryHandleDesc_st {
1097 union {
1098 int fd;
1099 struct {
1100 void *handle;
1101 const void *name;
1102 } win32;
1103 const void *nvSciBufObject;
1104 } handle;
1105 unsigned long long size;
1106 unsigned int flags;
1107 unsigned int reserved[16];
1109typedef struct hipExternalMemoryBufferDesc_st {
1110 unsigned long long offset;
1111 unsigned long long size;
1112 unsigned int flags;
1113 unsigned int reserved[16];
1115typedef struct hipExternalMemoryMipmappedArrayDesc_st {
1116 unsigned long long offset;
1119 unsigned int flags;
1120 unsigned int numLevels;
1135typedef struct hipExternalSemaphoreHandleDesc_st {
1137 union {
1138 int fd;
1139 struct {
1140 void* handle;
1141 const void* name;
1142 } win32;
1143 const void* NvSciSyncObj;
1144 } handle;
1145 unsigned int flags;
1146 unsigned int reserved[16];
1149typedef struct hipExternalSemaphoreSignalParams_st {
1150 struct {
1151 struct {
1152 unsigned long long value;
1153 } fence;
1154 union {
1155 void *fence;
1156 unsigned long long reserved;
1157 } nvSciSync;
1158 struct {
1159 unsigned long long key;
1160 } keyedMutex;
1161 unsigned int reserved[12];
1162 } params;
1163 unsigned int flags;
1164 unsigned int reserved[16];
1169typedef struct hipExternalSemaphoreWaitParams_st {
1170 struct {
1171 struct {
1172 unsigned long long value;
1173 } fence;
1174 union {
1175 void *fence;
1176 unsigned long long reserved;
1177 } nvSciSync;
1178 struct {
1179 unsigned long long key;
1180 unsigned int timeoutMs;
1181 } keyedMutex;
1182 unsigned int reserved[10];
1183 } params;
1184 unsigned int flags;
1185 unsigned int reserved[16];
1187
1188#if __HIP_HAS_GET_PCH
1193 void __hipGetPCH(const char** pch, unsigned int*size);
1194#endif
1195
1208
1209typedef struct _hipGraphicsResource hipGraphicsResource;
1210
1212
1216typedef struct ihipGraph* hipGraph_t;
1220typedef struct hipGraphNode* hipGraphNode_t;
1224typedef struct hipGraphExec* hipGraphExec_t;
1225
1229typedef struct hipUserObject* hipUserObject_t;
1230
1231
1252
1253typedef void (*hipHostFn_t)(void* userData);
1266typedef struct hipMemsetParams {
1267 void* dst;
1268 unsigned int elementSize;
1269 size_t height;
1270 size_t pitch;
1271 unsigned int value;
1272 size_t width;
1274
1284
1285
1298
1307
1318
1322#define hipKernelNodeAttrID hipLaunchAttributeID
1323#define hipKernelNodeAttributeAccessPolicyWindow hipLaunchAttributeAccessPolicyWindow
1324#define hipKernelNodeAttributeCooperative hipLaunchAttributeCooperative
1325#define hipKernelNodeAttributePriority hipLaunchAttributePriority
1326
1330#define hipKernelNodeAttrValue hipLaunchAttributeValue
1331
1337 size_t pitch;
1338 unsigned int value;
1339 unsigned int elementSize;
1340 size_t width;
1341 size_t height;
1343
1361
1373
1378
1388
1392
1403
1422
1437
1448
1449
1464
1476
1488
1492typedef struct ihipMemGenericAllocationHandle* hipMemGenericAllocationHandle_t;
1493
1501
1508
1516
1524
1528typedef struct hipArrayMapInfo {
1530 union {
1535 union {
1536 struct {
1537 unsigned int level;
1538 unsigned int layer;
1539 unsigned int offsetX;
1540 unsigned int offsetY;
1541 unsigned int offsetZ;
1542 unsigned int extentWidth;
1543 unsigned int extentHeight;
1544 unsigned int extentDepth;
1546 struct {
1547 unsigned int layer;
1548 unsigned long long offset;
1549 unsigned long long size;
1554 union {
1557 unsigned long long offset;
1558 unsigned int deviceBitMask;
1559 unsigned int flags;
1560 unsigned int reserved[2];
1562
1571
1579
1586
1593
1600
1624
1628#define hipGraphKernelNodePortDefault 0
1629
1633#define hipGraphKernelNodePortLaunchCompletion 2
1634
1640#define hipGraphKernelNodePortProgrammatic 1
1641
1646
1647typedef struct hipGraphEdgeData {
1648 unsigned char
1656 unsigned char reserved[5];
1657 unsigned char
1659 unsigned char type;
1661
1662// Doxygen end group GlobalDefs
1688// TODO-ctx - more description on error codes.
1689hipError_t hipInit(unsigned int flags);
1690
1730
1739hipError_t hipDeviceComputeCapability(int* major, int* minor, hipDevice_t device);
1748hipError_t hipDeviceGetName(char* name, int len, hipDevice_t device);
1771 int srcDevice, int dstDevice);
1780hipError_t hipDeviceGetPCIBusId(char* pciBusId, int len, int device);
1788hipError_t hipDeviceGetByPCIBusId(int* device, const char* pciBusId);
1797// doxygen end initialization
1872hipError_t hipSetValidDevices(int* device_arr, int len);
2017hipError_t hipDeviceGetLimit(size_t* pValue, enum hipLimit_t limit);
2037hipError_t hipDeviceSetLimit ( enum hipLimit_t limit, size_t value );
2057hipError_t hipGetDeviceFlags(unsigned int* flags);
2116hipError_t hipExtGetLinkTypeAndHopCount(int device1, int device2, uint32_t* linktype, uint32_t* hopcount);
2117// TODO: implement IPC apis
2177hipError_t hipIpcOpenMemHandle(void** devPtr, hipIpcMemHandle_t handle, unsigned int flags);
2196
2214
2233
2234// end doxygen Device
2258hipError_t hipFuncSetAttribute(const void* func, hipFuncAttribute attr, int value);
2284//doxygen end execution
2307
2320
2340const char* hipGetErrorName(hipError_t hip_error);
2349const char* hipGetErrorString(hipError_t hipError);
2359hipError_t hipDrvGetErrorName(hipError_t hipError, const char** errorString);
2369hipError_t hipDrvGetErrorString(hipError_t hipError, const char** errorString);
2370// end doxygen Error
2435hipError_t hipStreamCreateWithPriority(hipStream_t* stream, unsigned int flags, int priority);
2450hipError_t hipDeviceGetStreamPriorityRange(int* leastPriority, int* greatestPriority);
2525hipError_t hipStreamWaitEvent(hipStream_t stream, hipEvent_t event, unsigned int flags __dparm(0));
2539hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int* flags);
2584hipError_t hipExtStreamCreateWithCUMask(hipStream_t* stream, uint32_t cuMaskSize, const uint32_t* cuMask);
2597hipError_t hipExtStreamGetCUMask(hipStream_t stream, uint32_t cuMaskSize, uint32_t* cuMask);
2601typedef void (*hipStreamCallback_t)(hipStream_t stream, hipError_t status, void* userData);
2618 unsigned int flags);
2619// end doxygen Stream
2662hipError_t hipStreamWaitValue32(hipStream_t stream, void* ptr, uint32_t value, unsigned int flags,
2663 uint32_t mask __dparm(0xFFFFFFFF));
2696hipError_t hipStreamWaitValue64(hipStream_t stream, void* ptr, uint64_t value, unsigned int flags,
2697 uint64_t mask __dparm(0xFFFFFFFFFFFFFFFF));
2717hipError_t hipStreamWriteValue32(hipStream_t stream, void* ptr, uint32_t value, unsigned int flags);
2737hipError_t hipStreamWriteValue64(hipStream_t stream, void* ptr, uint64_t value, unsigned int flags);
2738// end doxygen Stream Memory Operations
2817#ifdef __cplusplus
2819#else
2821#endif
2904// end doxygen Events
2936 hipDeviceptr_t ptr);
2937
2938
2974 hipDeviceptr_t ptr);
2991hipError_t hipDrvPointerGetAttributes(unsigned int numAttributes, hipPointer_attribute* attributes,
2992 void** data, hipDeviceptr_t ptr);
3017 const hipExternalSemaphoreHandleDesc* semHandleDesc);
3034 const hipExternalSemaphoreSignalParams* paramsArray,
3035 unsigned int numExtSems, hipStream_t stream);
3052 const hipExternalSemaphoreWaitParams* paramsArray,
3053 unsigned int numExtSems, hipStream_t stream);
3067
3116 const hipExternalMemoryMipmappedArrayDesc* mipmapDesc);
3117 // end of external resource
3134hipError_t hipMalloc(void** ptr, size_t size);
3154hipError_t hipExtMallocWithFlags(void** ptr, size_t sizeBytes, unsigned int flags);
3155
3156
3179DEPRECATED("use hipHostMalloc instead")
3180hipError_t hipMallocHost(void** ptr, size_t size);
3193DEPRECATED("use hipHostMalloc instead")
3194hipError_t hipMemAllocHost(void** ptr, size_t size);
3195// end doxygen deprecated management memory
3232hipError_t hipHostMalloc(void** ptr, size_t size, unsigned int flags);
3266 size_t size,
3267 unsigned int flags __dparm(hipMemAttachGlobal));
3281 size_t count,
3282 int device,
3283 hipStream_t stream __dparm(0));
3303hipError_t hipMemAdvise(const void* dev_ptr,
3304 size_t count,
3305 hipMemoryAdvise advice,
3306 int device);
3322 size_t data_size,
3323 hipMemRangeAttribute attribute,
3324 const void* dev_ptr,
3325 size_t count);
3343 size_t* data_sizes,
3344 hipMemRangeAttribute* attributes,
3345 size_t num_attributes,
3346 const void* dev_ptr,
3347 size_t count);
3364 void* dev_ptr,
3365 size_t length __dparm(0),
3366 unsigned int flags __dparm(hipMemAttachSingle));
3367// end doxygen Managed Memory
3427hipError_t hipMallocAsync(void** dev_ptr, size_t size, hipStream_t stream);
3452hipError_t hipFreeAsync(void* dev_ptr, hipStream_t stream);
3480hipError_t hipMemPoolTrimTo(hipMemPool_t mem_pool, size_t min_bytes_to_hold);
3576hipError_t hipMemPoolSetAccess(hipMemPool_t mem_pool, const hipMemAccessDesc* desc_list, size_t count);
3681hipError_t hipMallocFromPoolAsync(void** dev_ptr, size_t size, hipMemPool_t mem_pool, hipStream_t stream);
3709 void* shared_handle,
3710 hipMemPool_t mem_pool,
3711 hipMemAllocationHandleType handle_type,
3712 unsigned int flags);
3737 hipMemPool_t* mem_pool,
3738 void* shared_handle,
3739 hipMemAllocationHandleType handle_type,
3740 unsigned int flags);
3790 void** dev_ptr,
3791 hipMemPool_t mem_pool,
3792 hipMemPoolPtrExportData* export_data);
3793// Doxygen end of ordered memory allocator
3812DEPRECATED("use hipHostMalloc instead")
3813hipError_t hipHostAlloc(void** ptr, size_t size, unsigned int flags);
3825hipError_t hipHostGetDevicePointer(void** devPtr, void* hstPtr, unsigned int flags);
3835hipError_t hipHostGetFlags(unsigned int* flagsPtr, void* hostPtr);
3872hipError_t hipHostRegister(void* hostPtr, size_t sizeBytes, unsigned int flags);
3900hipError_t hipMallocPitch(void** ptr, size_t* pitch, size_t width, size_t height);
3923hipError_t hipMemAllocPitch(hipDeviceptr_t* dptr, size_t* pitch, size_t widthInBytes, size_t height,
3924 unsigned int elementSizeBytes);
3950DEPRECATED("use hipHostFree instead")
3995hipError_t hipMemcpy(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind);
4010hipError_t hipMemcpyWithStream(void* dst, const void* src, size_t sizeBytes,
4011 hipMemcpyKind kind, hipStream_t stream);
4029hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void* src, size_t sizeBytes);
4047hipError_t hipMemcpyDtoH(void* dst, hipDeviceptr_t src, size_t sizeBytes);
4084hipError_t hipMemcpyAtoD(hipDeviceptr_t dstDevice, hipArray_t srcArray, size_t srcOffset,
4085 size_t ByteCount);
4104hipError_t hipMemcpyDtoA(hipArray_t dstArray, size_t dstOffset, hipDeviceptr_t srcDevice,
4105 size_t ByteCount);
4106
4126hipError_t hipMemcpyAtoA(hipArray_t dstArray, size_t dstOffset, hipArray_t srcArray,
4127 size_t srcOffset, size_t ByteCount);
4146hipError_t hipMemcpyHtoDAsync(hipDeviceptr_t dst, void* src, size_t sizeBytes, hipStream_t stream);
4165hipError_t hipMemcpyDtoHAsync(void* dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream);
4185 hipStream_t stream);
4205hipError_t hipMemcpyAtoHAsync(void* dstHost, hipArray_t srcArray, size_t srcOffset,
4206 size_t ByteCount, hipStream_t stream);
4226hipError_t hipMemcpyHtoAAsync(hipArray_t dstArray, size_t dstOffset, const void* srcHost,
4227 size_t ByteCount, hipStream_t stream);
4243 hipModule_t hmod, const char* name);
4244
4254hipError_t hipGetSymbolAddress(void** devPtr, const void* symbol);
4255
4256
4257
4267hipError_t hipGetSymbolSize(size_t* size, const void* symbol);
4268
4288hipError_t hipGetProcAddress(const char* symbol, void** pfn, int hipVersion, uint64_t flags,
4289 hipDriverProcAddressQueryResult* symbolStatus);
4290
4311hipError_t hipMemcpyToSymbol(const void* symbol, const void* src,
4312 size_t sizeBytes, size_t offset __dparm(0),
4314
4328hipError_t hipMemcpyToSymbolAsync(const void* symbol, const void* src,
4329 size_t sizeBytes, size_t offset,
4330 hipMemcpyKind kind, hipStream_t stream __dparm(0));
4331
4344hipError_t hipMemcpyFromSymbol(void* dst, const void* symbol,
4345 size_t sizeBytes, size_t offset __dparm(0),
4347
4361hipError_t hipMemcpyFromSymbolAsync(void* dst, const void* symbol,
4362 size_t sizeBytes, size_t offset,
4363 hipMemcpyKind kind,
4364 hipStream_t stream __dparm(0));
4394hipError_t hipMemcpyAsync(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind,
4395 hipStream_t stream __dparm(0));
4405hipError_t hipMemset(void* dst, int value, size_t sizeBytes);
4415hipError_t hipMemsetD8(hipDeviceptr_t dest, unsigned char value, size_t count);
4431hipError_t hipMemsetD8Async(hipDeviceptr_t dest, unsigned char value, size_t count, hipStream_t stream __dparm(0));
4441hipError_t hipMemsetD16(hipDeviceptr_t dest, unsigned short value, size_t count);
4457hipError_t hipMemsetD16Async(hipDeviceptr_t dest, unsigned short value, size_t count, hipStream_t stream __dparm(0));
4467hipError_t hipMemsetD32(hipDeviceptr_t dest, int value, size_t count);
4483hipError_t hipMemsetAsync(void* dst, int value, size_t sizeBytes, hipStream_t stream __dparm(0));
4499hipError_t hipMemsetD32Async(hipDeviceptr_t dst, int value, size_t count,
4500 hipStream_t stream __dparm(0));
4511hipError_t hipMemset2D(void* dst, size_t pitch, int value, size_t width, size_t height);
4523hipError_t hipMemset2DAsync(void* dst, size_t pitch, int value, size_t width, size_t height,hipStream_t stream __dparm(0));
4532hipError_t hipMemset3D(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent );
4542hipError_t hipMemset3DAsync(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent ,hipStream_t stream __dparm(0));
4559hipError_t hipMemGetInfo(size_t* free, size_t* total);
4560
4572hipError_t hipMemPtrGetInfo(void* ptr, size_t* size);
4586 size_t height __dparm(0), unsigned int flags __dparm(hipArrayDefault));
4651 struct hipExtent extent, unsigned int flags);
4664hipError_t hipArrayGetInfo(hipChannelFormatDesc* desc, hipExtent* extent, unsigned int* flags,
4665 hipArray_t array);
4718hipError_t hipMemcpy2D(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
4719 size_t height, hipMemcpyKind kind);
4758hipError_t hipMemcpy2DAsync(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
4759 size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0));
4777hipError_t hipMemcpy2DToArray(hipArray_t dst, size_t wOffset, size_t hOffset, const void* src,
4778 size_t spitch, size_t width, size_t height, hipMemcpyKind kind);
4797hipError_t hipMemcpy2DToArrayAsync(hipArray_t dst, size_t wOffset, size_t hOffset, const void* src,
4798 size_t spitch, size_t width, size_t height, hipMemcpyKind kind,
4799 hipStream_t stream __dparm(0));
4818hipError_t hipMemcpy2DArrayToArray(hipArray_t dst, size_t wOffsetDst, size_t hOffsetDst,
4819 hipArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc,
4820 size_t width, size_t height, hipMemcpyKind kind);
4839hipError_t hipMemcpyToArray(hipArray_t dst, size_t wOffset, size_t hOffset, const void* src,
4840 size_t count, hipMemcpyKind kind);
4859hipError_t hipMemcpyFromArray(void* dst, hipArray_const_t srcArray, size_t wOffset, size_t hOffset,
4860 size_t count, hipMemcpyKind kind);
4878hipError_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);
4897hipError_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));
4911hipError_t hipMemcpyAtoH(void* dst, hipArray_t srcArray, size_t srcOffset, size_t count);
4925hipError_t hipMemcpyHtoA(hipArray_t dstArray, size_t dstOffset, const void* srcHost, size_t count);
4972// doxygen end Memory
5000hipError_t hipDeviceCanAccessPeer(int* canAccessPeer, int deviceId, int peerDeviceId);
5017hipError_t hipDeviceEnablePeerAccess(int peerDeviceId, unsigned int flags);
5043#ifndef USE_PEER_NON_UNIFIED
5044#define USE_PEER_NON_UNIFIED 1
5045#endif
5046#if USE_PEER_NON_UNIFIED == 1
5058hipError_t hipMemcpyPeer(void* dst, int dstDeviceId, const void* src, int srcDeviceId,
5059 size_t sizeBytes);
5072hipError_t hipMemcpyPeerAsync(void* dst, int dstDeviceId, const void* src, int srcDevice,
5073 size_t sizeBytes, hipStream_t stream __dparm(0));
5074#endif
5075// doxygen end PeerToPeer
5117hipError_t hipCtxCreate(hipCtx_t* ctx, unsigned int flags, hipDevice_t device);
5332hipError_t hipCtxGetFlags(unsigned int* flags);
5356hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags);
5378
5395hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int* flags, int* active);
5460// doxygen end Context Management
5487hipError_t hipModuleLoad(hipModule_t* module, const char* fname);
5508hipError_t hipModuleGetFunction(hipFunction_t* function, hipModule_t module, const char* kname);
5517hipError_t hipFuncGetAttributes(struct hipFuncAttributes* attr, const void* func);
5537hipError_t hipGetFuncBySymbol(hipFunction_t* functionPtr, const void* symbolPtr);
5557hipError_t hipModuleLoadData(hipModule_t* module, const void* image);
5570hipError_t hipModuleLoadDataEx(hipModule_t* module, const void* image, unsigned int numOptions,
5571 hipJitOption* options, void** optionValues);
5600hipError_t hipModuleLaunchKernel(hipFunction_t f, unsigned int gridDimX, unsigned int gridDimY,
5601 unsigned int gridDimZ, unsigned int blockDimX,
5602 unsigned int blockDimY, unsigned int blockDimZ,
5603 unsigned int sharedMemBytes, hipStream_t stream,
5604 void** kernelParams, void** extra);
5634 unsigned int gridDimY, unsigned int gridDimZ,
5635 unsigned int blockDimX, unsigned int blockDimY,
5636 unsigned int blockDimZ, unsigned int sharedMemBytes,
5637 hipStream_t stream, void** kernelParams);
5653 unsigned int numDevices,
5654 unsigned int flags);
5673hipError_t hipLaunchCooperativeKernel(const void* f, dim3 gridDim, dim3 blockDimX,
5674 void** kernelParams, unsigned int sharedMemBytes,
5675 hipStream_t stream);
5688 int numDevices, unsigned int flags);
5689
5690// Doxygen end group ModuleCooperativeG
5705 int numDevices, unsigned int flags);
5706// doxygen end Module
5733//TODO - Match CUoccupancyB2DSize
5735 hipFunction_t f, size_t dynSharedMemPerBlk,
5736 int blockSizeLimit);
5752//TODO - Match CUoccupancyB2DSize
5754 hipFunction_t f, size_t dynSharedMemPerBlk,
5755 int blockSizeLimit, unsigned int flags);
5766 int* numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk);
5778 int* numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags);
5789 int* numBlocks, const void* f, int blockSize, size_t dynSharedMemPerBlk);
5801 int* numBlocks, const void* f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags __dparm(hipOccupancyDefault));
5816hipError_t hipOccupancyMaxPotentialBlockSize(int* gridSize, int* blockSize,
5817 const void* f, size_t dynSharedMemPerBlk,
5818 int blockSizeLimit);
5819// doxygen end Occupancy
5833// TODO - expand descriptions:
5840DEPRECATED("use roctracer/rocTX instead")
5848DEPRECATED("use roctracer/rocTX instead")
5850// doxygen end profiler
5877hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0));
5888hipError_t hipSetupArgument(const void* arg, size_t size, size_t offset);
5897hipError_t hipLaunchByPtr(const void* func);
5915 dim3 blockDim,
5916 size_t sharedMem __dparm(0),
5917 hipStream_t stream __dparm(0));
5938 dim3 *blockDim,
5939 size_t *sharedMem,
5940 hipStream_t *stream);
5956hipError_t hipLaunchKernel(const void* function_address,
5957 dim3 numBlocks,
5958 dim3 dimBlocks,
5959 void** args,
5960 size_t sharedMemBytes __dparm(0),
5961 hipStream_t stream __dparm(0));
5962
5989
5998//TODO: Move this to hip_ext.h
6019hipError_t hipExtLaunchKernel(const void* function_address, dim3 numBlocks, dim3 dimBlocks,
6020 void** args, size_t sharedMemBytes, hipStream_t stream,
6021 hipEvent_t startEvent, hipEvent_t stopEvent, int flags);
6022// doxygen end Clang launch
6049 hipTextureObject_t* pTexObject,
6050 const hipResourceDesc* pResDesc,
6051 const hipTextureDesc* pTexDesc,
6052 const struct hipResourceViewDesc* pResViewDesc);
6053
6063
6075 hipArray_const_t array);
6076
6087 hipResourceDesc* pResDesc,
6088 hipTextureObject_t textureObject);
6089
6100 struct hipResourceViewDesc* pResViewDesc,
6101 hipTextureObject_t textureObject);
6102
6113 hipTextureDesc* pTexDesc,
6114 hipTextureObject_t textureObject);
6115
6128 hipTextureObject_t* pTexObject,
6129 const HIP_RESOURCE_DESC* pResDesc,
6130 const HIP_TEXTURE_DESC* pTexDesc,
6131 const HIP_RESOURCE_VIEW_DESC* pResViewDesc);
6132
6142 hipTextureObject_t texObject);
6143
6154 HIP_RESOURCE_DESC* pResDesc,
6155 hipTextureObject_t texObject);
6156
6167 HIP_RESOURCE_VIEW_DESC* pResViewDesc,
6168 hipTextureObject_t texObject);
6169
6180 HIP_TEXTURE_DESC* pTexDesc,
6181 hipTextureObject_t texObject);
6182
6198 hipMipmappedArray_t *mipmappedArray,
6199 const struct hipChannelFormatDesc* desc,
6200 struct hipExtent extent,
6201 unsigned int numLevels,
6202 unsigned int flags __dparm(0));
6203
6214hipError_t hipFreeMipmappedArray(hipMipmappedArray_t mipmappedArray);
6215
6229 hipArray_t *levelArray,
6230 hipMipmappedArray_const_t mipmappedArray,
6231 unsigned int level);
6232
6245 hipMipmappedArray_t* pHandle,
6246 HIP_ARRAY3D_DESCRIPTOR* pMipmappedArrayDesc,
6247 unsigned int numMipmapLevels);
6248
6259hipError_t hipMipmappedArrayDestroy(hipMipmappedArray_t hMipmappedArray);
6260
6274 hipArray_t* pLevelArray,
6275 hipMipmappedArray_t hMipMappedArray,
6276 unsigned int level);
6277
6298 const textureReference* tex,
6299 hipMipmappedArray_const_t mipmappedArray,
6300 const hipChannelFormatDesc* desc);
6301
6314 const textureReference** texref,
6315 const void* symbol);
6316
6328hipError_t hipTexRefGetBorderColor(float* pBorderColor, const textureReference* texRef);
6329
6343
6357 textureReference* texRef,
6358 int dim,
6359 enum hipTextureAddressMode am);
6374 textureReference* tex,
6375 hipArray_const_t array,
6376 unsigned int flags);
6390 textureReference* texRef,
6391 enum hipTextureFilterMode fm);
6405 textureReference* texRef,
6406 unsigned int Flags);
6421 textureReference* texRef,
6422 hipArray_Format fmt,
6423 int NumPackedComponents);
6440 size_t* offset,
6441 const textureReference* tex,
6442 const void* devPtr,
6443 const hipChannelFormatDesc* desc,
6444 size_t size __dparm(UINT_MAX));
6463 size_t* offset,
6464 const textureReference* tex,
6465 const void* devPtr,
6466 const hipChannelFormatDesc* desc,
6467 size_t width,
6468 size_t height,
6469 size_t pitch);
6484 const textureReference* tex,
6485 hipArray_const_t array,
6486 const hipChannelFormatDesc* desc);
6500 size_t* offset,
6501 const textureReference* texref);
6527 hipDeviceptr_t* dev_ptr,
6528 const textureReference* texRef);
6543 enum hipTextureAddressMode* pam,
6544 const textureReference* texRef,
6545 int dim);
6559 enum hipTextureFilterMode* pfm,
6560 const textureReference* texRef);
6574 unsigned int* pFlags,
6575 const textureReference* texRef);
6590 hipArray_Format* pFormat,
6591 int* pNumChannels,
6592 const textureReference* texRef);
6606 int* pmaxAnsio,
6607 const textureReference* texRef);
6621 enum hipTextureFilterMode* pfm,
6622 const textureReference* texRef);
6636 float* pbias,
6637 const textureReference* texRef);
6652 float* pminMipmapLevelClamp,
6653 float* pmaxMipmapLevelClamp,
6654 const textureReference* texRef);
6668 hipMipmappedArray_t* pArray,
6669 const textureReference* texRef);
6685 size_t* ByteOffset,
6686 textureReference* texRef,
6687 hipDeviceptr_t dptr,
6688 size_t bytes);
6704 textureReference* texRef,
6705 const HIP_ARRAY_DESCRIPTOR* desc,
6706 hipDeviceptr_t dptr,
6707 size_t Pitch);
6721 textureReference* texRef,
6722 unsigned int maxAniso);
6736 textureReference* texRef,
6737 float* pBorderColor);
6751 textureReference* texRef,
6752 enum hipTextureFilterMode fm);
6766 textureReference* texRef,
6767 float bias);
6782 textureReference* texRef,
6783 float minMipMapLevelClamp,
6784 float maxMipMapLevelClamp);
6799 textureReference* texRef,
6800 struct hipMipmappedArray* mipmappedArray,
6801 unsigned int Flags);
6802
6803// doxygen end deprecated texture management
6808// doxygen end Texture management
6820// This group is for HIPrtc
6821
6822// doxygen end Runtime
6841const char* hipApiName(uint32_t id);
6850const char* hipKernelNameRef(const hipFunction_t f);
6860const char* hipKernelNameRefByPtr(const void* hostFunction, hipStream_t stream);
6870
6871// doxygen end Callback
6897
6918 const hipGraphNode_t* dependencies,
6919 const hipGraphEdgeData* dependencyData,
6920 size_t numDependencies, hipStreamCaptureMode mode);
6921
6935
6950 unsigned long long* pId);
6951
6969 unsigned long long* id_out __dparm(0),
6970 hipGraph_t* graph_out __dparm(0),
6971 const hipGraphNode_t** dependencies_out __dparm(0),
6972 size_t* numDependencies_out __dparm(0));
6973
6987
7003 size_t numDependencies,
7004 unsigned int flags __dparm(0));
7005
7017
7030hipError_t hipGraphCreate(hipGraph_t* pGraph, unsigned int flags);
7031
7044
7059 const hipGraphNode_t* to, size_t numDependencies);
7060
7075 const hipGraphNode_t* to, size_t numDependencies);
7076
7095 size_t* numEdges);
7096
7113hipError_t hipGraphGetNodes(hipGraph_t graph, hipGraphNode_t* nodes, size_t* numNodes);
7114
7132 size_t* pNumRootNodes);
7133
7151 size_t* pNumDependencies);
7152
7171 size_t* pNumDependentNodes);
7172
7185
7197
7209hipError_t hipGraphClone(hipGraph_t* pGraphClone, hipGraph_t originalGraph);
7210
7224 hipGraph_t clonedGraph);
7225
7243 hipGraphNode_t* pErrorNode, char* pLogBuffer, size_t bufferSize);
7244
7258 unsigned long long flags);
7259
7272 hipGraphInstantiateParams *instantiateParams);
7284
7296
7310 const hipGraphNode_t *pDependencies, size_t numDependencies,
7311 hipGraphNodeParams *nodeParams);
7312
7324
7325// Check whether an executable graph can be updated with a graph and perform the update if possible.
7340 hipGraphNode_t* hErrorNode_out,
7341 hipGraphExecUpdateResult* updateResult_out);
7342
7356 const hipGraphNode_t* pDependencies, size_t numDependencies,
7357 const hipKernelNodeParams* pNodeParams);
7358
7369
7380
7392 const hipKernelNodeParams* pNodeParams);
7393
7408 const hipGraphNode_t* dependencies,
7409 size_t numDependencies,
7410 const HIP_MEMCPY3D* copyParams, hipCtx_t ctx);
7424 const hipGraphNode_t* pDependencies, size_t numDependencies,
7425 const hipMemcpy3DParms* pCopyParams);
7436
7447
7459 const hipKernelNodeAttrValue* value);
7471 hipKernelNodeAttrValue* value);
7483 hipMemcpy3DParms* pNodeParams);
7484
7501 const hipGraphNode_t* pDependencies, size_t numDependencies,
7502 void* dst, const void* src, size_t count, hipMemcpyKind kind);
7503
7517 size_t count, hipMemcpyKind kind);
7518
7534 void* dst, const void* src, size_t count,
7535 hipMemcpyKind kind);
7536
7554 const hipGraphNode_t* pDependencies,
7555 size_t numDependencies, void* dst, const void* symbol,
7556 size_t count, size_t offset, hipMemcpyKind kind);
7557
7572 size_t count, size_t offset, hipMemcpyKind kind);
7573
7590 void* dst, const void* symbol, size_t count,
7591 size_t offset, hipMemcpyKind kind);
7592
7610 const hipGraphNode_t* pDependencies,
7611 size_t numDependencies, const void* symbol,
7612 const void* src, size_t count, size_t offset,
7613 hipMemcpyKind kind);
7614
7629 const void* src, size_t count, size_t offset,
7630 hipMemcpyKind kind);
7631
7632
7648 const void* symbol, const void* src,
7649 size_t count, size_t offset, hipMemcpyKind kind);
7650
7664 const hipGraphNode_t* pDependencies, size_t numDependencies,
7665 const hipMemsetParams* pMemsetParams);
7666
7677
7688
7700 const hipMemsetParams* pNodeParams);
7701
7715 const hipGraphNode_t* pDependencies, size_t numDependencies,
7716 const hipHostNodeParams* pNodeParams);
7717
7728
7739
7751 const hipHostNodeParams* pNodeParams);
7752
7766 const hipGraphNode_t* pDependencies, size_t numDependencies,
7767 hipGraph_t childGraph);
7768
7779
7791 hipGraph_t childGraph);
7792
7805 const hipGraphNode_t* pDependencies, size_t numDependencies);
7806
7807
7821 const hipGraphNode_t* pDependencies, size_t numDependencies,
7822 hipEvent_t event);
7823
7834
7845
7857 hipEvent_t event);
7858
7872 const hipGraphNode_t* pDependencies, size_t numDependencies,
7873 hipEvent_t event);
7874
7875
7886
7897
7909 hipEvent_t event);
7910
7924 const hipGraphNode_t* pDependencies, size_t numDependencies, hipMemAllocNodeParams* pNodeParams);
7925
7936
7950 const hipGraphNode_t* pDependencies, size_t numDependencies, void* dev_ptr);
7951
7962
7974
7986
7997
8011 unsigned int initialRefcount, unsigned int flags);
8012
8023
8034
8047 unsigned int count __dparm(1), unsigned int flags __dparm(0));
8048
8060 unsigned int count __dparm(1));
8061
8072hipError_t hipGraphDebugDotPrint(hipGraph_t graph, const char* path, unsigned int flags);
8073
8089
8113 unsigned int isEnabled);
8135 unsigned int* isEnabled);
8136
8150 const hipGraphNode_t* pDependencies, size_t numDependencies,
8151 const hipExternalSemaphoreWaitNodeParams* nodeParams);
8152
8166 const hipGraphNode_t* pDependencies, size_t numDependencies,
8167 const hipExternalSemaphoreSignalNodeParams* nodeParams);
8178 const hipExternalSemaphoreSignalNodeParams* nodeParams);
8189 const hipExternalSemaphoreWaitNodeParams* nodeParams);
8223 const hipExternalSemaphoreSignalNodeParams* nodeParams);
8235 const hipExternalSemaphoreWaitNodeParams* nodeParams);
8236
8251 const hipGraphNode_t* dependencies, size_t numDependencies,
8252 const HIP_MEMSET_NODE_PARAMS* memsetParams, hipCtx_t ctx);
8253
8254// doxygen end graph API
8285hipError_t hipMemAddressFree(void* devPtr, size_t size);
8286
8301hipError_t hipMemAddressReserve(void** ptr, size_t size, size_t alignment, void* addr, unsigned long long flags);
8302
8316hipError_t hipMemCreate(hipMemGenericAllocationHandle_t* handle, size_t size, const hipMemAllocationProp* prop, unsigned long long flags);
8317
8331hipError_t hipMemExportToShareableHandle(void* shareableHandle, hipMemGenericAllocationHandle_t handle, hipMemAllocationHandleType handleType, unsigned long long flags);
8332
8345hipError_t hipMemGetAccess(unsigned long long* flags, const hipMemLocation* location, void* ptr);
8346
8361
8374
8388
8403hipError_t hipMemMap(void* ptr, size_t size, size_t offset, hipMemGenericAllocationHandle_t handle, unsigned long long flags);
8404
8415hipError_t hipMemMapArrayAsync(hipArrayMapInfo* mapInfoList, unsigned int count, hipStream_t stream);
8416
8428
8441
8455hipError_t hipMemSetAccess(void* ptr, size_t size, const hipMemAccessDesc* desc, size_t count);
8456
8468hipError_t hipMemUnmap(void* ptr, size_t size);
8469
8470// doxygen end virtual memory management API
8493 hipStream_t stream __dparm(0) );
8508 unsigned int arrayIndex, unsigned int mipLevel);
8520 hipGraphicsResource_t resource);
8532 hipStream_t stream __dparm(0));
8542// doxygen end GL Interop
8577// end of surface
8581#ifdef __cplusplus
8582} /* extern "c" */
8583#endif
8584#ifdef __cplusplus
8585#if defined(__clang__) && defined(__HIP__)
8586template <typename T>
8587static hipError_t __host__ inline hipOccupancyMaxPotentialBlockSize(int* gridSize, int* blockSize,
8588 T f, size_t dynSharedMemPerBlk = 0, int blockSizeLimit = 0) {
8589 return hipOccupancyMaxPotentialBlockSize(gridSize, blockSize, reinterpret_cast<const void*>(f),dynSharedMemPerBlk,blockSizeLimit);
8590}
8591template <typename T>
8592static hipError_t __host__ inline hipOccupancyMaxPotentialBlockSizeWithFlags(int* gridSize, int* blockSize,
8593 T f, size_t dynSharedMemPerBlk = 0, int blockSizeLimit = 0, unsigned int flags = 0 ) {
8594 return hipOccupancyMaxPotentialBlockSize(gridSize, blockSize, reinterpret_cast<const void*>(f),dynSharedMemPerBlk,blockSizeLimit);
8595}
8596#endif // defined(__clang__) && defined(__HIP__)
8597
8607template <typename T>
8608hipError_t hipGetSymbolAddress(void** devPtr, const T &symbol) {
8609 return ::hipGetSymbolAddress(devPtr, (const void *)&symbol);
8610}
8621template <typename T>
8622hipError_t hipGetSymbolSize(size_t* size, const T &symbol) {
8623 return ::hipGetSymbolSize(size, (const void *)&symbol);
8624}
8625
8634template <typename T>
8635hipError_t hipMemcpyToSymbol(const T& symbol, const void* src, size_t sizeBytes,
8636 size_t offset __dparm(0),
8638 return ::hipMemcpyToSymbol((const void*)&symbol, src, sizeBytes, offset, kind);
8639}
8648template <typename T>
8649hipError_t hipMemcpyToSymbolAsync(const T& symbol, const void* src, size_t sizeBytes, size_t offset,
8650 hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
8651 return ::hipMemcpyToSymbolAsync((const void*)&symbol, src, sizeBytes, offset, kind, stream);
8652}
8660template <typename T>
8661hipError_t hipMemcpyFromSymbol(void* dst, const T &symbol,
8662 size_t sizeBytes, size_t offset __dparm(0),
8664 return ::hipMemcpyFromSymbol(dst, (const void*)&symbol, sizeBytes, offset, kind);
8665}
8673template <typename T>
8674hipError_t hipMemcpyFromSymbolAsync(void* dst, const T& symbol, size_t sizeBytes, size_t offset,
8675 hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
8676 return ::hipMemcpyFromSymbolAsync(dst, (const void*)&symbol, sizeBytes, offset, kind, stream);
8677}
8678
8690template <class T>
8692 int* numBlocks, T f, int blockSize, size_t dynSharedMemPerBlk) {
8694 numBlocks, reinterpret_cast<const void*>(f), blockSize, dynSharedMemPerBlk);
8695}
8709template <class T>
8711 int* numBlocks, T f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags) {
8713 numBlocks, reinterpret_cast<const void*>(f), blockSize, dynSharedMemPerBlk, flags);
8714}
8735template<typename UnaryFunction, class T>
8736static hipError_t __host__ inline hipOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(
8737 int* min_grid_size,
8738 int* block_size,
8739 T func,
8740 UnaryFunction block_size_to_dynamic_smem_size,
8741 int block_size_limit = 0,
8742 unsigned int flags = 0) {
8743 if (min_grid_size == nullptr || block_size == nullptr ||
8744 reinterpret_cast<const void*>(func) == nullptr) {
8745 return hipErrorInvalidValue;
8746 }
8747
8748 int dev;
8749 hipError_t status;
8750 if ((status = hipGetDevice(&dev)) != hipSuccess) {
8751 return status;
8752 }
8753
8754 int max_threads_per_cu;
8755 if ((status = hipDeviceGetAttribute(&max_threads_per_cu,
8757 return status;
8758 }
8759
8760 int warp_size;
8761 if ((status = hipDeviceGetAttribute(&warp_size,
8763 return status;
8764 }
8765
8766 int max_cu_count;
8767 if ((status = hipDeviceGetAttribute(&max_cu_count,
8769 return status;
8770 }
8771
8772 struct hipFuncAttributes attr;
8773 if ((status = hipFuncGetAttributes(&attr, reinterpret_cast<const void*>(func))) != hipSuccess) {
8774 return status;
8775 }
8776
8777 // Initial limits for the execution
8778 const int func_max_threads_per_block = attr.maxThreadsPerBlock;
8779 if (block_size_limit == 0) {
8780 block_size_limit = func_max_threads_per_block;
8781 }
8782
8783 if (func_max_threads_per_block < block_size_limit) {
8784 block_size_limit = func_max_threads_per_block;
8785 }
8786
8787 const int block_size_limit_aligned =
8788 ((block_size_limit + (warp_size - 1)) / warp_size) * warp_size;
8789
8790 // For maximum search
8791 int max_threads = 0;
8792 int max_block_size{};
8793 int max_num_blocks{};
8794 for (int block_size_check_aligned = block_size_limit_aligned;
8795 block_size_check_aligned > 0;
8796 block_size_check_aligned -= warp_size) {
8797 // Make sure the logic uses the requested limit and not aligned
8798 int block_size_check = (block_size_limit < block_size_check_aligned) ?
8799 block_size_limit : block_size_check_aligned;
8800
8801 size_t dyn_smem_size = block_size_to_dynamic_smem_size(block_size_check);
8802 int optimal_blocks;
8804 &optimal_blocks, func, block_size_check, dyn_smem_size, flags)) != hipSuccess) {
8805 return status;
8806 }
8807
8808 int total_threads = block_size_check * optimal_blocks;
8809 if (total_threads > max_threads) {
8810 max_block_size = block_size_check;
8811 max_num_blocks = optimal_blocks;
8812 max_threads = total_threads;
8813 }
8814
8815 // Break if the logic reached possible maximum
8816 if (max_threads_per_cu == max_threads) {
8817 break;
8818 }
8819 }
8820
8821 // Grid size is the number of blocks per CU * CU count
8822 *min_grid_size = max_num_blocks * max_cu_count;
8823 *block_size = max_block_size;
8824
8825 return status;
8826}
8827
8847template<typename UnaryFunction, class T>
8848static hipError_t __host__ inline hipOccupancyMaxPotentialBlockSizeVariableSMem(
8849 int* min_grid_size,
8850 int* block_size,
8851 T func,
8852 UnaryFunction block_size_to_dynamic_smem_size,
8853 int block_size_limit = 0)
8854{
8855 return hipOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(min_grid_size, block_size, func,
8856 block_size_to_dynamic_smem_size, block_size_limit);
8857}
8872template <typename F>
8873inline hipError_t hipOccupancyMaxPotentialBlockSize(int* gridSize, int* blockSize,
8874 F kernel, size_t dynSharedMemPerBlk, uint32_t blockSizeLimit) {
8875return hipOccupancyMaxPotentialBlockSize(gridSize, blockSize,(hipFunction_t)kernel, dynSharedMemPerBlk, blockSizeLimit);
8876}
8898template <class T>
8899inline hipError_t hipLaunchCooperativeKernel(T f, dim3 gridDim, dim3 blockDim,
8900 void** kernelParams, unsigned int sharedMemBytes, hipStream_t stream) {
8901 return hipLaunchCooperativeKernel(reinterpret_cast<const void*>(f), gridDim,
8902 blockDim, kernelParams, sharedMemBytes, stream);
8903}
8919template <class T>
8921 unsigned int numDevices, unsigned int flags = 0) {
8922 return hipLaunchCooperativeKernelMultiDevice(launchParamsList, numDevices, flags);
8923}
8938template <class T>
8940 unsigned int numDevices, unsigned int flags = 0) {
8941 return hipExtLaunchMultiKernelMultiDevice(launchParamsList, numDevices, flags);
8942}
8956template <class T, int dim, enum hipTextureReadMode readMode>
8958static inline hipError_t hipBindTexture(size_t* offset, const struct texture<T, dim, readMode>& tex,
8959 const void* devPtr, size_t size = UINT_MAX) {
8960 return hipBindTexture(offset, &tex, devPtr, &tex.channelDesc, size);
8961}
8976template <class T, int dim, enum hipTextureReadMode readMode>
8978static inline hipError_t
8979 hipBindTexture(size_t* offset, const struct texture<T, dim, readMode>& tex, const void* devPtr,
8980 const struct hipChannelFormatDesc& desc, size_t size = UINT_MAX) {
8981 return hipBindTexture(offset, &tex, devPtr, &desc, size);
8982}
8998template<class T, int dim, enum hipTextureReadMode readMode>
9000static inline hipError_t hipBindTexture2D(
9001 size_t *offset,
9002 const struct texture<T, dim, readMode> &tex,
9003 const void *devPtr,
9004 size_t width,
9005 size_t height,
9006 size_t pitch)
9007{
9008 return hipBindTexture2D(offset, &tex, devPtr, &tex.channelDesc, width, height, pitch);
9009}
9026template<class T, int dim, enum hipTextureReadMode readMode>
9028static inline hipError_t hipBindTexture2D(
9029 size_t *offset,
9030 const struct texture<T, dim, readMode> &tex,
9031 const void *devPtr,
9032 const struct hipChannelFormatDesc &desc,
9033 size_t width,
9034 size_t height,
9035 size_t pitch)
9036{
9037 return hipBindTexture2D(offset, &tex, devPtr, &desc, width, height, pitch);
9038}
9050template<class T, int dim, enum hipTextureReadMode readMode>
9052static inline hipError_t hipBindTextureToArray(
9053 const struct texture<T, dim, readMode> &tex,
9054 hipArray_const_t array)
9055{
9056 struct hipChannelFormatDesc desc;
9057 hipError_t err = hipGetChannelDesc(&desc, array);
9058 return (err == hipSuccess) ? hipBindTextureToArray(&tex, array, &desc) : err;
9059}
9072template<class T, int dim, enum hipTextureReadMode readMode>
9074static inline hipError_t hipBindTextureToArray(
9075 const struct texture<T, dim, readMode> &tex,
9076 hipArray_const_t array,
9077 const struct hipChannelFormatDesc &desc)
9078{
9079 return hipBindTextureToArray(&tex, array, &desc);
9080}
9092template<class T, int dim, enum hipTextureReadMode readMode>
9095 const struct texture<T, dim, readMode> &tex,
9096 hipMipmappedArray_const_t mipmappedArray)
9097{
9098 struct hipChannelFormatDesc desc;
9099 hipArray_t levelArray;
9100 hipError_t err = hipGetMipmappedArrayLevel(&levelArray, mipmappedArray, 0);
9101 if (err != hipSuccess) {
9102 return err;
9103 }
9104 err = hipGetChannelDesc(&desc, levelArray);
9105 return (err == hipSuccess) ? hipBindTextureToMipmappedArray(&tex, mipmappedArray, &desc) : err;
9106}
9119template<class T, int dim, enum hipTextureReadMode readMode>
9122 const struct texture<T, dim, readMode> &tex,
9123 hipMipmappedArray_const_t mipmappedArray,
9124 const struct hipChannelFormatDesc &desc)
9125{
9126 return hipBindTextureToMipmappedArray(&tex, mipmappedArray, &desc);
9127}
9138template<class T, int dim, enum hipTextureReadMode readMode>
9140static inline hipError_t hipUnbindTexture(
9141 const struct texture<T, dim, readMode> &tex)
9142{
9143 return hipUnbindTexture(&tex);
9144}
9168static inline hipError_t hipMallocAsync(
9169 void** dev_ptr,
9170 size_t size,
9171 hipMemPool_t mem_pool,
9172 hipStream_t stream) {
9173 return hipMallocFromPoolAsync(dev_ptr, size, mem_pool, stream);
9174}
9185template<class T>
9186static inline hipError_t hipMallocAsync(
9187 T** dev_ptr,
9188 size_t size,
9189 hipMemPool_t mem_pool,
9190 hipStream_t stream) {
9191 return hipMallocFromPoolAsync(reinterpret_cast<void**>(dev_ptr), size, mem_pool, stream);
9192}
9203template<class T>
9204static inline hipError_t hipMallocAsync(
9205 T** dev_ptr,
9206 size_t size,
9207 hipStream_t stream) {
9208 return hipMallocAsync(reinterpret_cast<void**>(dev_ptr), size, stream);
9209}
9220template<class T>
9222 T** dev_ptr,
9223 size_t size,
9224 hipMemPool_t mem_pool,
9225 hipStream_t stream) {
9226 return hipMallocFromPoolAsync(reinterpret_cast<void**>(dev_ptr), size, mem_pool, stream);
9227}
9233#endif // __cplusplus
9234
9235#ifdef __GNUC__
9236#pragma GCC visibility pop
9237#endif
9238
9239
9240#elif !defined(__HIP_PLATFORM_AMD__) && defined(__HIP_PLATFORM_NVIDIA__)
9241#include "hip/nvidia_detail/nvidia_hip_runtime_api.h"
9242#else
9243#error("Must define exactly one of __HIP_PLATFORM_AMD__ or __HIP_PLATFORM_NVIDIA__");
9244#endif
9245
9246
9258#if defined(__cplusplus) && !defined(__HIP_DISABLE_CPP_FUNCTIONS__)
9259template <class T>
9260static inline hipError_t hipMalloc(T** devPtr, size_t size) {
9261 return hipMalloc((void**)devPtr, size);
9262}
9275template <class T>
9276static inline hipError_t hipHostMalloc(T** ptr, size_t size,
9277 unsigned int flags = hipHostMallocDefault) {
9278 return hipHostMalloc((void**)ptr, size, flags);
9279}
9294template <class T>
9295static inline hipError_t hipMallocManaged(T** devPtr, size_t size,
9296 unsigned int flags = hipMemAttachGlobal) {
9297 return hipMallocManaged((void**)devPtr, size, flags);
9298}
9299
9300
9301#endif
9302#endif
9303// doxygen end HIP API
9307#include <hip/amd_detail/amd_hip_runtime_pt_api.h>
9308
9309#if USE_PROF_API
9310#include <hip/amd_detail/hip_prof_str.h>
9311#endif
const char * hipApiName(uint32_t id)
Returns HIP API name by ID.
const char * hipKernelNameRef(const hipFunction_t f)
Returns kernel name reference by function name.
const char * hipKernelNameRefByPtr(const void *hostFunction, hipStream_t stream)
Retrives kernel for a given host pointer, unless stated otherwise.
int hipGetStreamDeviceId(hipStream_t stream)
Returns device ID on the stream.
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 hipLaunchHostFunc(hipStream_t stream, hipHostFn_t fn, void *userData)
Enqueues a host function call in a stream.
hipError_t hipLaunchKernel(const void *function_address, dim3 numBlocks, dim3 dimBlocks, void **args, size_t sharedMemBytes, hipStream_t stream)
C compliant kernel launch API.
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 __hipPushCallConfiguration(dim3 gridDim, dim3 blockDim, size_t sharedMem, hipStream_t stream)
Push configuration of a kernel launch.
hipError_t hipLaunchByPtr(const void *func)
Launch a kernel.
hipError_t hipDrvMemcpy2DUnaligned(const hip_Memcpy2D *pCopy)
hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem, hipStream_t stream)
Configure a kernel launch.
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 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 hipCtxGetCurrent(hipCtx_t *ctx)
Get the handle of the current/ default context.
hipError_t hipDevicePrimaryCtxRelease(hipDevice_t dev)
Release the primary context on the GPU.
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)
Get 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 hipDevicePrimaryCtxRetain(hipCtx_t *pctx, hipDevice_t dev)
Retain the primary context on the GPU.
hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int *apiVersion)
Returns the approximate HIP api version.
hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev)
Resets the primary context on the GPU.
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 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 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)
Gets 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)
Sets 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 hipSetValidDevices(int *device_arr, int len)
Set a list of devices that can be used.
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 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 attribute of link between two devices.
hipError_t hipDriverGetVersion(int *driverVersion)
Returns the approximate HIP driver version.
hipMemcpyKind
Definition driver_types.h:376
hipPointer_attribute
Definition driver_types.h:517
struct hipArray * hipArray_t
Definition driver_types.h:76
void * hipDeviceptr_t
Definition driver_types.h:47
hipFunction_attribute
Definition driver_types.h:503
const struct hipArray * hipArray_const_t
Definition driver_types.h:77
hipArray_Format
Definition driver_types.h:81
hipResourceType
Definition driver_types.h:160
@ hipMemcpyDeviceToHost
Device-to-Host Copy.
Definition driver_types.h:379
@ hipMemcpyHostToDevice
Host-to-Device Copy.
Definition driver_types.h:378
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 hipDrvGetErrorString(hipError_t hipError, const char **errorString)
Return handy text string message to explain the error which occurred.
hipError_t hipGetLastError(void)
Return last error returned by any HIP runtime API call and resets the stored error code to hipSuccess...
hipError_t hipExtGetLastError(void)
Return last error returned by any HIP runtime API call and resets the stored error code to hipSuccess...
hipError_t hipDrvGetErrorName(hipError_t hipError, const char **errorString)
Return hip error as text string form.
const char * hipGetErrorName(hipError_t hip_error)
Return hip error as text string form.
hipError_t hipEventSynchronize(hipEvent_t event)
Wait for an event to complete.
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 hipEventRecord(hipEvent_t event, hipStream_t stream=NULL)
Record an event in the specified stream.
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.
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 hipImportExternalMemory(hipExternalMemory_t *extMem_out, const hipExternalMemoryHandleDesc *memHandleDesc)
Imports an external memory object.
hipError_t hipDestroyExternalSemaphore(hipExternalSemaphore_t extSem)
Destroys an external semaphore object and releases any references to the underlying resource....
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 hipSignalExternalSemaphoresAsync(const hipExternalSemaphore_t *extSemArray, const hipExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, hipStream_t stream)
Signals a set of external semaphore objects.
hipError_t hipExternalMemoryGetMappedMipmappedArray(hipMipmappedArray_t *mipmap, hipExternalMemory_t extMem, const hipExternalMemoryMipmappedArrayDesc *mipmapDesc)
Maps a mipmapped array onto an external memory object.
hipError_t hipExternalMemoryGetMappedBuffer(void **devPtr, hipExternalMemory_t extMem, const hipExternalMemoryBufferDesc *bufferDesc)
Maps a buffer onto an imported memory object.
hipError_t hipGraphicsUnregisterResource(hipGraphicsResource_t resource)
Unregisters a graphics resource.
hipError_t hipGraphicsUnmapResources(int count, hipGraphicsResource_t *resources, hipStream_t stream)
Unmaps graphics resources.
hipError_t hipGraphicsSubResourceGetMappedArray(hipArray_t *array, hipGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel)
Get an array through which to access a subresource of a mapped graphics resource.
hipError_t hipGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, hipGraphicsResource_t resource)
Gets device accessible address of a graphics resource.
hipError_t hipGraphicsMapResources(int count, hipGraphicsResource_t *resources, hipStream_t stream)
Maps a graphics resource for access.
hipLimit_t
Definition hip_runtime_api.h:651
hipMemAllocationHandleType
Definition hip_runtime_api.h:971
hipGraphicsResource * hipGraphicsResource_t
Definition hip_runtime_api.h:1211
struct ihipCtx_t * hipCtx_t
Definition hip_runtime_api.h:606
#define __dparm(x)
Definition hip_runtime_api.h:587
struct ihipStream_t * hipStream_t
Definition hip_runtime_api.h:615
hipGraphInstantiateResult
Definition hip_runtime_api.h:1426
int hipDevice_t
Definition hip_runtime_api.h:608
hipAccessProperty
Definition hip_runtime_api.h:1286
hipGraphDependencyType
Definition hip_runtime_api.h:1642
hipMemRangeAttribute
Definition hip_runtime_api.h:853
#define hipMemAttachSingle
Definition hip_runtime_api.h:737
hipMemoryAdvise
Definition hip_runtime_api.h:820
#define hipArrayDefault
Definition hip_runtime_api.h:788
hipSharedMemConfig
Definition hip_runtime_api.h:1041
#define hipKernelNodeAttrValue
Definition hip_runtime_api.h:1330
hipComputeMode
Definition hip_runtime_api.h:548
struct ihipEvent_t * hipEvent_t
Definition hip_runtime_api.h:643
hipStreamCaptureMode
Definition hip_runtime_api.h:1362
hipDriverProcAddressQueryResult
Definition hip_runtime_api.h:542
hipLaunchAttributeID
Definition hip_runtime_api.h:1302
hipGraphNodeType
Definition hip_runtime_api.h:1235
hipExternalMemoryHandleType
Definition hip_runtime_api.h:1085
#define hipMemAttachGlobal
Definition hip_runtime_api.h:731
hipFuncAttribute
Definition hip_runtime_api.h:1024
hipExternalSemaphoreHandleType
Definition hip_runtime_api.h:1123
hipJitOption
Definition hip_runtime_api.h:1001
hipDeviceP2PAttr
Definition hip_runtime_api.h:609
hipGraphDebugDotFlags
Definition hip_runtime_api.h:1404
hipUserObjectRetainFlags
Definition hip_runtime_api.h:1389
enum __HIP_NODISCARD hipError_t hipError_t
Definition hip_runtime_api.h:287
void(* hipHostFn_t)(void *userData)
Definition hip_runtime_api.h:1253
#define hipOccupancyDefault
Definition hip_runtime_api.h:793
hipStreamUpdateCaptureDependenciesFlags
Definition hip_runtime_api.h:1374
struct ihipGraph * hipGraph_t
Definition hip_runtime_api.h:1216
#define hipChooseDevice
Definition hip_runtime_api.h:93
hipMemHandleType
Definition hip_runtime_api.h:1505
hipFlushGPUDirectRDMAWritesOptions
Definition hip_runtime_api.h:555
hipFuncCache_t
Definition hip_runtime_api.h:1032
hipUserObjectFlags
Definition hip_runtime_api.h:1385
#define __HIP_NODISCARD
Definition hip_runtime_api.h:277
#define DEPRECATED_MSG
Definition hip_runtime_api.h:582
hipGraphMemAttributeType
Definition hip_runtime_api.h:1379
hipMemPoolAttr
Definition hip_runtime_api.h:869
#define hipDeviceProp_t
Definition hip_runtime_api.h:92
struct ihipModule_t * hipModule_t
Definition hip_runtime_api.h:624
struct hipUserObject * hipUserObject_t
Definition hip_runtime_api.h:1229
hipMemOperationType
Definition hip_runtime_api.h:1512
void * hipExternalSemaphore_t
Definition hip_runtime_api.h:1148
hipGraphicsRegisterFlags
Definition hip_runtime_api.h:1199
hipMemRangeCoherencyMode
Definition hip_runtime_api.h:841
hipMemAccessFlags
Definition hip_runtime_api.h:944
hipMemAllocationGranularity_flags
Definition hip_runtime_api.h:1497
struct hipGraphExec * hipGraphExec_t
Definition hip_runtime_api.h:1224
hipGraphExecUpdateResult
Definition hip_runtime_api.h:1347
struct ihipModuleSymbol_t * hipFunction_t
Definition hip_runtime_api.h:625
#define hipKernelNodeAttrID
Definition hip_runtime_api.h:1322
void * hipExternalMemory_t
Definition hip_runtime_api.h:1122
hipStreamCaptureStatus
Definition hip_runtime_api.h:1367
hipDeviceAttribute_t
Definition hip_runtime_api.h:407
hipGPUDirectRDMAWritesOrdering
Definition hip_runtime_api.h:560
#define hipGetDeviceProperties
Definition hip_runtime_api.h:91
#define DEPRECATED(msg)
Definition hip_runtime_api.h:580
#define hipHostMallocDefault
Definition hip_runtime_api.h:704
struct _hipGraphicsResource hipGraphicsResource
Definition hip_runtime_api.h:1209
hipMemAllocationType
Definition hip_runtime_api.h:959
struct hipGraphNode * hipGraphNode_t
Definition hip_runtime_api.h:1220
struct ihipMemGenericAllocationHandle * hipMemGenericAllocationHandle_t
Definition hip_runtime_api.h:1492
hipMemoryType
Definition hip_runtime_api.h:245
hipGraphInstantiateFlags
Definition hip_runtime_api.h:1393
hipMemLocationType
Definition hip_runtime_api.h:927
#define HIP_IPC_HANDLE_SIZE
Definition hip_runtime_api.h:617
struct ihipMemPoolHandle_t * hipMemPool_t
Definition hip_runtime_api.h:629
hipArraySparseSubresourceType
Definition hip_runtime_api.h:1520
@ hipLimitMallocHeapSize
Definition hip_runtime_api.h:657
@ hipLimitStackSize
Definition hip_runtime_api.h:652
@ hipLimitRange
Supported limit range.
Definition hip_runtime_api.h:659
@ hipLimitPrintfFifoSize
Definition hip_runtime_api.h:655
@ hipMemHandleTypeWin32
Allows a Win32 NT handle for exporting. (HANDLE)
Definition hip_runtime_api.h:974
@ hipMemHandleTypeWin32Kmt
Allows a Win32 KMT handle for exporting. (D3DKMT_HANDLE)
Definition hip_runtime_api.h:975
@ hipMemHandleTypeNone
Does not allow any export mechanism.
Definition hip_runtime_api.h:972
@ hipMemHandleTypePosixFileDescriptor
Allows a file descriptor for exporting. Permitted only on POSIX systems.
Definition hip_runtime_api.h:973
@ hipGraphInstantiateNodeOperationNotSupported
Definition hip_runtime_api.h:1432
@ hipGraphInstantiateMultipleDevicesNotSupported
Definition hip_runtime_api.h:1434
@ hipGraphInstantiateError
Definition hip_runtime_api.h:1428
@ hipGraphInstantiateInvalidStructure
Definition hip_runtime_api.h:1430
@ hipGraphInstantiateSuccess
Definition hip_runtime_api.h:1427
@ hipAccessPropertyNormal
Definition hip_runtime_api.h:1287
@ hipAccessPropertyPersisting
Definition hip_runtime_api.h:1289
@ hipAccessPropertyStreaming
Definition hip_runtime_api.h:1288
@ hipGraphDependencyTypeDefault
Definition hip_runtime_api.h:1643
@ hipGraphDependencyTypeProgrammatic
Definition hip_runtime_api.h:1644
@ hipMemRangeAttributeLastPrefetchLocation
prefetched
Definition hip_runtime_api.h:859
@ hipMemRangeAttributePreferredLocation
The preferred location of the range.
Definition hip_runtime_api.h:856
@ hipMemRangeAttributeAccessedBy
Definition hip_runtime_api.h:857
@ hipMemRangeAttributeReadMostly
Definition hip_runtime_api.h:854
@ hipMemRangeAttributeCoherencyMode
Definition hip_runtime_api.h:861
@ hipMemAdviseUnsetAccessedBy
Definition hip_runtime_api.h:829
@ hipMemAdviseUnsetCoarseGrain
Restores cache coherency policy back to fine-grain.
Definition hip_runtime_api.h:836
@ hipMemAdviseSetCoarseGrain
Definition hip_runtime_api.h:831
@ hipMemAdviseUnsetPreferredLocation
Clear the preferred location for the data.
Definition hip_runtime_api.h:826
@ hipMemAdviseSetAccessedBy
Definition hip_runtime_api.h:827
@ hipMemAdviseSetPreferredLocation
Definition hip_runtime_api.h:824
@ hipMemAdviseSetReadMostly
Definition hip_runtime_api.h:821
@ hipMemAdviseUnsetReadMostly
Undo the effect of hipMemAdviseSetReadMostly.
Definition hip_runtime_api.h:823
@ hipSharedMemBankSizeFourByte
Definition hip_runtime_api.h:1043
@ hipSharedMemBankSizeEightByte
Definition hip_runtime_api.h:1045
@ hipSharedMemBankSizeDefault
The compiler selects a device-specific value for the banking.
Definition hip_runtime_api.h:1042
@ hipComputeModeProhibited
Definition hip_runtime_api.h:551
@ hipComputeModeExclusive
Definition hip_runtime_api.h:550
@ hipComputeModeDefault
Definition hip_runtime_api.h:549
@ hipComputeModeExclusiveProcess
Definition hip_runtime_api.h:552
@ hipStreamCaptureModeRelaxed
Definition hip_runtime_api.h:1365
@ hipStreamCaptureModeThreadLocal
Definition hip_runtime_api.h:1364
@ hipStreamCaptureModeGlobal
Definition hip_runtime_api.h:1363
@ HIP_GET_PROC_ADDRESS_SYMBOL_NOT_FOUND
Definition hip_runtime_api.h:544
@ HIP_GET_PROC_ADDRESS_SUCCESS
Definition hip_runtime_api.h:543
@ HIP_GET_PROC_ADDRESS_VERSION_NOT_SUFFICIENT
Definition hip_runtime_api.h:545
@ hipLaunchAttributePriority
Definition hip_runtime_api.h:1305
@ hipLaunchAttributeAccessPolicyWindow
Definition hip_runtime_api.h:1303
@ hipLaunchAttributeCooperative
Definition hip_runtime_api.h:1304
@ hipGraphNodeTypeGraph
Node which executes an embedded graph.
Definition hip_runtime_api.h:1240
@ hipGraphNodeTypeMemset
Memset node.
Definition hip_runtime_api.h:1238
@ hipGraphNodeTypeEventRecord
External event record node.
Definition hip_runtime_api.h:1243
@ hipGraphNodeTypeExtSemaphoreSignal
External Semaphore signal node.
Definition hip_runtime_api.h:1244
@ hipGraphNodeTypeMemcpy
Memcpy node.
Definition hip_runtime_api.h:1237
@ hipGraphNodeTypeWaitEvent
External event wait node.
Definition hip_runtime_api.h:1242
@ hipGraphNodeTypeCount
Definition hip_runtime_api.h:1250
@ hipGraphNodeTypeKernel
GPU kernel node.
Definition hip_runtime_api.h:1236
@ hipGraphNodeTypeHost
Host (executable) node.
Definition hip_runtime_api.h:1239
@ hipGraphNodeTypeMemAlloc
Memory alloc node.
Definition hip_runtime_api.h:1246
@ hipGraphNodeTypeMemFree
Memory free node.
Definition hip_runtime_api.h:1247
@ hipGraphNodeTypeMemcpyFromSymbol
MemcpyFromSymbol node.
Definition hip_runtime_api.h:1248
@ hipGraphNodeTypeMemcpyToSymbol
MemcpyToSymbol node.
Definition hip_runtime_api.h:1249
@ hipGraphNodeTypeEmpty
Empty (no-op) node.
Definition hip_runtime_api.h:1241
@ hipGraphNodeTypeExtSemaphoreWait
External Semaphore wait node.
Definition hip_runtime_api.h:1245
@ hipExternalMemoryHandleTypeD3D11Resource
Definition hip_runtime_api.h:1091
@ hipExternalMemoryHandleTypeD3D12Resource
Definition hip_runtime_api.h:1090
@ hipExternalMemoryHandleTypeNvSciBuf
Definition hip_runtime_api.h:1093
@ hipExternalMemoryHandleTypeOpaqueFd
Definition hip_runtime_api.h:1086
@ hipExternalMemoryHandleTypeD3D12Heap
Definition hip_runtime_api.h:1089
@ hipExternalMemoryHandleTypeOpaqueWin32Kmt
Definition hip_runtime_api.h:1088
@ hipExternalMemoryHandleTypeOpaqueWin32
Definition hip_runtime_api.h:1087
@ hipExternalMemoryHandleTypeD3D11ResourceKmt
Definition hip_runtime_api.h:1092
@ hipFuncAttributePreferredSharedMemoryCarveout
Definition hip_runtime_api.h:1026
@ hipFuncAttributeMaxDynamicSharedMemorySize
Definition hip_runtime_api.h:1025
@ hipFuncAttributeMax
Definition hip_runtime_api.h:1027
@ hipExternalSemaphoreHandleTypeNvSciSync
Definition hip_runtime_api.h:1129
@ hipExternalSemaphoreHandleTypeKeyedMutexKmt
Definition hip_runtime_api.h:1131
@ hipExternalSemaphoreHandleTypeOpaqueWin32Kmt
Definition hip_runtime_api.h:1126
@ hipExternalSemaphoreHandleTypeKeyedMutex
Definition hip_runtime_api.h:1130
@ hipExternalSemaphoreHandleTypeD3D11Fence
Definition hip_runtime_api.h:1128
@ hipExternalSemaphoreHandleTypeTimelineSemaphoreWin32
Definition hip_runtime_api.h:1133
@ hipExternalSemaphoreHandleTypeOpaqueFd
Definition hip_runtime_api.h:1124
@ hipExternalSemaphoreHandleTypeOpaqueWin32
Definition hip_runtime_api.h:1125
@ hipExternalSemaphoreHandleTypeTimelineSemaphoreFd
Definition hip_runtime_api.h:1132
@ hipExternalSemaphoreHandleTypeD3D12Fence
Definition hip_runtime_api.h:1127
@ hipJitOptionCacheMode
Definition hip_runtime_api.h:1016
@ hipJitOptionFastCompile
Definition hip_runtime_api.h:1018
@ hipJitOptionInfoLogBuffer
Definition hip_runtime_api.h:1005
@ hipJitOptionErrorLogBuffer
Definition hip_runtime_api.h:1007
@ hipJitOptionTarget
Definition hip_runtime_api.h:1011
@ hipJitOptionThreadsPerBlock
Definition hip_runtime_api.h:1003
@ hipJitOptionNumOptions
Definition hip_runtime_api.h:1019
@ hipJitOptionGenerateLineInfo
Definition hip_runtime_api.h:1015
@ hipJitOptionOptimizationLevel
Definition hip_runtime_api.h:1009
@ hipJitOptionErrorLogBufferSizeBytes
Definition hip_runtime_api.h:1008
@ hipJitOptionWallTime
Definition hip_runtime_api.h:1004
@ hipJitOptionInfoLogBufferSizeBytes
Definition hip_runtime_api.h:1006
@ hipJitOptionTargetFromContext
Definition hip_runtime_api.h:1010
@ hipJitOptionGenerateDebugInfo
Definition hip_runtime_api.h:1013
@ hipJitOptionLogVerbose
Definition hip_runtime_api.h:1014
@ hipJitOptionMaxRegisters
Definition hip_runtime_api.h:1002
@ hipJitOptionSm3xOpt
Definition hip_runtime_api.h:1017
@ hipJitOptionFallbackStrategy
Definition hip_runtime_api.h:1012
@ hipDevP2PAttrAccessSupported
Definition hip_runtime_api.h:611
@ hipDevP2PAttrHipArrayAccessSupported
Definition hip_runtime_api.h:613
@ hipDevP2PAttrNativeAtomicSupported
Definition hip_runtime_api.h:612
@ hipDevP2PAttrPerformanceRank
Definition hip_runtime_api.h:610
@ hipGraphDebugDotFlagsKernelNodeAttributes
Definition hip_runtime_api.h:1417
@ hipGraphDebugDotFlagsMemsetNodeParams
Definition hip_runtime_api.h:1409
@ hipGraphDebugDotFlagsKernelNodeParams
Definition hip_runtime_api.h:1407
@ hipGraphDebugDotFlagsExtSemasWaitNodeParams
Definition hip_runtime_api.h:1415
@ hipGraphDebugDotFlagsHandles
Definition hip_runtime_api.h:1419
@ hipGraphDebugDotFlagsExtSemasSignalNodeParams
Definition hip_runtime_api.h:1413
@ hipGraphDebugDotFlagsHostNodeParams
Definition hip_runtime_api.h:1410
@ hipGraphDebugDotFlagsEventNodeParams
Definition hip_runtime_api.h:1411
@ hipGraphDebugDotFlagsVerbose
Definition hip_runtime_api.h:1405
@ hipGraphDebugDotFlagsMemcpyNodeParams
Definition hip_runtime_api.h:1408
@ hipGraphUserObjectMove
Add new reference or retain.
Definition hip_runtime_api.h:1390
@ hipStreamAddCaptureDependencies
Add new nodes to the dependency set.
Definition hip_runtime_api.h:1375
@ hipStreamSetCaptureDependencies
Replace the dependency set with the new nodes.
Definition hip_runtime_api.h:1376
@ hipMemHandleTypeGeneric
Generic handle type.
Definition hip_runtime_api.h:1506
@ hipFlushGPUDirectRDMAWritesOptionHost
Definition hip_runtime_api.h:556
@ hipFlushGPUDirectRDMAWritesOptionMemOps
Definition hip_runtime_api.h:557
@ hipFuncCachePreferNone
no preference for shared memory or L1 (default)
Definition hip_runtime_api.h:1033
@ hipFuncCachePreferEqual
prefer equal size L1 cache and shared memory
Definition hip_runtime_api.h:1036
@ hipFuncCachePreferL1
prefer larger L1 cache and smaller shared memory
Definition hip_runtime_api.h:1035
@ hipFuncCachePreferShared
prefer larger shared memory and smaller L1 cache
Definition hip_runtime_api.h:1034
@ hipUserObjectNoDestructorSync
Destructor execution is not synchronized.
Definition hip_runtime_api.h:1386
@ hipGraphMemAttrReservedMemHigh
High watermark of memory, in bytes, currently allocated for graphs.
Definition hip_runtime_api.h:1383
@ hipGraphMemAttrUsedMemCurrent
Amount of memory, in bytes, currently associated with graphs.
Definition hip_runtime_api.h:1380
@ hipGraphMemAttrUsedMemHigh
High watermark of memory, in bytes, associated with graphs since the last time.
Definition hip_runtime_api.h:1381
@ hipGraphMemAttrReservedMemCurrent
Amount of memory, in bytes, currently allocated for graphs.
Definition hip_runtime_api.h:1382
@ hipMemPoolAttrUsedMemCurrent
Definition hip_runtime_api.h:916
@ hipMemPoolAttrReservedMemHigh
Definition hip_runtime_api.h:911
@ hipMemPoolAttrReservedMemCurrent
Definition hip_runtime_api.h:905
@ hipMemPoolAttrReleaseThreshold
Definition hip_runtime_api.h:900
@ hipMemPoolAttrUsedMemHigh
Definition hip_runtime_api.h:922
@ hipMemPoolReuseAllowInternalDependencies
Definition hip_runtime_api.h:891
@ hipMemPoolReuseFollowEventDependencies
Definition hip_runtime_api.h:878
@ hipMemPoolReuseAllowOpportunistic
Definition hip_runtime_api.h:884
@ hipMemOperationTypeMap
Map operation.
Definition hip_runtime_api.h:1513
@ hipMemOperationTypeUnmap
Unmap operation.
Definition hip_runtime_api.h:1514
@ hipGraphicsRegisterFlagsReadOnly
HIP will not write to this registered resource.
Definition hip_runtime_api.h:1201
@ hipGraphicsRegisterFlagsTextureGather
HIP will perform texture gather operations on this registered resource.
Definition hip_runtime_api.h:1205
@ hipGraphicsRegisterFlagsWriteDiscard
HIP will only write and will not read from this registered resource.
Definition hip_runtime_api.h:1202
@ hipGraphicsRegisterFlagsNone
Definition hip_runtime_api.h:1200
@ hipGraphicsRegisterFlagsSurfaceLoadStore
HIP will bind this resource to a surface.
Definition hip_runtime_api.h:1204
@ hipMemRangeCoherencyModeFineGrain
Definition hip_runtime_api.h:842
@ hipMemRangeCoherencyModeIndeterminate
Definition hip_runtime_api.h:846
@ hipMemRangeCoherencyModeCoarseGrain
Definition hip_runtime_api.h:844
@ hipMemAccessFlagsProtRead
Set the address range read accessible.
Definition hip_runtime_api.h:946
@ hipMemAccessFlagsProtNone
Default, make the address range not accessible.
Definition hip_runtime_api.h:945
@ hipMemAccessFlagsProtReadWrite
Set the address range read-write accessible.
Definition hip_runtime_api.h:947
@ hipMemAllocationGranularityMinimum
Minimum granularity.
Definition hip_runtime_api.h:1498
@ hipMemAllocationGranularityRecommended
Recommended granularity for performance.
Definition hip_runtime_api.h:1499
@ hipGraphExecUpdateErrorNotSupported
The update failed because something about the node is not supported.
Definition hip_runtime_api.h:1357
@ hipGraphExecUpdateErrorNodeTypeChanged
The update failed because a node type changed.
Definition hip_runtime_api.h:1352
@ hipGraphExecUpdateErrorTopologyChanged
The update failed because the topology changed.
Definition hip_runtime_api.h:1351
@ hipGraphExecUpdateErrorUnsupportedFunctionChange
Definition hip_runtime_api.h:1359
@ hipGraphExecUpdateError
Definition hip_runtime_api.h:1349
@ hipGraphExecUpdateErrorFunctionChanged
The update failed because the function of a kernel node changed.
Definition hip_runtime_api.h:1353
@ hipGraphExecUpdateSuccess
The update succeeded.
Definition hip_runtime_api.h:1348
@ hipGraphExecUpdateErrorParametersChanged
The update failed because the parameters changed in a way that is not supported.
Definition hip_runtime_api.h:1355
@ hipStreamCaptureStatusInvalidated
Definition hip_runtime_api.h:1370
@ hipStreamCaptureStatusNone
Stream is not capturing.
Definition hip_runtime_api.h:1368
@ hipStreamCaptureStatusActive
Stream is actively capturing.
Definition hip_runtime_api.h:1369
@ hipDeviceAttributeDirectManagedMemAccessFromHost
Definition hip_runtime_api.h:425
@ hipDeviceAttributeSurfaceAlignment
Alignment requirement for surfaces.
Definition hip_runtime_api.h:495
@ hipDeviceAttributeMaxGridDimX
Max grid size in width.
Definition hip_runtime_api.h:442
@ hipDeviceAttributeMaxSurfaceCubemapLayered
Cuda only. Maximum dimension of Cubemap layered surface.
Definition hip_runtime_api.h:451
@ hipDeviceAttributeMaxSurface3D
Maximum dimension (width, height, depth) of 3D surface.
Definition hip_runtime_api.h:449
@ hipDeviceAttributeMaxPitch
Maximum pitch in bytes allowed by memory copies.
Definition hip_runtime_api.h:472
@ hipDeviceAttributeTccDriver
Cuda only. Whether device is a Tesla device using TCC driver.
Definition hip_runtime_api.h:496
@ hipDeviceAttributeHostNativeAtomicSupported
Link between the device and the host supports native atomic operations.
Definition hip_runtime_api.h:428
@ hipDeviceAttributePageableMemoryAccessUsesHostPageTables
Device accesses pageable memory via the host's page tables.
Definition hip_runtime_api.h:481
@ hipDeviceAttributeUnused5
Previously hipDeviceAttributeGcnArchName.
Definition hip_runtime_api.h:516
@ hipDeviceAttributeMaxBlockDimY
Max block size in height.
Definition hip_runtime_api.h:440
@ hipDeviceAttributeMaxSurfaceCubemap
Cuda only. Maximum dimensions of Cubemap surface.
Definition hip_runtime_api.h:450
@ hipDeviceAttributePageableMemoryAccess
Definition hip_runtime_api.h:479
@ hipDeviceAttributeClockRate
Peak clock frequency in kilohertz.
Definition hip_runtime_api.h:416
@ hipDeviceAttributeCudaCompatibleEnd
Definition hip_runtime_api.h:509
@ hipDeviceAttributeMaxTexture1DMipmap
Maximum size of 1D mipmapped texture.
Definition hip_runtime_api.h:456
@ hipDeviceAttributeComputeCapabilityMajor
Major compute capability version number.
Definition hip_runtime_api.h:436
@ hipDeviceAttributeGlobalL1CacheSupported
Device supports caching globals in L1.
Definition hip_runtime_api.h:427
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem
Definition hip_runtime_api.h:525
@ hipDeviceAttributeAccessPolicyMaxWindowSize
Cuda only. The maximum size of the window policy in bytes.
Definition hip_runtime_api.h:411
@ hipDeviceAttributeMaxTexture3DHeight
Maximum dimension height of 3D texture.
Definition hip_runtime_api.h:464
@ hipDeviceAttributeComputeCapabilityMinor
Minor compute capability version number.
Definition hip_runtime_api.h:475
@ hipDeviceAttributeMaxTextureCubemap
Maximum dimensions of Cubemap texture.
Definition hip_runtime_api.h:467
@ hipDeviceAttributeDeviceOverlap
Definition hip_runtime_api.h:423
@ hipDeviceAttributeMaxTexture2DLinear
Maximum dimensions (width, height, pitch) of 2D textures bound to pitched memory.
Definition hip_runtime_api.h:461
@ hipDeviceAttributeMaxSurface2D
Maximum dimension (width, height) of 2D surface.
Definition hip_runtime_api.h:447
@ hipDeviceAttributeMaxSurface1DLayered
Cuda only. Maximum dimensions of 1D layered surface.
Definition hip_runtime_api.h:446
@ hipDeviceAttributeHdpRegFlushCntl
Address of the HDP_REG_COHERENCY_FLUSH_CNTL register.
Definition hip_runtime_api.h:518
@ hipDeviceAttributeComputeMode
Compute mode that device is currently in.
Definition hip_runtime_api.h:417
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedFunc
Definition hip_runtime_api.h:519
@ hipDeviceAttributeAsicRevision
Revision of the GPU in this device.
Definition hip_runtime_api.h:528
@ hipDeviceAttributeUnused4
Previously hipDeviceAttributeGcnArch.
Definition hip_runtime_api.h:515
@ hipDeviceAttributeCooperativeMultiDeviceLaunch
Support cooperative launch on multiple devices.
Definition hip_runtime_api.h:422
@ hipDeviceAttributeMaxTexture2DHeight
Maximum dimension hight of 2D texture.
Definition hip_runtime_api.h:458
@ hipDeviceAttributePersistingL2CacheMaxSize
Maximum l2 persisting lines capacity in bytes.
Definition hip_runtime_api.h:485
@ hipDeviceAttributeEccEnabled
Whether ECC support is enabled.
Definition hip_runtime_api.h:410
@ hipDeviceAttributeCanUseHostPointerForRegisteredMem
Definition hip_runtime_api.h:414
@ hipDeviceAttributePciBusId
PCI Bus ID.
Definition hip_runtime_api.h:482
@ hipDeviceAttributeL2CacheSize
Size of L2 cache in bytes. 0 if the device doesn't have L2 cache.
Definition hip_runtime_api.h:432
@ hipDeviceAttributeKernelExecTimeout
Run time limit for kernels executed on the device.
Definition hip_runtime_api.h:431
@ hipDeviceAttributeMaxThreadsDim
Maximum dimension of a block.
Definition hip_runtime_api.h:469
@ hipDeviceAttributeSingleToDoublePrecisionPerfRatio
Cuda only. Performance ratio of single precision to double precision.
Definition hip_runtime_api.h:493
@ hipDeviceAttributeMaxGridDimY
Max grid size in height.
Definition hip_runtime_api.h:443
@ hipDeviceAttributeMultiprocessorCount
Number of multiprocessors on the device.
Definition hip_runtime_api.h:477
@ hipDeviceAttributeAmdSpecificBegin
Definition hip_runtime_api.h:510
@ hipDeviceAttributeMaxRegistersPerMultiprocessor
32-bit registers available per block.
Definition hip_runtime_api.h:488
@ hipDeviceAttributeIsMultiGpuBoard
Multiple GPU devices.
Definition hip_runtime_api.h:430
@ hipDeviceAttributeSharedMemPerBlockOptin
Maximum shared memory per block usable by special opt in.
Definition hip_runtime_api.h:491
@ hipDeviceAttributeMaxSurface2DLayered
Cuda only. Maximum dimensions of 2D layered surface.
Definition hip_runtime_api.h:448
@ hipDeviceAttributeAmdSpecificEnd
Definition hip_runtime_api.h:537
@ hipDeviceAttributeMemoryClockRate
Peak memory clock frequency in kilohertz.
Definition hip_runtime_api.h:474
@ hipDeviceAttributeMaxGridDimZ
Max grid size in depth.
Definition hip_runtime_api.h:444
@ hipDeviceAttributeHdpMemFlushCntl
Address of the HDP_MEM_COHERENCY_FLUSH_CNTL register.
Definition hip_runtime_api.h:517
@ hipDeviceAttributeUnused2
Previously hipDeviceAttributeUuid.
Definition hip_runtime_api.h:502
@ hipDeviceAttributeFineGrainSupport
'1' if Device supports fine grain, '0' otherwise
Definition hip_runtime_api.h:534
@ hipDeviceAttributeCooperativeLaunch
Support cooperative launch.
Definition hip_runtime_api.h:421
@ hipDeviceAttributeUnifiedAddressing
Cuda only. An unified address space shared with the host.
Definition hip_runtime_api.h:501
@ hipDeviceAttributeAsyncEngineCount
Asynchronous engines number.
Definition hip_runtime_api.h:412
@ hipDeviceAttributeMultiGpuBoardGroupID
Unique ID of device group on the same multi-GPU board.
Definition hip_runtime_api.h:476
@ hipDeviceAttributeStreamPrioritiesSupported
Whether to support stream priorities.
Definition hip_runtime_api.h:494
@ hipDeviceAttributeMaxSharedMemoryPerBlock
Maximum shared memory available per block in bytes.
Definition hip_runtime_api.h:490
@ hipDeviceAttributeLocalL1CacheSupported
caching locals in L1 is supported
Definition hip_runtime_api.h:433
@ hipDeviceAttributeCanUseStreamWaitValue
Definition hip_runtime_api.h:529
@ hipDeviceAttributeMaxRegistersPerBlock
Definition hip_runtime_api.h:486
@ hipDeviceAttributeMaxThreadsPerBlock
Maximum number of threads per block.
Definition hip_runtime_api.h:470
@ hipDeviceAttributeMemoryBusWidth
Global memory bus width in bits.
Definition hip_runtime_api.h:473
@ hipDeviceAttributeMemoryPoolSupportedHandleTypes
Supported handle mask for HIP Stream Ordered Memory Allocator.
Definition hip_runtime_api.h:507
@ hipDeviceAttributeComputePreemptionSupported
Device supports Compute Preemption.
Definition hip_runtime_api.h:418
@ hipDeviceAttributeMaxSurface1D
Maximum size of 1D surface.
Definition hip_runtime_api.h:445
@ hipDeviceAttributeUnused1
Previously hipDeviceAttributeName.
Definition hip_runtime_api.h:478
@ hipDeviceAttributeMaxTexture3DAlt
Maximum dimensions of alternate 3D texture.
Definition hip_runtime_api.h:466
@ hipDeviceAttributeMaxTexture1DLinear
Definition hip_runtime_api.h:454
@ hipDeviceAttributeMaxTexture2DGather
Maximum dimensions of 2D texture if gather operations performed.
Definition hip_runtime_api.h:459
@ hipDeviceAttributeWallClockRate
Constant frequency of wall clock in kilohertz.
Definition hip_runtime_api.h:535
@ hipDeviceAttributePciDeviceId
PCI Device ID.
Definition hip_runtime_api.h:483
@ hipDeviceAttributeCanMapHostMemory
Whether host memory can be mapped into device address space.
Definition hip_runtime_api.h:413
@ hipDeviceAttributeMaxTexture1DWidth
Maximum size of 1D texture.
Definition hip_runtime_api.h:452
@ hipDeviceAttributeConcurrentManagedAccess
Device can coherently access managed memory concurrently with the CPU.
Definition hip_runtime_api.h:420
@ hipDeviceAttributeVendorSpecificBegin
Definition hip_runtime_api.h:538
@ hipDeviceAttributeManagedMemory
Device supports allocating managed memory on this system.
Definition hip_runtime_api.h:437
@ hipDeviceAttributeIntegrated
Device is integrated GPU.
Definition hip_runtime_api.h:429
@ hipDeviceAttributeMaxTexture2DLayered
Maximum dimensions of 2D layered texture.
Definition hip_runtime_api.h:460
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedGridDim
Definition hip_runtime_api.h:521
@ hipDeviceAttributeMaxTexture3DDepth
Maximum dimension depth of 3D texture.
Definition hip_runtime_api.h:465
@ hipDeviceAttributeImageSupport
'1' if Device supports image, '0' otherwise.
Definition hip_runtime_api.h:531
@ hipDeviceAttributeTotalGlobalMem
Global memory available on devicice.
Definition hip_runtime_api.h:500
@ hipDeviceAttributeMaxBlocksPerMultiProcessor
Max block size per multiprocessor.
Definition hip_runtime_api.h:438
@ hipDeviceAttributeIsLargeBar
Whether it is LargeBar.
Definition hip_runtime_api.h:527
@ hipDeviceAttributeMaxTexture2DWidth
Maximum dimension width of 2D texture.
Definition hip_runtime_api.h:457
@ hipDeviceAttributeMaxBlockDimX
Max block size in width.
Definition hip_runtime_api.h:439
@ hipDeviceAttributeMaxTexture3DWidth
Maximum dimension width of 3D texture.
Definition hip_runtime_api.h:463
@ hipDeviceAttributeUnused3
Previously hipDeviceAttributeArch.
Definition hip_runtime_api.h:513
@ hipDeviceAttributeTotalConstantMemory
Constant memory size in bytes.
Definition hip_runtime_api.h:499
@ hipDeviceAttributeTextureAlignment
Alignment requirement for textures.
Definition hip_runtime_api.h:497
@ hipDeviceAttributeMaxTexture1DLayered
Maximum dimensions of 1D layered texture.
Definition hip_runtime_api.h:453
@ hipDeviceAttributeMaxSharedMemoryPerMultiprocessor
Maximum Shared Memory PerMultiprocessor.
Definition hip_runtime_api.h:514
@ hipDeviceAttributeReservedSharedMemPerBlock
Shared memory reserved by CUDA driver per block.
Definition hip_runtime_api.h:489
@ hipDeviceAttributeCudaCompatibleBegin
Definition hip_runtime_api.h:408
@ hipDeviceAttributeConcurrentKernels
Device can possibly execute multiple kernels concurrently.
Definition hip_runtime_api.h:419
@ hipDeviceAttributeLuid
8-byte locally unique identifier in 8 bytes. Undefined on TCC and non-Windows platforms
Definition hip_runtime_api.h:434
@ hipDeviceAttributePciDomainID
PCI Domain ID.
Definition hip_runtime_api.h:484
@ hipDeviceAttributeMaxThreadsPerMultiProcessor
Maximum resident threads per multiprocessor.
Definition hip_runtime_api.h:471
@ hipDeviceAttributeTexturePitchAlignment
Pitch alignment requirement for 2D texture references bound to pitched memory;.
Definition hip_runtime_api.h:498
@ hipDeviceAttributePhysicalMultiProcessorCount
Definition hip_runtime_api.h:532
@ hipDeviceAttributeHostRegisterSupported
Can device support host memory registration via hipHostRegister.
Definition hip_runtime_api.h:506
@ hipDeviceAttributeSharedMemPerMultiprocessor
Shared memory available per multiprocessor.
Definition hip_runtime_api.h:492
@ hipDeviceAttributeLuidDeviceNodeMask
Luid device node mask. Undefined on TCC and non-Windows platforms.
Definition hip_runtime_api.h:435
@ hipDeviceAttributeMaxTextureCubemapLayered
Maximum dimensions of Cubemap layered texture.
Definition hip_runtime_api.h:468
@ hipDeviceAttributeCooperativeMultiDeviceUnmatchedBlockDim
Definition hip_runtime_api.h:523
@ hipDeviceAttributeVirtualMemoryManagementSupported
Device supports HIP virtual memory management.
Definition hip_runtime_api.h:505
@ hipDeviceAttributeMemoryPoolsSupported
Device supports HIP Stream Ordered Memory Allocator.
Definition hip_runtime_api.h:504
@ hipDeviceAttributeClockInstructionRate
Frequency in khz of the timer used by the device-side "clock*".
Definition hip_runtime_api.h:512
@ hipDeviceAttributeMaxTexture2DMipmap
Maximum dimensions of 2D mipmapped texture.
Definition hip_runtime_api.h:462
@ hipDeviceAttributeMaxBlockDimZ
Max block size in depth.
Definition hip_runtime_api.h:441
@ hipDeviceAttributeWarpSize
Warp size in threads.
Definition hip_runtime_api.h:503
@ hipGPUDirectRDMAWritesOrderingOwner
Definition hip_runtime_api.h:562
@ hipGPUDirectRDMAWritesOrderingNone
Definition hip_runtime_api.h:561
@ hipGPUDirectRDMAWritesOrderingAllDevices
Definition hip_runtime_api.h:563
@ hipMemAllocationTypeMax
Definition hip_runtime_api.h:965
@ hipMemAllocationTypePinned
Definition hip_runtime_api.h:964
@ hipMemAllocationTypeInvalid
Definition hip_runtime_api.h:960
@ hipMemoryTypeDevice
Definition hip_runtime_api.h:248
@ hipMemoryTypeHost
Memory is physically located on host.
Definition hip_runtime_api.h:247
@ hipMemoryTypeUnregistered
Unregistered memory.
Definition hip_runtime_api.h:246
@ hipMemoryTypeArray
Definition hip_runtime_api.h:253
@ hipMemoryTypeManaged
Definition hip_runtime_api.h:250
@ hipMemoryTypeUnified
unified address space
Definition hip_runtime_api.h:255
@ hipGraphInstantiateFlagAutoFreeOnLaunch
Automatically free memory allocated in a graph before relaunching.
Definition hip_runtime_api.h:1394
@ hipGraphInstantiateFlagUseNodePriority
Run the graph using the per-node priority attributes rather than the priority of the stream it is lau...
Definition hip_runtime_api.h:1400
@ hipGraphInstantiateFlagUpload
Automatically upload the graph after instantiation.
Definition hip_runtime_api.h:1396
@ hipGraphInstantiateFlagDeviceLaunch
Instantiate the graph to be launched from the device.
Definition hip_runtime_api.h:1398
@ hipMemLocationTypeInvalid
Definition hip_runtime_api.h:928
@ hipMemLocationTypeDevice
Device location, thus it's HIP device ID.
Definition hip_runtime_api.h:929
@ hipArraySparseSubresourceTypeSparseLevel
Sparse level.
Definition hip_runtime_api.h:1521
@ hipArraySparseSubresourceTypeMiptail
Miptail.
Definition hip_runtime_api.h:1522
hipError_t hipGraphKernelNodeSetParams(hipGraphNode_t node, const hipKernelNodeParams *pNodeParams)
Sets a kernel node's parameters.
hipError_t hipGraphMemFreeNodeGetParams(hipGraphNode_t node, void *dev_ptr)
Returns parameters for memory free node.
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 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 hipGraphNodeGetEnabled(hipGraphExec_t hGraphExec, hipGraphNode_t hNode, unsigned int *isEnabled)
Query whether a node in the given graphExec is enabled.
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 hipGraphExternalSemaphoresSignalNodeSetParams(hipGraphNode_t hNode, const hipExternalSemaphoreSignalNodeParams *nodeParams)
Updates node parameters in the external semaphore signal node.
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 hipDrvGraphAddMemcpyNode(hipGraphNode_t *phGraphNode, hipGraph_t hGraph, const hipGraphNode_t *dependencies, size_t numDependencies, const HIP_MEMCPY3D *copyParams, hipCtx_t ctx)
Creates a memcpy node and adds it to a graph.
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 hipGraphAddExternalSemaphoresSignalNode(hipGraphNode_t *pGraphNode, hipGraph_t graph, const hipGraphNode_t *pDependencies, size_t numDependencies, const hipExternalSemaphoreSignalNodeParams *nodeParams)
Creates a external semaphor signal node and adds it to a graph.
hipError_t hipGraphExecExternalSemaphoresWaitNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t hNode, const hipExternalSemaphoreWaitNodeParams *nodeParams)
Updates node parameters in the external semaphore wait node in the given graphExec.
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 hipGraphExternalSemaphoresSignalNodeGetParams(hipGraphNode_t hNode, hipExternalSemaphoreSignalNodeParams *params_out)
Returns external semaphore signal node params.
hipError_t hipGraphUpload(hipGraphExec_t graphExec, hipStream_t stream)
Uploads an executable graph to a stream.
hipError_t hipGraphExecExternalSemaphoresSignalNodeSetParams(hipGraphExec_t hGraphExec, hipGraphNode_t hNode, const hipExternalSemaphoreSignalNodeParams *nodeParams)
Updates node parameters in the external semaphore signal node in the given graphExec.
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.