HIP: Heterogenous-computing Interface for Portability
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
hip_runtime_api.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved.
3 
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
10 
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13 
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 THE SOFTWARE.
21 */
22 
23 //#pragma once
24 #ifndef HIP_INCLUDE_HIP_HCC_DETAIL_HIP_RUNTIME_API_H
25 #define HIP_INCLUDE_HIP_HCC_DETAIL_HIP_RUNTIME_API_H
26 
31 #include <stdint.h>
32 #include <stddef.h>
33 
34 #ifndef GENERIC_GRID_LAUNCH
35 #define GENERIC_GRID_LAUNCH 1
36 #endif
37 
39 #include <hip/hip_runtime_api.h>
40 #include <hip/hcc_detail/driver_types.h>
43 
44 #define DEPRECATED(msg) __attribute__ ((deprecated(msg)))
45 #define DEPRECATED_MSG "This API is marked as deprecated and may not be supported in future releases.For more details please refer https://github.com/ROCm-Developer-Tools/HIP/tree/master/docs/markdown/hip_deprecated_api_list"
46 
47 #if defined(__HCC__) && (__hcc_workweek__ < 16155)
48 #error("This version of HIP requires a newer version of HCC.");
49 #endif
50 
51 #define HIP_LAUNCH_PARAM_BUFFER_POINTER ((void*)0x01)
52 #define HIP_LAUNCH_PARAM_BUFFER_SIZE ((void*)0x02)
53 #define HIP_LAUNCH_PARAM_END ((void*)0x03)
54 
55 #ifdef __cplusplus
56  #define __dparm(x) \
57  = x
58 #else
59  #define __dparm(x)
60 #endif
61 
62 // Structure definitions:
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66 
67 //---
68 // API-visible structures
69 typedef struct ihipCtx_t* hipCtx_t;
70 
71 // Note many APIs also use integer deviceIds as an alternative to the device pointer:
72 typedef int hipDevice_t;
73 
74 typedef struct ihipStream_t* hipStream_t;
75 
76 // TODO: IPC implementation
77 
78 #define hipIpcMemLazyEnablePeerAccess 0
79 
80 #define HIP_IPC_HANDLE_SIZE 64
81 
82 typedef struct hipIpcMemHandle_st {
83  char reserved[HIP_IPC_HANDLE_SIZE];
85 
86 // TODO: IPC event handle currently unsupported
87 struct ihipIpcEventHandle_t;
88 typedef struct ihipIpcEventHandle_t* hipIpcEventHandle_t;
89 
90 
91 // END TODO
92 
93 typedef struct ihipModule_t* hipModule_t;
94 
95 typedef struct ihipModuleSymbol_t* hipFunction_t;
96 
97 typedef struct hipFuncAttributes {
98  int binaryVersion;
99  int cacheModeCA;
100  size_t constSizeBytes;
101  size_t localSizeBytes;
102  int maxDynamicSharedSizeBytes;
103  int maxThreadsPerBlock;
104  int numRegs;
105  int preferredShmemCarveout;
106  int ptxVersion;
107  size_t sharedSizeBytes;
109 
110 typedef struct ihipEvent_t* hipEvent_t;
111 
112 enum hipLimit_t {
113  hipLimitMallocHeapSize = 0x02,
114 };
115 
120 #define hipStreamDefault \
122  0x00
123 #define hipStreamNonBlocking 0x01
124 
125 
127 #define hipEventDefault 0x0
128 #define hipEventBlockingSync \
129  0x1
130 #define hipEventDisableTiming \
131  0x2
132 #define hipEventInterprocess 0x4
133 #define hipEventReleaseToDevice \
134  0x40000000
135 #define hipEventReleaseToSystem \
138  0x80000000
139 
142 
144 #define hipHostMallocDefault 0x0
145 #define hipHostMallocPortable 0x1
146 #define hipHostMallocMapped \
147  0x2
148 #define hipHostMallocWriteCombined 0x4
150 #define hipHostMallocCoherent \
151  0x40000000
152 #define hipHostMallocNonCoherent \
154  0x80000000
155 
157 
159 #define hipHostRegisterDefault 0x0
160 #define hipHostRegisterPortable 0x1
161 #define hipHostRegisterMapped \
162  0x2
163 #define hipHostRegisterIoMemory 0x4
165 
166 
167 #define hipDeviceScheduleAuto 0x0
168 #define hipDeviceScheduleSpin \
169  0x1
170 #define hipDeviceScheduleYield \
172  0x2
173 #define hipDeviceScheduleBlockingSync 0x4
175 #define hipDeviceScheduleMask 0x7
176 
177 #define hipDeviceMapHost 0x8
178 #define hipDeviceLmemResizeToMax 0x16
179 
180 #define hipArrayDefault 0x00
181 #define hipArrayLayered 0x01
182 #define hipArraySurfaceLoadStore 0x02
183 #define hipArrayCubemap 0x04
184 #define hipArrayTextureGather 0x08
185 
186 /*
187  * @brief hipJitOption
188  * @enum
189  * @ingroup Enumerations
190  */
191 typedef enum hipJitOption {
192  hipJitOptionMaxRegisters = 0,
193  hipJitOptionThreadsPerBlock,
194  hipJitOptionWallTime,
195  hipJitOptionInfoLogBuffer,
196  hipJitOptionInfoLogBufferSizeBytes,
197  hipJitOptionErrorLogBuffer,
198  hipJitOptionErrorLogBufferSizeBytes,
199  hipJitOptionOptimizationLevel,
200  hipJitOptionTargetFromContext,
201  hipJitOptionTarget,
202  hipJitOptionFallbackStrategy,
203  hipJitOptionGenerateDebugInfo,
204  hipJitOptionLogVerbose,
205  hipJitOptionGenerateLineInfo,
206  hipJitOptionCacheMode,
207  hipJitOptionSm3xOpt,
208  hipJitOptionFastCompile,
209  hipJitOptionNumOptions
210 } hipJitOption;
211 
212 
216 typedef enum hipFuncCache_t {
222 
223 
227 typedef enum hipSharedMemConfig {
234 
235 
240 typedef struct dim3 {
241  uint32_t x;
242  uint32_t y;
243  uint32_t z;
244 #ifdef __cplusplus
245  dim3(uint32_t _x = 1, uint32_t _y = 1, uint32_t _z = 1) : x(_x), y(_y), z(_z){};
246 #endif
247 } dim3;
248 
249 
250 // Doxygen end group GlobalDefs
254 //-------------------------------------------------------------------------------------------------
255 
256 
257 // The handle allows the async commands to use the stream even if the parent hipStream_t goes
258 // out-of-scope.
259 // typedef class ihipStream_t * hipStream_t;
260 
261 
262 /*
263  * Opaque structure allows the true event (pointed at by the handle) to remain "live" even if the
264  * surrounding hipEvent_t goes out-of-scope. This is handy for cases where the hipEvent_t goes
265  * out-of-scope but the true event is being written by some async queue or device */
266 // typedef struct hipEvent_t {
267 // struct ihipEvent_t *_handle;
268 //} hipEvent_t;
269 
270 
296 hipError_t hipDeviceSynchronize(void);
297 
298 
310 hipError_t hipDeviceReset(void);
311 
312 
344 hipError_t hipSetDevice(int deviceId);
345 
346 
360 hipError_t hipGetDevice(int* deviceId);
361 
362 
375 hipError_t hipGetDeviceCount(int* count);
376 
386 hipError_t hipDeviceGetAttribute(int* pi, hipDeviceAttribute_t attr, int deviceId);
387 
401 hipError_t hipGetDeviceProperties(hipDeviceProp_t* prop, int deviceId);
402 
403 
414 hipError_t hipDeviceSetCacheConfig(hipFuncCache_t cacheConfig);
415 
416 
427 hipError_t hipDeviceGetCacheConfig(hipFuncCache_t* cacheConfig);
428 
439 hipError_t hipDeviceGetLimit(size_t* pValue, enum hipLimit_t limit);
440 
441 
452 hipError_t hipFuncSetCacheConfig(const void* func, hipFuncCache_t config);
453 
466 
467 
480 
505 hipError_t hipSetDeviceFlags(unsigned flags);
506 
515 hipError_t hipChooseDevice(int* device, const hipDeviceProp_t* prop);
516 
517 // end doxygen Device
540 hipError_t hipGetLastError(void);
541 
542 
553 hipError_t hipPeekAtLastError(void);
554 
555 
564 const char* hipGetErrorName(hipError_t hip_error);
565 
566 
577 const char* hipGetErrorString(hipError_t hipError);
578 
579 // end doxygen Error
612 hipError_t hipStreamCreate(hipStream_t* stream);
613 
614 
632 hipError_t hipStreamCreateWithFlags(hipStream_t* stream, unsigned int flags);
633 
634 
653 hipError_t hipStreamCreateWithPriority(hipStream_t* stream, unsigned int flags, int priority);
654 
655 
670 hipError_t hipDeviceGetStreamPriorityRange(int* leastPriority, int* greatestPriority);
671 
672 
691 hipError_t hipStreamDestroy(hipStream_t stream);
692 
693 
709 hipError_t hipStreamQuery(hipStream_t stream);
710 
711 
731 hipError_t hipStreamSynchronize(hipStream_t stream);
732 
733 
753 hipError_t hipStreamWaitEvent(hipStream_t stream, hipEvent_t event, unsigned int flags);
754 
755 
769 hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int* flags);
770 
771 
785 hipError_t hipStreamGetPriority(hipStream_t stream, int* priority);
786 
787 
791 typedef void (*hipStreamCallback_t)(hipStream_t stream, hipError_t status, void* userData);
792 
808 hipError_t hipStreamAddCallback(hipStream_t stream, hipStreamCallback_t callback, void* userData,
809  unsigned int flags);
810 
811 
812 // end doxygen Stream
849 hipError_t hipEventCreateWithFlags(hipEvent_t* event, unsigned flags);
850 
851 
863 hipError_t hipEventCreate(hipEvent_t* event);
864 
865 
893 #ifdef __cplusplus
894 hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream = NULL);
895 #else
896 hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream);
897 #endif
898 
915 hipError_t hipEventDestroy(hipEvent_t event);
916 
917 
935 hipError_t hipEventSynchronize(hipEvent_t event);
936 
937 
966 hipError_t hipEventElapsedTime(float* ms, hipEvent_t start, hipEvent_t stop);
967 
968 
984 hipError_t hipEventQuery(hipEvent_t event);
985 
986 
987 // end doxygen Events
1018 hipError_t hipPointerGetAttributes(hipPointerAttribute_t* attributes, const void* ptr);
1019 
1033 hipError_t hipMalloc(void** ptr, size_t size);
1034 
1047 hipError_t hipMallocHost(void** ptr, size_t size)
1048  __attribute__((deprecated("use hipHostMalloc instead")));
1049 
1063 hipError_t hipHostMalloc(void** ptr, size_t size, unsigned int flags);
1064 
1078 hipError_t hipHostAlloc(void** ptr, size_t size, unsigned int flags)
1079  __attribute__((deprecated("use hipHostMalloc instead")));
1080 
1092 hipError_t hipHostGetDevicePointer(void** devPtr, void* hstPtr, unsigned int flags);
1093 
1103 hipError_t hipHostGetFlags(unsigned int* flagsPtr, void* hostPtr);
1104 
1141 hipError_t hipHostRegister(void* hostPtr, size_t sizeBytes, unsigned int flags);
1142 
1151 hipError_t hipHostUnregister(void* hostPtr);
1152 
1172 hipError_t hipMallocPitch(void** ptr, size_t* pitch, size_t width, size_t height);
1173 
1187 hipError_t hipFree(void* ptr);
1188 
1199 hipError_t hipFreeHost(void* ptr) __attribute__((deprecated("use hipHostFree instead")));
1200 
1214 hipError_t hipHostFree(void* ptr);
1215 
1243 hipError_t hipMemcpy(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind);
1244 
1262 hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void* src, size_t sizeBytes);
1263 
1281 hipError_t hipMemcpyDtoH(void* dst, hipDeviceptr_t src, size_t sizeBytes);
1282 
1300 hipError_t hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes);
1301 
1319 hipError_t hipMemcpyHtoDAsync(hipDeviceptr_t dst, void* src, size_t sizeBytes, hipStream_t stream);
1320 
1338 hipError_t hipMemcpyDtoHAsync(void* dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream);
1339 
1357 hipError_t hipMemcpyDtoDAsync(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes,
1358  hipStream_t stream);
1359 
1360 
1384 hipError_t hipMemcpyToSymbol(const void* symbolName, const void* src, size_t sizeBytes,
1385  size_t offset __dparm(0), hipMemcpyKind kind __dparm(hipMemcpyHostToDevice));
1386 
1387 
1398 hipError_t hipGetSymbolAddress(void** devPtr, const void* symbolName);
1399 
1400 
1411 hipError_t hipGetSymbolSize(size_t* size, const void* symbolName);
1412 
1413 
1439 hipError_t hipMemcpyToSymbolAsync(const void* symbolName, const void* src, size_t sizeBytes,
1440  size_t offset, hipMemcpyKind kind, hipStream_t stream __dparm(0));
1441 
1442 hipError_t hipMemcpyFromSymbol(void* dst, const void* symbolName, size_t sizeBytes,
1443  size_t offset __dparm(0), hipMemcpyKind kind __dparm( hipMemcpyDeviceToHost ));
1444 
1445 hipError_t hipMemcpyFromSymbolAsync(void* dst, const void* symbolName, size_t sizeBytes,
1446  size_t offset, hipMemcpyKind kind, hipStream_t stream __dparm(0));
1447 
1476 hipError_t hipMemcpyAsync(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind,
1477  hipStream_t stream __dparm(0));
1478 
1488 hipError_t hipMemset(void* dst, int value, size_t sizeBytes);
1489 
1499 hipError_t hipMemsetD8(hipDeviceptr_t dest, unsigned char value, size_t sizeBytes);
1500 
1516 hipError_t hipMemsetAsync(void* dst, int value, size_t sizeBytes, hipStream_t stream __dparm(0));
1517 
1529 hipError_t hipMemset2D(void* dst, size_t pitch, int value, size_t width, size_t height);
1530 
1543 hipError_t hipMemset2DAsync(void* dst, size_t pitch, int value, size_t width, size_t height,hipStream_t stream __dparm(0));
1544 
1553 hipError_t hipMemset3D(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent );
1554 
1564 hipError_t hipMemset3DAsync(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent ,hipStream_t stream __dparm(0));
1565 
1575 hipError_t hipMemGetInfo(size_t* free, size_t* total);
1576 
1577 
1578 hipError_t hipMemPtrGetInfo(void* ptr, size_t* size);
1579 
1580 
1593 hipError_t hipMallocArray(hipArray** array, const hipChannelFormatDesc* desc, size_t width,
1594  size_t height __dparm(0), unsigned int flags __dparm(hipArrayDefault));
1595 hipError_t hipArrayCreate(hipArray** pHandle, const HIP_ARRAY_DESCRIPTOR* pAllocateArray);
1596 
1597 hipError_t hipArray3DCreate(hipArray** array, const HIP_ARRAY_DESCRIPTOR* pAllocateArray);
1598 
1599 hipError_t hipMalloc3D(hipPitchedPtr* pitchedDevPtr, hipExtent extent);
1600 
1609 hipError_t hipFreeArray(hipArray* array);
1610 
1623 hipError_t hipMalloc3DArray(hipArray** array, const struct hipChannelFormatDesc* desc,
1624  struct hipExtent extent, unsigned int flags);
1641 hipError_t hipMemcpy2D(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
1642  size_t height, hipMemcpyKind kind);
1643 hipError_t hipMemcpyParam2D(const hip_Memcpy2D* pCopy);
1644 
1662 hipError_t hipMemcpy2DAsync(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
1663  size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0));
1664 
1681 hipError_t hipMemcpy2DToArray(hipArray* dst, size_t wOffset, size_t hOffset, const void* src,
1682  size_t spitch, size_t width, size_t height, hipMemcpyKind kind);
1683 
1700 hipError_t hipMemcpyToArray(hipArray* dst, size_t wOffset, size_t hOffset, const void* src,
1701  size_t count, hipMemcpyKind kind);
1702 
1718 hipError_t hipMemcpyFromArray(void* dst, hipArray_const_t srcArray, size_t wOffset, size_t hOffset,
1719  size_t count, hipMemcpyKind kind);
1720 
1734 hipError_t hipMemcpyAtoH(void* dst, hipArray* srcArray, size_t srcOffset, size_t count);
1735 
1749 hipError_t hipMemcpyHtoA(hipArray* dstArray, size_t dstOffset, const void* srcHost, size_t count);
1750 
1761 hipError_t hipMemcpy3D(const struct hipMemcpy3DParms* p);
1762 
1763 // doxygen end Memory
1795 hipError_t hipDeviceCanAccessPeer(int* canAccessPeer, int deviceId, int peerDeviceId);
1796 
1797 
1814 hipError_t hipDeviceEnablePeerAccess(int peerDeviceId, unsigned int flags);
1815 
1816 
1828 hipError_t hipDeviceDisablePeerAccess(int peerDeviceId);
1829 
1842 hipError_t hipMemGetAddressRange(hipDeviceptr_t* pbase, size_t* psize, hipDeviceptr_t dptr);
1843 
1844 #ifndef USE_PEER_NON_UNIFIED
1845 #define USE_PEER_NON_UNIFIED 1
1846 #endif
1847 
1848 #if USE_PEER_NON_UNIFIED == 1
1849 
1860 hipError_t hipMemcpyPeer(void* dst, int dstDeviceId, const void* src, int srcDeviceId,
1861  size_t sizeBytes);
1862 
1875 hipError_t hipMemcpyPeerAsync(void* dst, int dstDeviceId, const void* src, int srcDevice,
1876  size_t sizeBytes, hipStream_t stream __dparm(0));
1877 #endif
1878 
1879 
1880 // doxygen end PeerToPeer
1899 // TODO-ctx - more description on error codes.
1900 hipError_t hipInit(unsigned int flags);
1901 
1902 
1922 hipError_t hipCtxCreate(hipCtx_t* ctx, unsigned int flags, hipDevice_t device)DEPRECATED(DEPRECATED_MSG);
1923 
1934 hipError_t hipCtxDestroy(hipCtx_t ctx) DEPRECATED(DEPRECATED_MSG);
1935 
1946 hipError_t hipCtxPopCurrent(hipCtx_t* ctx) DEPRECATED(DEPRECATED_MSG);
1947 
1958 hipError_t hipCtxPushCurrent(hipCtx_t ctx) DEPRECATED(DEPRECATED_MSG);
1959 
1970 hipError_t hipCtxSetCurrent(hipCtx_t ctx) DEPRECATED(DEPRECATED_MSG);
1971 
1982 hipError_t hipCtxGetCurrent(hipCtx_t* ctx) DEPRECATED(DEPRECATED_MSG);
1983 
1995 hipError_t hipCtxGetDevice(hipDevice_t* device) DEPRECATED(DEPRECATED_MSG);
1996 
2014 hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int* apiVersion) DEPRECATED(DEPRECATED_MSG);
2015 
2029 hipError_t hipCtxGetCacheConfig(hipFuncCache_t* cacheConfig) DEPRECATED(DEPRECATED_MSG);
2030 
2044 hipError_t hipCtxSetCacheConfig(hipFuncCache_t cacheConfig) DEPRECATED(DEPRECATED_MSG);
2045 
2059 hipError_t hipCtxSetSharedMemConfig(hipSharedMemConfig config) DEPRECATED(DEPRECATED_MSG);
2060 
2074 hipError_t hipCtxGetSharedMemConfig(hipSharedMemConfig* pConfig) DEPRECATED(DEPRECATED_MSG);
2075 
2087 hipError_t hipCtxSynchronize(void) DEPRECATED(DEPRECATED_MSG);
2088 
2099 hipError_t hipCtxGetFlags(unsigned int* flags) DEPRECATED(DEPRECATED_MSG);
2100 
2120 hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags) DEPRECATED(DEPRECATED_MSG);
2121 
2138 hipError_t hipCtxDisablePeerAccess(hipCtx_t peerCtx) DEPRECATED(DEPRECATED_MSG);
2139 
2152 hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int* flags, int* active);
2153 
2166 hipError_t hipDevicePrimaryCtxRelease(hipDevice_t dev);
2167 
2179 hipError_t hipDevicePrimaryCtxRetain(hipCtx_t* pctx, hipDevice_t dev);
2180 
2191 hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev);
2192 
2204 hipError_t hipDevicePrimaryCtxSetFlags(hipDevice_t dev, unsigned int flags);
2205 
2206 // doxygen end Context Management
2218 hipError_t hipDeviceGet(hipDevice_t* device, int ordinal);
2219 
2228 hipError_t hipDeviceComputeCapability(int* major, int* minor, hipDevice_t device);
2229 
2238 hipError_t hipDeviceGetName(char* name, int len, hipDevice_t device);
2239 
2248 hipError_t hipDeviceGetPCIBusId(char* pciBusId, int len, int device);
2249 
2250 
2258 hipError_t hipDeviceGetByPCIBusId(int* device, const char* pciBusId);
2259 
2260 
2268 hipError_t hipDeviceTotalMem(size_t* bytes, hipDevice_t device);
2269 
2285 hipError_t hipDriverGetVersion(int* driverVersion);
2286 
2299 hipError_t hipRuntimeGetVersion(int* runtimeVersion);
2300 
2312 hipError_t hipModuleLoad(hipModule_t* module, const char* fname);
2313 
2324 hipError_t hipModuleUnload(hipModule_t module);
2325 
2336 hipError_t hipModuleGetFunction(hipFunction_t* function, hipModule_t module, const char* kname);
2337 
2347 hipError_t hipFuncGetAttributes(hipFuncAttributes* attr, const void* func);
2348 
2360 hipError_t hipModuleGetGlobal(hipDeviceptr_t* dptr, size_t* bytes, hipModule_t hmod,
2361  const char* name);
2362 
2363 hipError_t ihipModuleGetGlobal(hipDeviceptr_t* dptr, size_t* bytes, hipModule_t hmod,
2364  const char* name);
2365 
2366 hipError_t hipModuleGetTexRef(textureReference** texRef, hipModule_t hmod, const char* name);
2376 hipError_t hipModuleLoadData(hipModule_t* module, const void* image);
2377 
2390 hipError_t hipModuleLoadDataEx(hipModule_t* module, const void* image, unsigned int numOptions,
2391  hipJitOption* options, void** optionValues);
2392 
2417 hipError_t hipModuleLaunchKernel(hipFunction_t f, unsigned int gridDimX, unsigned int gridDimY,
2418  unsigned int gridDimZ, unsigned int blockDimX,
2419  unsigned int blockDimY, unsigned int blockDimZ,
2420  unsigned int sharedMemBytes, hipStream_t stream,
2421  void** kernelParams, void** extra);
2422 
2423 // doxygen end Version Management
2441 // TODO - expand descriptions:
2447 hipError_t hipProfilerStart();
2448 
2449 
2455 hipError_t hipProfilerStop();
2456 
2457 
2462 // TODO: implement IPC apis
2463 
2489 hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t* handle, void* devPtr);
2490 
2527 hipError_t hipIpcOpenMemHandle(void** devPtr, hipIpcMemHandle_t handle, unsigned int flags);
2528 
2547 hipError_t hipIpcCloseMemHandle(void* devPtr);
2548 
2549 
2550 // hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t* handle, void* devPtr);
2551 // hipError_t hipIpcCloseMemHandle(void *devPtr);
2552 // // hipError_t hipIpcOpenEventHandle(hipEvent_t* event, hipIpcEventHandle_t handle);
2553 // hipError_t hipIpcOpenMemHandle(void** devPtr, hipIpcMemHandle_t handle, unsigned int flags);
2554 
2555 
2576 hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem, hipStream_t stream);
2577 
2578 
2589 hipError_t hipSetupArgument(const void* arg, size_t size, size_t offset);
2590 
2591 
2600 hipError_t hipLaunchByPtr(const void* func);
2601 
2602 
2603 
2609 #ifdef __cplusplus
2610 } /* extern "c" */
2611 #endif
2612 
2613 #include <hip/hcc_detail/hip_prof_api.h>
2614 
2615 #ifdef __cplusplus
2616 extern "C" {
2617 #endif
2618 
2621 hipError_t hipRegisterApiCallback(uint32_t id, void* fun, void* arg);
2622 hipError_t hipRemoveApiCallback(uint32_t id);
2623 hipError_t hipRegisterActivityCallback(uint32_t id, void* fun, void* arg);
2624 hipError_t hipRemoveActivityCallback(uint32_t id);
2625 static inline const char* hipApiName(const uint32_t& id) { return hip_api_name(id); }
2626 const char* hipKernelNameRef(hipFunction_t f);
2627 #ifdef __cplusplus
2628 } /* extern "C" */
2629 #endif
2630 
2631 #ifdef __cplusplus
2632 
2633 hipError_t hipBindTexture(size_t* offset, textureReference* tex, const void* devPtr,
2634  const hipChannelFormatDesc* desc, size_t size = UINT_MAX);
2635 
2636 hipError_t ihipBindTextureImpl(int dim, enum hipTextureReadMode readMode, size_t* offset,
2637  const void* devPtr, const struct hipChannelFormatDesc* desc,
2638  size_t size, textureReference* tex);
2639 
2640 /*
2641  * @brief hipBindTexture Binds size bytes of the memory area pointed to by @p devPtr to the texture
2642  *reference tex.
2643  *
2644  * @p desc describes how the memory is interpreted when fetching values from the texture. The @p
2645  *offset parameter is an optional byte offset as with the low-level hipBindTexture() function. Any
2646  *memory previously bound to tex is unbound.
2647  *
2648  * @param[in] offset - Offset in bytes
2649  * @param[out] tex - texture to bind
2650  * @param[in] devPtr - Memory area on device
2651  * @param[in] desc - Channel format
2652  * @param[in] size - Size of the memory area pointed to by devPtr
2653  * @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree, #hipErrorUnknown
2654  **/
2655 template <class T, int dim, enum hipTextureReadMode readMode>
2656 hipError_t hipBindTexture(size_t* offset, struct texture<T, dim, readMode>& tex, const void* devPtr,
2657  const struct hipChannelFormatDesc& desc, size_t size = UINT_MAX) {
2658  return ihipBindTextureImpl(dim, readMode, offset, devPtr, &desc, size, &tex);
2659 }
2660 
2661 /*
2662  * @brief hipBindTexture Binds size bytes of the memory area pointed to by @p devPtr to the texture
2663  *reference tex.
2664  *
2665  * @p desc describes how the memory is interpreted when fetching values from the texture. The @p
2666  *offset parameter is an optional byte offset as with the low-level hipBindTexture() function. Any
2667  *memory previously bound to tex is unbound.
2668  *
2669  * @param[in] offset - Offset in bytes
2670  * @param[in] tex - texture to bind
2671  * @param[in] devPtr - Memory area on device
2672  * @param[in] size - Size of the memory area pointed to by devPtr
2673  * @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree, #hipErrorUnknown
2674  **/
2675 template <class T, int dim, enum hipTextureReadMode readMode>
2676 hipError_t hipBindTexture(size_t* offset, struct texture<T, dim, readMode>& tex, const void* devPtr,
2677  size_t size = UINT_MAX) {
2678  return ihipBindTextureImpl(dim, readMode, offset, devPtr, &(tex.channelDesc), size, &tex);
2679 }
2680 
2681 // C API
2682 hipError_t hipBindTexture2D(size_t* offset, textureReference* tex, const void* devPtr,
2683  const hipChannelFormatDesc* desc, size_t width, size_t height,
2684  size_t pitch);
2685 
2686 hipError_t ihipBindTexture2DImpl(int dim, enum hipTextureReadMode readMode, size_t* offset,
2687  const void* devPtr, const struct hipChannelFormatDesc* desc,
2688  size_t width, size_t height, textureReference* tex);
2689 
2690 template <class T, int dim, enum hipTextureReadMode readMode>
2691 hipError_t hipBindTexture2D(size_t* offset, struct texture<T, dim, readMode>& tex,
2692  const void* devPtr, size_t width, size_t height, size_t pitch) {
2693  return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &(tex.channelDesc), width, height,
2694  &tex);
2695 }
2696 
2697 template <class T, int dim, enum hipTextureReadMode readMode>
2698 hipError_t hipBindTexture2D(size_t* offset, struct texture<T, dim, readMode>& tex,
2699  const void* devPtr, const struct hipChannelFormatDesc& desc,
2700  size_t width, size_t height, size_t pitch) {
2701  return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &desc, width, height, &tex);
2702 }
2703 
2704 // C API
2705 hipError_t hipBindTextureToArray(textureReference* tex, hipArray_const_t array,
2706  const hipChannelFormatDesc* desc);
2707 
2708 hipError_t ihipBindTextureToArrayImpl(int dim, enum hipTextureReadMode readMode,
2709  hipArray_const_t array,
2710  const struct hipChannelFormatDesc& desc,
2711  textureReference* tex);
2712 
2713 template <class T, int dim, enum hipTextureReadMode readMode>
2714 hipError_t hipBindTextureToArray(struct texture<T, dim, readMode>& tex, hipArray_const_t array) {
2715  return ihipBindTextureToArrayImpl(dim, readMode, array, tex.channelDesc, &tex);
2716 }
2717 
2718 template <class T, int dim, enum hipTextureReadMode readMode>
2719 hipError_t hipBindTextureToArray(struct texture<T, dim, readMode>& tex, hipArray_const_t array,
2720  const struct hipChannelFormatDesc& desc) {
2721  return ihipBindTextureToArrayImpl(dim, readMode, array, desc, &tex);
2722 }
2723 
2724 template <class T, int dim, enum hipTextureReadMode readMode>
2725 inline static hipError_t hipBindTextureToArray(struct texture<T, dim, readMode> *tex,
2726  hipArray_const_t array,
2727  const struct hipChannelFormatDesc* desc) {
2728  return ihipBindTextureToArrayImpl(dim, readMode, array, *desc, tex);
2729 }
2730 
2731 // C API
2732 hipError_t hipBindTextureToMipmappedArray(const textureReference* tex,
2733  hipMipmappedArray_const_t mipmappedArray,
2734  const hipChannelFormatDesc* desc);
2735 
2736 template <class T, int dim, enum hipTextureReadMode readMode>
2737 hipError_t hipBindTextureToMipmappedArray(const texture<T, dim, readMode>& tex,
2738  hipMipmappedArray_const_t mipmappedArray) {
2739  return hipSuccess;
2740 }
2741 
2742 template <class T, int dim, enum hipTextureReadMode readMode>
2743 hipError_t hipBindTextureToMipmappedArray(const texture<T, dim, readMode>& tex,
2744  hipMipmappedArray_const_t mipmappedArray,
2745  const hipChannelFormatDesc& desc) {
2746  return hipSuccess;
2747 }
2748 
2749 /*
2750  * @brief Unbinds the textuer bound to @p tex
2751  *
2752  * @param[in] tex - texture to unbind
2753  *
2754  * @return #hipSuccess
2755  **/
2756 hipError_t hipUnbindTexture(const textureReference* tex);
2757 
2758 extern hipError_t ihipUnbindTextureImpl(const hipTextureObject_t& textureObject);
2759 
2760 template <class T, int dim, enum hipTextureReadMode readMode>
2761 hipError_t hipUnbindTexture(struct texture<T, dim, readMode>& tex) {
2762  return ihipUnbindTextureImpl(tex.textureObject);
2763 }
2764 
2765 hipError_t hipGetChannelDesc(hipChannelFormatDesc* desc, hipArray_const_t array);
2766 hipError_t hipGetTextureAlignmentOffset(size_t* offset, const textureReference* texref);
2767 hipError_t hipGetTextureReference(const textureReference** texref, const void* symbol);
2768 
2769 hipError_t hipCreateTextureObject(hipTextureObject_t* pTexObject, const hipResourceDesc* pResDesc,
2770  const hipTextureDesc* pTexDesc,
2771  const hipResourceViewDesc* pResViewDesc);
2772 
2773 hipError_t hipDestroyTextureObject(hipTextureObject_t textureObject);
2774 
2775 hipError_t hipGetTextureObjectResourceDesc(hipResourceDesc* pResDesc,
2776  hipTextureObject_t textureObject);
2777 hipError_t hipGetTextureObjectResourceViewDesc(hipResourceViewDesc* pResViewDesc,
2778  hipTextureObject_t textureObject);
2779 hipError_t hipGetTextureObjectTextureDesc(hipTextureDesc* pTexDesc,
2780  hipTextureObject_t textureObject);
2781 hipError_t hipTexRefSetArray(textureReference* tex, hipArray_const_t array, unsigned int flags);
2782 
2783 hipError_t hipTexRefSetAddressMode(textureReference* tex, int dim, hipTextureAddressMode am);
2784 
2785 hipError_t hipTexRefSetFilterMode(textureReference* tex, hipTextureFilterMode fm);
2786 
2787 hipError_t hipTexRefSetFlags(textureReference* tex, unsigned int flags);
2788 
2789 hipError_t hipTexRefSetFormat(textureReference* tex, hipArray_Format fmt, int NumPackedComponents);
2790 
2791 hipError_t hipTexRefSetAddress(size_t* offset, textureReference* tex, hipDeviceptr_t devPtr,
2792  size_t size);
2793 
2794 hipError_t hipTexRefSetAddress2D(textureReference* tex, const HIP_ARRAY_DESCRIPTOR* desc,
2795  hipDeviceptr_t devPtr, size_t pitch);
2796 
2797 hipError_t hipCreateSurfaceObject(hipSurfaceObject_t* pSurfObject, const hipResourceDesc* pResDesc);
2798 
2799 hipError_t hipDestroySurfaceObject(hipSurfaceObject_t surfaceObject);
2800 
2801 // doxygen end Texture
2807 #endif
2808 
2809 
2827 // end-group HCC_Specific
2833 // doxygen end HIP API
2838 #endif
hipError_t hipHostFree(void *ptr)
Free memory allocated by the hcc hip host memory allocation API This API performs an implicit hipDevi...
Definition: hip_memory.cpp:1917
hipError_t hipCtxSetSharedMemConfig(hipSharedMemConfig config) DEPRECATED(DEPRECATED_MSG)
Set Shared memory bank configuration.
Definition: hip_context.cpp:236
prefer larger L1 cache and smaller shared memory
Definition: hip_runtime_api.h:219
hipError_t hipModuleGetFunction(hipFunction_t *function, hipModule_t module, const char *kname)
Function with kname will be extracted if present in module.
Definition: hip_module.cpp:468
hipError_t hipMemset3D(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent)
Fills synchronously the memory area pointed to by pitchedDevPtr with the constant value...
Definition: hip_memory.cpp:1790
hipError_t hipStreamGetPriority(hipStream_t stream, int *priority)
Query the priority of a stream.
Definition: hip_stream.cpp:231
hipError_t hipDeviceGetCacheConfig(hipFuncCache_t *cacheConfig)
Set Cache configuration for a specific function.
Definition: hip_device.cpp:84
hipError_t hipCtxGetDevice(hipDevice_t *device) DEPRECATED(DEPRECATED_MSG)
Get the handle of the device associated with current/default context.
Definition: hip_context.cpp:194
hipError_t hipDriverGetVersion(int *driverVersion)
Returns the approximate HIP driver version.
Definition: hip_context.cpp:88
hipError_t hipPeekAtLastError(void)
Return last error returned by any HIP runtime API call.
Definition: hip_error.cpp:41
hipError_t hipCtxGetCurrent(hipCtx_t *ctx) DEPRECATED(DEPRECATED_MSG)
Get the handle of the current/ default context.
Definition: hip_context.cpp:170
hipError_t hipDevicePrimaryCtxSetFlags(hipDevice_t dev, unsigned int flags)
Set flags for the primary context.
Definition: hip_context.cpp:324
hipError_t hipDevicePrimaryCtxRetain(hipCtx_t *pctx, hipDevice_t dev)
Retain the primary context on the GPU.
Definition: hip_context.cpp:299
struct dim3 dim3
hipError_t hipDeviceComputeCapability(int *major, int *minor, hipDevice_t device)
Returns the compute capability of the device.
Definition: hip_device.cpp:369
hipError_t hipDeviceGetByPCIBusId(int *device, const char *pciBusId)
Returns a handle to a compute device.
Definition: hip_device.cpp:427
hipError_t hipCtxDisablePeerAccess(hipCtx_t peerCtx) DEPRECATED(DEPRECATED_MSG)
Disable direct access from current context&#39;s virtual address space to memory allocations physically l...
Definition: hip_peer.cpp:218
hipError_t hipMemGetAddressRange(hipDeviceptr_t *pbase, size_t *psize, hipDeviceptr_t dptr)
Get information on memory allocations.
Definition: hip_memory.cpp:1980
TODO-doc.
hipError_t hipMemcpyToArray(hipArray *dst, size_t wOffset, size_t hOffset, const void *src, size_t count, hipMemcpyKind kind)
Copies data between host and device.
Definition: hip_memory.cpp:1309
unsigned long long hipSurfaceObject_t
Definition: hip_surface_types.h:36
hipError_t hipCtxSetCurrent(hipCtx_t ctx) DEPRECATED(DEPRECATED_MSG)
Set the passed context as current/default.
Definition: hip_context.cpp:181
hipError_t hipModuleLoadDataEx(hipModule_t *module, const void *image, unsigned int numOptions, hipJitOption *options, void **optionValues)
builds module from code object which resides in host memory. Image is pointer to that location...
Definition: hip_module.cpp:596
Definition: driver_types.h:232
hipError_t hipMallocPitch(void **ptr, size_t *pitch, size_t width, size_t height)
Definition: hip_memory.cpp:400
hipError_t hipMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data between host and device.
hipError_t hipMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind)
Copies data between host and device.
Definition: hip_memory.cpp:1650
hipError_t hipStreamAddCallback(hipStream_t stream, hipStreamCallback_t callback, void *userData, unsigned int flags)
Adds a callback to be called on the host after all currently enqueued items in the stream have comple...
Definition: hip_stream.cpp:251
hipError_t hipMemcpyFromArray(void *dst, hipArray_const_t srcArray, size_t wOffset, size_t hOffset, size_t count, hipMemcpyKind kind)
Copies data between host and device.
Definition: hip_memory.cpp:1328
uint32_t x
x
Definition: hip_runtime_api.h:241
hipError_t hipMemcpyAtoH(void *dst, hipArray *srcArray, size_t srcOffset, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1365
hipError_t hipDeviceEnablePeerAccess(int peerDeviceId, unsigned int flags)
Enable direct access from current device&#39;s virtual address space to memory allocations physically loc...
Definition: hip_peer.cpp:191
const char * hipGetErrorString(hipError_t hipError)
Return handy text string message to explain the error which occurred.
Definition: hip_error.cpp:54
hipError_t hipDeviceGetSharedMemConfig(hipSharedMemConfig *pConfig)
Returns bank width of shared memory for current device.
Definition: hip_device.cpp:125
Definition: hip_runtime_api.h:137
hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags) DEPRECATED(DEPRECATED_MSG)
Enables direct access to memory allocations in a peer context.
Definition: hip_peer.cpp:212
hipError_t hipDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority)
Returns numerical values that correspond to the least and greatest stream priority.
Definition: hip_stream.cpp:115
prefer equal size L1 cache and shared memory
Definition: hip_runtime_api.h:220
hipError_t hipHostGetDevicePointer(void **devPtr, void *hstPtr, unsigned int flags)
Get Device pointer from Host Pointer allocated through hipHostMalloc.
hipError_t hipFreeArray(hipArray *array)
Frees an array on the device.
Definition: hip_memory.cpp:1952
hipError_t hipCtxGetCacheConfig(hipFuncCache_t *cacheConfig) DEPRECATED(DEPRECATED_MSG)
Set Cache configuration for a specific function.
Definition: hip_context.cpp:220
hipError_t hipStreamCreateWithPriority(hipStream_t *stream, unsigned int flags, int priority)
Create an asynchronous stream with the specified priority.
Definition: hip_stream.cpp:106
hipError_t hipMemsetAsync(void *dst, int value, size_t sizeBytes, hipStream_t stream __dparm(0))
Fills the first sizeBytes bytes of the memory area pointed to by dev with the constant byte value val...
hipError_t hipEventSynchronize(hipEvent_t event)
Wait for an event to complete.
Definition: hip_event.cpp:167
Definition: driver_types.h:173
hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void *src, size_t sizeBytes)
Copy data from Host to Device.
Definition: hip_memory.cpp:1154
hipError_t hipModuleUnload(hipModule_t module)
Frees the module.
Definition: hip_module.cpp:100
Definition: hip_module.cpp:75
hipError_t hipSetDeviceFlags(unsigned flags)
The current device behavior is changed according the flags passed.
hipError_t hipEventQuery(hipEvent_t event)
Query event status.
Definition: hip_event.cpp:257
hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int *apiVersion) DEPRECATED(DEPRECATED_MSG)
Returns the approximate HIP api version.
Definition: hip_context.cpp:210
hipError_t hipDeviceDisablePeerAccess(int peerDeviceId)
Disable direct access from current device&#39;s virtual address space to memory allocations physically lo...
Definition: hip_peer.cpp:184
#define hipArrayDefault
Default HIP array allocation flag.
Definition: hip_runtime_api.h:180
hipError_t hipMallocArray(hipArray **array, const hipChannelFormatDesc *desc, size_t width, size_t height __dparm(0), unsigned int flags __dparm(hipArrayDefault))
Allocate an array on the device.
hipError_t hipMallocHost(void **ptr, size_t size) __attribute__((deprecated("use hipHostMalloc instead")))
Allocate pinned host memory [Deprecated].
Definition: hip_memory.cpp:335
hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t *handle, void *devPtr)
Gets an interprocess memory handle for an existing device memory allocation.
Definition: hip_memory.cpp:2001
Definition: hip_runtime_api.h:97
hipError_t hipMemset2DAsync(void *dst, size_t pitch, int value, size_t width, size_t height, hipStream_t stream __dparm(0))
Fills asynchronously the memory area pointed to by dst with the constant value.
Definition: driver_types.h:107
hipError_t hipHostMalloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory.
Definition: hip_memory.cpp:268
Definition: hip_hcc_internal.h:885
Definition: texture_types.h:73
hipError_t hipDeviceGetLimit(size_t *pValue, enum hipLimit_t limit)
Get Resource limits of current device.
Definition: hip_device.cpp:96
hipError_t hipCtxCreate(hipCtx_t *ctx, unsigned int flags, hipDevice_t device) DEPRECATED(DEPRECATED_MSG)
Create a context and set it as current/ default context.
Definition: hip_context.cpp:55
hipError_t hipModuleLoadData(hipModule_t *module, const void *image)
builds module from code object which resides in host memory. Image is pointer to that location...
Definition: hip_module.cpp:577
Definition: driver_types.h:70
hipDeviceAttribute_t
Definition: hip_runtime_api.h:259
hipError_t hipEventDestroy(hipEvent_t event)
Destroy the specified event.
Definition: hip_event.cpp:155
hipError_t hipStreamCreateWithFlags(hipStream_t *stream, unsigned int flags)
Create an asynchronous stream.
Definition: hip_stream.cpp:92
hipError_t hipChooseDevice(int *device, const hipDeviceProp_t *prop)
Device which matches hipDeviceProp_t is returned.
Definition: hip_device.cpp:453
hipError_t hipModuleLaunchKernel(hipFunction_t f, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, hipStream_t stream, void **kernelParams, void **extra)
launches kernel f with launch parameters and shared memory on stream with arguments passed to kernelp...
Definition: hip_runtime_api.h:240
uint32_t y
y
Definition: hip_runtime_api.h:242
hipError_t hipModuleLoad(hipModule_t *module, const char *fname)
Loads code object from file into a hipModule_t.
Definition: hip_module.cpp:582
hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev)
Resets the primary context on the GPU.
Definition: hip_context.cpp:311
hipError_t hipEventCreateWithFlags(hipEvent_t *event, unsigned flags)
Create an event with the specified flags.
Definition: hip_event.cpp:97
hipError_t hipEventElapsedTime(float *ms, hipEvent_t start, hipEvent_t stop)
Return the elapsed time between two events.
Definition: hip_event.cpp:200
hipError_t hipDeviceSetCacheConfig(hipFuncCache_t cacheConfig)
Set L1/Shared cache partition.
Definition: hip_device.cpp:76
hipError_t hipDeviceCanAccessPeer(int *canAccessPeer, int deviceId, int peerDeviceId)
Determine if a device can access a peer&#39;s memory.
Definition: hip_peer.cpp:177
hipError_t hipGetDeviceCount(int *count)
Return number of compute-capable devices.
Definition: hip_device.cpp:71
hipError_t hipMemset(void *dst, int value, size_t sizeBytes)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
Definition: hip_memory.cpp:1722
Definition: driver_types.h:245
hipError_t hipGetSymbolSize(size_t *size, const void *symbolName)
Copies the size of symbol symbolName to size.
Definition: hip_memory.cpp:1118
hipError_t hipStreamDestroy(hipStream_t stream)
Destroys the specified stream.
Definition: hip_stream.cpp:188
hipError_t hipHostGetFlags(unsigned int *flagsPtr, void *hostPtr)
Return flags associated with host pointer.
Definition: hip_memory.cpp:848
hipError_t hipStreamSynchronize(hipStream_t stream)
Wait for all commands in stream to complete.
Definition: hip_stream.cpp:177
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...
Definition: hip_memory.cpp:2037
hipError_t hipMemcpyToSymbol(const void *symbolName, const void *src, size_t sizeBytes, size_t offset __dparm(0), hipMemcpyKind kind __dparm(hipMemcpyHostToDevice))
Copies sizeBytes bytes from the memory area pointed to by src to the memory area pointed to by offset...
hipError_t hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Device.
Definition: hip_memory.cpp:1192
hipError_t hipMemset3DAsync(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent, hipStream_t stream __dparm(0))
Fills asynchronously the memory area pointed to by pitchedDevPtr with the constant value...
Definition: hip_runtime_api.h:229
no preference for shared memory or L1 (default)
Definition: hip_runtime_api.h:217
hipError_t hipCtxPushCurrent(hipCtx_t ctx) DEPRECATED(DEPRECATED_MSG)
Push the context to be set as current/ default context.
Definition: hip_context.cpp:157
hipError_t hipCtxSynchronize(void) DEPRECATED(DEPRECATED_MSG)
Blocks until the default context has completed all preceding requested tasks.
Definition: hip_context.cpp:252
hipError_t hipGetSymbolAddress(void **devPtr, const void *symbolName)
Copies the memory address of symbol symbolName to devPtr.
Definition: hip_memory.cpp:1110
hipError_t hipMalloc3DArray(hipArray **array, const struct hipChannelFormatDesc *desc, struct hipExtent extent, unsigned int flags)
Allocate an array on the device.
Definition: hip_memory.cpp:760
hipError_t hipMemcpyDtoHAsync(void *dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream)
Copy data from Device to Host asynchronously.
Definition: hip_memory.cpp:1250
hipError_t hipDeviceSynchronize(void)
Waits on all active streams on current device.
Definition: hip_device.cpp:144
hipError_t hipMemcpyDtoH(void *dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Host.
Definition: hip_memory.cpp:1173
Defines the different newt vector types for HIP runtime.
hipError_t hipMemcpyAsync(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copy data from src to dst asynchronously.
hipError_t hipDeviceGetName(char *name, int len, hipDevice_t device)
Returns an identifer string for the device.
Definition: hip_device.cpp:381
hipError_t hipGetDeviceProperties(hipDeviceProp_t *prop, int deviceId)
Returns device properties.
Definition: hip_device.cpp:316
hipError_t hipHostRegister(void *hostPtr, size_t sizeBytes, unsigned int flags)
Register host memory so it can be accessed from the current device.
Definition: hip_memory.cpp:876
Definition: driver_types.h:61
hipError_t hipMalloc(void **ptr, size_t size)
Allocate memory on the default accelerator.
Definition: hip_memory.cpp:239
const char * hipGetErrorName(hipError_t hip_error)
Return name of the specified error code in text form.
Definition: hip_error.cpp:48
hipError_t hipMemset2D(void *dst, size_t pitch, int value, size_t width, size_t height)
Fills the memory area pointed to by dst with the constant value.
Definition: hip_memory.cpp:1738
Definition: driver_types.h:225
hipFuncCache_t
Definition: hip_runtime_api.h:216
hipError_t hipGetLastError(void)
Return last error returned by any HIP runtime API call and resets the stored error code to #hipSucces...
Definition: hip_error.cpp:32
hipError_t hipStreamWaitEvent(hipStream_t stream, hipEvent_t event, unsigned int flags)
Make the specified compute stream wait for an event.
Definition: hip_stream.cpp:123
hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int *flags)
Return flags associated with this stream.
Definition: hip_stream.cpp:216
hipError_t hipHostAlloc(void **ptr, size_t size, unsigned int flags) __attribute__((deprecated("use hipHostMalloc instead")))
Allocate device accessible page locked host memory [Deprecated].
Definition: hip_memory.cpp:339
Defines surface types for HIP runtime.
hipError_t hipCtxPopCurrent(hipCtx_t *ctx) DEPRECATED(DEPRECATED_MSG)
Pop the current/default context and return the popped context.
Definition: hip_context.cpp:136
hipError_t hipMemGetInfo(size_t *free, size_t *total)
Query memory info. Return snapshot of free memory, and total allocatable memory on the device...
Definition: hip_memory.cpp:1826
hipError_t hipDevicePrimaryCtxRelease(hipDevice_t dev)
Release the primary context on the GPU.
Definition: hip_context.cpp:288
hipError_t hipFree(void *ptr)
Free memory allocated by the hcc hip memory allocation API. This API performs an implicit hipDeviceSy...
Definition: hip_memory.cpp:1885
uint32_t z
z
Definition: hip_runtime_api.h:243
hipError_t hipDeviceReset(void)
The state of current device is discarded and updated to a fresh state.
Definition: hip_device.cpp:149
hipError_t hipInit(unsigned int flags)
Explicitly initializes the HIP runtime.
Definition: hip_context.cpp:42
hipError_t hipMemcpy3D(const struct hipMemcpy3DParms *p)
Copies data between host and device.
Definition: hip_memory.cpp:1384
hipError_t hipRuntimeGetVersion(int *runtimeVersion)
Returns the approximate HIP Runtime version.
Definition: hip_context.cpp:100
hipError_t hipFuncGetAttributes(hipFuncAttributes *attr, const void *func)
Definition: hip_module.cpp:523
hipError_t hipMemcpyHtoA(hipArray *dstArray, size_t dstOffset, const void *srcHost, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1347
hipError_t hipSetupArgument(const void *arg, size_t size, size_t offset)
Set a kernel argument.
Definition: hip_clang.cpp:179
hipError_t hipMemcpyDtoDAsync(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream)
Copy data from Device to Device asynchronously.
Definition: hip_memory.cpp:1242
Definition: hip_runtime_api.h:83
hipError_t hipSetDevice(int deviceId)
Set default device to be used for subsequent hip API calls from this thread.
Definition: hip_device.cpp:133
hipError_t hipDeviceGet(hipDevice_t *device, int ordinal)
Returns a handle to a compute device.
Definition: hip_context.cpp:73
hipError_t hipDeviceTotalMem(size_t *bytes, hipDevice_t device)
Returns the total amount of memory on the device.
Definition: hip_device.cpp:415
hipError_t hipFuncSetCacheConfig(const void *func, hipFuncCache_t config)
Set Cache configuration for a specific function.
Definition: hip_device.cpp:109
The compiler selects a device-specific value for the banking.
Definition: hip_runtime_api.h:228
hipError_t hipMemcpyPeerAsync(void *dst, int dstDeviceId, const void *src, int srcDevice, size_t sizeBytes, hipStream_t stream __dparm(0))
Copies memory from one device to memory on another device.
hipError_t hipRegisterApiCallback(uint32_t id, void *fun, void *arg)
Definition: hip_intercept.cpp:33
hipSharedMemConfig
Definition: hip_runtime_api.h:227
Definition: driver_types.h:38
Definition: hip_hcc_internal.h:705
hipError_t hipDeviceGetAttribute(int *pi, hipDeviceAttribute_t attr, int deviceId)
Query for a specific device attribute.
Definition: hip_device.cpp:289
hipError_t hipMemcpyHtoDAsync(hipDeviceptr_t dst, void *src, size_t sizeBytes, hipStream_t stream)
Copy data from Host to Device asynchronously.
Definition: hip_memory.cpp:1235
hipError_t hipCtxSetCacheConfig(hipFuncCache_t cacheConfig) DEPRECATED(DEPRECATED_MSG)
Set L1/Shared cache partition.
Definition: hip_context.cpp:228
hipError_t hipCtxGetFlags(unsigned int *flags) DEPRECATED(DEPRECATED_MSG)
Return flags used for creating default context.
Definition: hip_context.cpp:257
hipError_t hipHostUnregister(void *hostPtr)
Un-register host pointer.
Definition: hip_memory.cpp:941
Definition: hip_hcc_internal.h:524
hipError_t hipMemcpyPeer(void *dst, int dstDeviceId, const void *src, int srcDeviceId, size_t sizeBytes)
Copies memory from one device to memory on another device.
Definition: hip_peer.cpp:198
hipError_t hipStreamCreate(hipStream_t *stream)
Create an asynchronous stream.
Definition: hip_stream.cpp:99
hipError_t hipMemcpy(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind)
Copy data from src to dst.
Definition: hip_memory.cpp:1127
hipError_t hipEventCreate(hipEvent_t *event)
Definition: hip_event.cpp:103
Definition: driver_types.h:82
Definition: hip_runtime_api.h:82
hipError_t hipFreeHost(void *ptr) __attribute__((deprecated("use hipHostFree instead")))
Free memory allocated by the hcc hip host memory allocation API. [Deprecated].
Definition: hip_memory.cpp:1950
hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int *flags, int *active)
Get the state of the primary context.
Definition: hip_context.cpp:266
Definition: driver_types.h:201
hipError_t hipDeviceSetSharedMemConfig(hipSharedMemConfig config)
The bank width of shared memory on current device is set.
Definition: hip_device.cpp:117
hipError_t hipGetDevice(int *deviceId)
Return the default device id for the calling host thread.
Definition: hip_device.cpp:32
hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream)
Record an event in the specified stream.
Definition: hip_event.cpp:110
hipError_t hipModuleGetGlobal(hipDeviceptr_t *dptr, size_t *bytes, hipModule_t hmod, const char *name)
returns device memory pointer and size of the kernel present in the module with symbol name ...
Definition: hip_module.cpp:473
Definition: hip_hcc_internal.h:373
hipError_t hipDeviceGetPCIBusId(char *pciBusId, int len, int device)
Returns a PCI Bus Id string for the device, overloaded to take int device ID.
Definition: hip_device.cpp:395
prefer larger shared memory and smaller L1 cache
Definition: hip_runtime_api.h:218
hipError_t hipMemcpy2DToArray(hipArray *dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind)
Copies data between host and device.
Definition: hip_memory.cpp:1257
hipError_t hipStreamQuery(hipStream_t stream)
Return #hipSuccess if all of the operations in the specified stream have completed, or #hipErrorNotReady if not.
Definition: hip_stream.cpp:154
Definition: hip_runtime_api.h:231
hipError_t hipIpcCloseMemHandle(void *devPtr)
Close memory mapped with hipIpcOpenMemHandle.
Definition: hip_memory.cpp:2067
hipError_t hipMemsetD8(hipDeviceptr_t dest, unsigned char value, size_t sizeBytes)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
Definition: hip_memory.cpp:1774
hipError_t hipCtxGetSharedMemConfig(hipSharedMemConfig *pConfig) DEPRECATED(DEPRECATED_MSG)
Get Shared memory bank configuration.
Definition: hip_context.cpp:244
hipError_t hipPointerGetAttributes(hipPointerAttribute_t *attributes, const void *ptr)
Return attributes for the specified pointer.
Definition: hip_memory.cpp:161
hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem, hipStream_t stream)
Configure a kernel launch.
Definition: hip_clang.cpp:166
hipError_t hipMemcpyToSymbolAsync(const void *symbolName, const void *src, size_t sizeBytes, size_t offset, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies sizeBytes bytes from the memory area pointed to by src to the memory area pointed to by offset...
hipError_t hipCtxDestroy(hipCtx_t ctx) DEPRECATED(DEPRECATED_MSG)
Destroy a HIP context.
Definition: hip_context.cpp:112
void(* hipStreamCallback_t)(hipStream_t stream, hipError_t status, void *userData)
Definition: hip_runtime_api.h:791
hipError_t hipProfilerStop()
Stop recording of profiling information. When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2416
hipError_t hipProfilerStart()
Start recording of profiling information When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2406
hipError_t hipLaunchByPtr(const void *func)
Launch a kernel.
Definition: hip_clang.cpp:197
Definition: texture_types.h:93