HIP: Heterogenous-computing Interface for Portability
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 
38 #ifndef __HIP_VDI__
39 #define __HIP_VDI__ 0
40 #endif
41 
43 #include <hip/hip_runtime_api.h>
44 #include <hip/hcc_detail/driver_types.h>
47 
48 #if !__HIP_VDI__
49 #include <hsa/hsa.h>
50 #include <hip/hcc_detail/program_state.hpp>
51 #endif
52 
53 #if defined(_MSC_VER)
54 #define DEPRECATED(msg) __declspec(deprecated(msg))
55 #else // !defined(_MSC_VER)
56 #define DEPRECATED(msg) __attribute__ ((deprecated(msg)))
57 #endif // !defined(_MSC_VER)
58 
59 #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"
60 
61 #if defined(__HCC__) && (__hcc_workweek__ < 16155)
62 #error("This version of HIP requires a newer version of HCC.");
63 #endif
64 
65 #define HIP_LAUNCH_PARAM_BUFFER_POINTER ((void*)0x01)
66 #define HIP_LAUNCH_PARAM_BUFFER_SIZE ((void*)0x02)
67 #define HIP_LAUNCH_PARAM_END ((void*)0x03)
68 
69 #ifdef __cplusplus
70  #include <algorithm>
71  #include <mutex>
72  #include <string>
73  #include <unordered_map>
74  #include <vector>
75 
76  #define __dparm(x) \
77  = x
78 #else
79  #define __dparm(x)
80 #endif
81 
82 namespace hip_impl {
83 hipError_t hip_init();
84 } // namespace hip_impl
85 
86 // Structure definitions:
87 #ifdef __cplusplus
88 extern "C" {
89 #endif
90 
91 //---
92 // API-visible structures
93 typedef struct ihipCtx_t* hipCtx_t;
94 
95 // Note many APIs also use integer deviceIds as an alternative to the device pointer:
96 typedef int hipDevice_t;
97 
98 typedef struct ihipStream_t* hipStream_t;
99 
100 // TODO: IPC implementation
101 
102 #define hipIpcMemLazyEnablePeerAccess 0
103 
104 #define HIP_IPC_HANDLE_SIZE 64
105 
106 typedef struct hipIpcMemHandle_st {
107  char reserved[HIP_IPC_HANDLE_SIZE];
109 
110 // TODO: IPC event handle currently unsupported
111 struct ihipIpcEventHandle_t;
112 typedef struct ihipIpcEventHandle_t* hipIpcEventHandle_t;
113 
114 
115 // END TODO
116 
117 typedef struct ihipModule_t* hipModule_t;
118 
119 typedef struct ihipModuleSymbol_t* hipFunction_t;
120 
121 typedef struct hipFuncAttributes {
122  int binaryVersion;
123  int cacheModeCA;
124  size_t constSizeBytes;
125  size_t localSizeBytes;
126  int maxDynamicSharedSizeBytes;
127  int maxThreadsPerBlock;
128  int numRegs;
129  int preferredShmemCarveout;
130  int ptxVersion;
131  size_t sharedSizeBytes;
133 
134 typedef struct ihipEvent_t* hipEvent_t;
135 
136 enum hipLimit_t {
137  hipLimitMallocHeapSize = 0x02,
138 };
139 
144 #define hipStreamDefault \
146  0x00
147 #define hipStreamNonBlocking 0x01
148 
149 
151 #define hipEventDefault 0x0
152 #define hipEventBlockingSync \
153  0x1
154 #define hipEventDisableTiming \
155  0x2
156 #define hipEventInterprocess 0x4
157 #define hipEventReleaseToDevice \
158  0x40000000
159 #define hipEventReleaseToSystem \
162  0x80000000
163 
166 
168 #define hipHostMallocDefault 0x0
169 #define hipHostMallocPortable 0x1
170 #define hipHostMallocMapped \
171  0x2
172 #define hipHostMallocWriteCombined 0x4
174 #define hipHostMallocCoherent \
175  0x40000000
176 #define hipHostMallocNonCoherent \
178  0x80000000
179 
181 #define hipMemAttachGlobal 0x0
182 #define hipMemAttachHost 0x1
183 
184 #define hipDeviceMallocDefault 0x0
185 #define hipDeviceMallocFinegrained 0x1
186 
187 #define hipHostRegisterDefault 0x0
189 #define hipHostRegisterPortable 0x1
190 #define hipHostRegisterMapped \
191  0x2
192 #define hipHostRegisterIoMemory 0x4
194 #define hipExtHostRegisterCoarseGrained 0x8
195 
196 #define hipDeviceScheduleAuto 0x0
197 #define hipDeviceScheduleSpin \
198  0x1
199 #define hipDeviceScheduleYield \
201  0x2
202 #define hipDeviceScheduleBlockingSync 0x4
204 #define hipDeviceScheduleMask 0x7
205 
206 #define hipDeviceMapHost 0x8
207 #define hipDeviceLmemResizeToMax 0x16
208 
209 #define hipArrayDefault 0x00
210 #define hipArrayLayered 0x01
211 #define hipArraySurfaceLoadStore 0x02
212 #define hipArrayCubemap 0x04
213 #define hipArrayTextureGather 0x08
214 
215 /*
216  * @brief hipJitOption
217  * @enum
218  * @ingroup Enumerations
219  */
220 typedef enum hipJitOption {
221  hipJitOptionMaxRegisters = 0,
222  hipJitOptionThreadsPerBlock,
223  hipJitOptionWallTime,
224  hipJitOptionInfoLogBuffer,
225  hipJitOptionInfoLogBufferSizeBytes,
226  hipJitOptionErrorLogBuffer,
227  hipJitOptionErrorLogBufferSizeBytes,
228  hipJitOptionOptimizationLevel,
229  hipJitOptionTargetFromContext,
230  hipJitOptionTarget,
231  hipJitOptionFallbackStrategy,
232  hipJitOptionGenerateDebugInfo,
233  hipJitOptionLogVerbose,
234  hipJitOptionGenerateLineInfo,
235  hipJitOptionCacheMode,
236  hipJitOptionSm3xOpt,
237  hipJitOptionFastCompile,
238  hipJitOptionNumOptions
239 } hipJitOption;
240 
241 
245 typedef enum hipFuncCache_t {
251 
252 
256 typedef enum hipSharedMemConfig {
263 
264 
269 typedef struct dim3 {
270  uint32_t x;
271  uint32_t y;
272  uint32_t z;
273 #ifdef __cplusplus
274  __host__ __device__ dim3(uint32_t _x = 1, uint32_t _y = 1, uint32_t _z = 1) : x(_x), y(_y), z(_z){};
275 #endif
276 } dim3;
277 
278 typedef struct hipLaunchParams_t {
279  void* func;
282  void **args;
283  size_t sharedMem;
284  hipStream_t stream;
286 
287 
288 // Doxygen end group GlobalDefs
292 //-------------------------------------------------------------------------------------------------
293 
294 
295 // The handle allows the async commands to use the stream even if the parent hipStream_t goes
296 // out-of-scope.
297 // typedef class ihipStream_t * hipStream_t;
298 
299 
300 /*
301  * Opaque structure allows the true event (pointed at by the handle) to remain "live" even if the
302  * surrounding hipEvent_t goes out-of-scope. This is handy for cases where the hipEvent_t goes
303  * out-of-scope but the true event is being written by some async queue or device */
304 // typedef struct hipEvent_t {
305 // struct ihipEvent_t *_handle;
306 //} hipEvent_t;
307 
308 
334 hipError_t hipDeviceSynchronize(void);
335 
336 
348 hipError_t hipDeviceReset(void);
349 
350 
382 hipError_t hipSetDevice(int deviceId);
383 
384 
398 hipError_t hipGetDevice(int* deviceId);
399 
400 
413 hipError_t hipGetDeviceCount(int* count);
414 
424 hipError_t hipDeviceGetAttribute(int* pi, hipDeviceAttribute_t attr, int deviceId);
425 
439 hipError_t hipGetDeviceProperties(hipDeviceProp_t* prop, int deviceId);
440 
441 
452 hipError_t hipDeviceSetCacheConfig(hipFuncCache_t cacheConfig);
453 
454 
465 hipError_t hipDeviceGetCacheConfig(hipFuncCache_t* cacheConfig);
466 
477 hipError_t hipDeviceGetLimit(size_t* pValue, enum hipLimit_t limit);
478 
479 
490 hipError_t hipFuncSetCacheConfig(const void* func, hipFuncCache_t config);
491 
503 hipError_t hipDeviceGetSharedMemConfig(hipSharedMemConfig* pConfig);
504 
505 
517 hipError_t hipDeviceSetSharedMemConfig(hipSharedMemConfig config);
518 
543 hipError_t hipSetDeviceFlags(unsigned flags);
544 
553 hipError_t hipChooseDevice(int* device, const hipDeviceProp_t* prop);
554 
567 hipError_t hipExtGetLinkTypeAndHopCount(int device1, int device2, uint32_t* linktype, uint32_t* hopcount);
568 
569 // end doxygen Device
592 hipError_t hipGetLastError(void);
593 
594 
605 hipError_t hipPeekAtLastError(void);
606 
607 
616 const char* hipGetErrorName(hipError_t hip_error);
617 
618 
629 const char* hipGetErrorString(hipError_t hipError);
630 
631 // end doxygen Error
664 hipError_t hipStreamCreate(hipStream_t* stream);
665 
666 
684 hipError_t hipStreamCreateWithFlags(hipStream_t* stream, unsigned int flags);
685 
686 
705 hipError_t hipStreamCreateWithPriority(hipStream_t* stream, unsigned int flags, int priority);
706 
707 
722 hipError_t hipDeviceGetStreamPriorityRange(int* leastPriority, int* greatestPriority);
723 
724 
743 hipError_t hipStreamDestroy(hipStream_t stream);
744 
745 
761 hipError_t hipStreamQuery(hipStream_t stream);
762 
763 
783 hipError_t hipStreamSynchronize(hipStream_t stream);
784 
785 
805 hipError_t hipStreamWaitEvent(hipStream_t stream, hipEvent_t event, unsigned int flags);
806 
807 
821 hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int* flags);
822 
823 
837 hipError_t hipStreamGetPriority(hipStream_t stream, int* priority);
838 
839 
843 typedef void (*hipStreamCallback_t)(hipStream_t stream, hipError_t status, void* userData);
844 
860 hipError_t hipStreamAddCallback(hipStream_t stream, hipStreamCallback_t callback, void* userData,
861  unsigned int flags);
862 
863 
864 // end doxygen Stream
901 hipError_t hipEventCreateWithFlags(hipEvent_t* event, unsigned flags);
902 
903 
915 hipError_t hipEventCreate(hipEvent_t* event);
916 
917 
945 #ifdef __cplusplus
946 hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream = NULL);
947 #else
948 hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream);
949 #endif
950 
967 hipError_t hipEventDestroy(hipEvent_t event);
968 
969 
987 hipError_t hipEventSynchronize(hipEvent_t event);
988 
989 
1018 hipError_t hipEventElapsedTime(float* ms, hipEvent_t start, hipEvent_t stop);
1019 
1020 
1036 hipError_t hipEventQuery(hipEvent_t event);
1037 
1038 
1039 // end doxygen Events
1070 hipError_t hipPointerGetAttributes(hipPointerAttribute_t* attributes, const void* ptr);
1071 
1085 hipError_t hipMalloc(void** ptr, size_t size);
1086 
1101 hipError_t hipExtMallocWithFlags(void** ptr, size_t sizeBytes, unsigned int flags);
1102 
1115 DEPRECATED("use hipHostMalloc instead")
1116 hipError_t hipMallocHost(void** ptr, size_t size);
1117 
1131 hipError_t hipHostMalloc(void** ptr, size_t size, unsigned int flags);
1132 
1142 hipError_t hipMallocManaged(void** devPtr, size_t size, unsigned int flags __dparm(0));
1143 
1157 DEPRECATED("use hipHostMalloc instead")
1158 hipError_t hipHostAlloc(void** ptr, size_t size, unsigned int flags);
1159 
1171 hipError_t hipHostGetDevicePointer(void** devPtr, void* hstPtr, unsigned int flags);
1172 
1182 hipError_t hipHostGetFlags(unsigned int* flagsPtr, void* hostPtr);
1183 
1220 hipError_t hipHostRegister(void* hostPtr, size_t sizeBytes, unsigned int flags);
1221 
1230 hipError_t hipHostUnregister(void* hostPtr);
1231 
1251 hipError_t hipMallocPitch(void** ptr, size_t* pitch, size_t width, size_t height);
1252 
1266 hipError_t hipFree(void* ptr);
1267 
1278 DEPRECATED("use hipHostFree instead")
1279 hipError_t hipFreeHost(void* ptr);
1280 
1294 hipError_t hipHostFree(void* ptr);
1295 
1323 hipError_t hipMemcpy(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind);
1324 
1342 hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void* src, size_t sizeBytes);
1343 
1361 hipError_t hipMemcpyDtoH(void* dst, hipDeviceptr_t src, size_t sizeBytes);
1362 
1380 hipError_t hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes);
1381 
1399 hipError_t hipMemcpyHtoDAsync(hipDeviceptr_t dst, void* src, size_t sizeBytes, hipStream_t stream);
1400 
1418 hipError_t hipMemcpyDtoHAsync(void* dst, hipDeviceptr_t src, size_t sizeBytes, hipStream_t stream);
1419 
1437 hipError_t hipMemcpyDtoDAsync(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes,
1438  hipStream_t stream);
1439 
1440 #if __HIP_VDI__
1441 hipError_t hipModuleGetGlobal(hipDeviceptr_t* dptr, size_t* bytes,
1442  hipModule_t hmod, const char* name);
1443 
1444 hipError_t hipGetSymbolAddress(void** devPtr, const void* symbolName);
1445 hipError_t hipGetSymbolSize(size_t* size, const void* symbolName);
1446 hipError_t hipMemcpyToSymbol(const void* symbolName, const void* src,
1447  size_t sizeBytes, size_t offset __dparm(0),
1448  hipMemcpyKind kind __dparm(hipMemcpyHostToDevice));
1449 hipError_t hipMemcpyToSymbolAsync(const void* symbolName, const void* src,
1450  size_t sizeBytes, size_t offset,
1451  hipMemcpyKind kind, hipStream_t stream __dparm(0));
1452 hipError_t hipMemcpyFromSymbol(void* dst, const void* symbolName,
1453  size_t sizeBytes, size_t offset __dparm(0),
1454  hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost));
1455 hipError_t hipMemcpyFromSymbolAsync(void* dst, const void* symbolName,
1456  size_t sizeBytes, size_t offset,
1457  hipMemcpyKind kind,
1458  hipStream_t stream __dparm(0));
1459 #else
1460 hipError_t hipModuleGetGlobal(void**, size_t*, hipModule_t, const char*);
1461 
1462 namespace hip_impl {
1463 inline
1464 __attribute__((visibility("hidden")))
1465 hipError_t read_agent_global_from_process(hipDeviceptr_t* dptr, size_t* bytes,
1466  const char* name);
1467 } // Namespace hip_impl.
1468 
1479 inline
1480 __attribute__((visibility("hidden")))
1481 hipError_t hipGetSymbolAddress(void** devPtr, const void* symbolName) {
1482  //HIP_INIT_API(hipGetSymbolAddress, devPtr, symbolName);
1483  hip_impl::hip_init();
1484  size_t size = 0;
1485  return hip_impl::read_agent_global_from_process(devPtr, &size, (const char*)symbolName);
1486 }
1487 
1488 
1499 inline
1500 __attribute__((visibility("hidden")))
1501 hipError_t hipGetSymbolSize(size_t* size, const void* symbolName) {
1502  // HIP_INIT_API(hipGetSymbolSize, size, symbolName);
1503  hip_impl::hip_init();
1504  void* devPtr = nullptr;
1505  return hip_impl::read_agent_global_from_process(&devPtr, size, (const char*)symbolName);
1506 }
1507 
1508 #if defined(__cplusplus)
1509 } // extern "C"
1510 #endif
1511 
1512 namespace hip_impl {
1513 hipError_t hipMemcpyToSymbol(void*, const void*, size_t, size_t, hipMemcpyKind,
1514  const char*);
1515 } // Namespace hip_impl.
1516 
1517 #if defined(__cplusplus)
1518 extern "C" {
1519 #endif
1520 
1544 inline
1545 __attribute__((visibility("hidden")))
1546 hipError_t hipMemcpyToSymbol(const void* symbolName, const void* src,
1547  size_t sizeBytes, size_t offset __dparm(0),
1548  hipMemcpyKind kind __dparm(hipMemcpyHostToDevice)) {
1549  if (!symbolName) return hipErrorInvalidSymbol;
1550 
1551  hipDeviceptr_t dst = NULL;
1552  hipGetSymbolAddress(&dst, (const char*)symbolName);
1553 
1554  return hip_impl::hipMemcpyToSymbol(dst, src, sizeBytes, offset, kind,
1555  (const char*)symbolName);
1556 }
1557 
1558 #if defined(__cplusplus)
1559 } // extern "C"
1560 #endif
1561 
1562 namespace hip_impl {
1563 hipError_t hipMemcpyToSymbolAsync(void*, const void*, size_t, size_t,
1564  hipMemcpyKind, hipStream_t, const char*);
1565 hipError_t hipMemcpyFromSymbol(void*, const void*, size_t, size_t,
1566  hipMemcpyKind, const char*);
1567 hipError_t hipMemcpyFromSymbolAsync(void*, const void*, size_t, size_t,
1568  hipMemcpyKind, hipStream_t, const char*);
1569 } // Namespace hip_impl.
1570 
1571 #if defined(__cplusplus)
1572 extern "C" {
1573 #endif
1574 
1600 inline
1601 __attribute__((visibility("hidden")))
1602 hipError_t hipMemcpyToSymbolAsync(const void* symbolName, const void* src,
1603  size_t sizeBytes, size_t offset,
1604  hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
1605  if (!symbolName) return hipErrorInvalidSymbol;
1606 
1607  hipDeviceptr_t dst = NULL;
1608  hipGetSymbolAddress(&dst, symbolName);
1609 
1610  return hip_impl::hipMemcpyToSymbolAsync(dst, src, sizeBytes, offset, kind,
1611  stream,
1612  (const char*)symbolName);
1613 }
1614 
1615 inline
1616 __attribute__((visibility("hidden")))
1617 hipError_t hipMemcpyFromSymbol(void* dst, const void* symbolName,
1618  size_t sizeBytes, size_t offset __dparm(0),
1619  hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost)) {
1620  if (!symbolName) return hipErrorInvalidSymbol;
1621 
1622  hipDeviceptr_t src = NULL;
1623  hipGetSymbolAddress(&src, symbolName);
1624 
1625  return hip_impl::hipMemcpyFromSymbol(dst, src, sizeBytes, offset, kind,
1626  (const char*)symbolName);
1627 }
1628 
1629 inline
1630 __attribute__((visibility("hidden")))
1631 hipError_t hipMemcpyFromSymbolAsync(void* dst, const void* symbolName,
1632  size_t sizeBytes, size_t offset,
1633  hipMemcpyKind kind,
1634  hipStream_t stream __dparm(0)) {
1635  if (!symbolName) return hipErrorInvalidSymbol;
1636 
1637  hipDeviceptr_t src = NULL;
1638  hipGetSymbolAddress(&src, symbolName);
1639 
1640  return hip_impl::hipMemcpyFromSymbolAsync(dst, src, sizeBytes, offset, kind,
1641  stream,
1642  (const char*)symbolName);
1643 }
1644 
1645 #endif // __HIP_VDI__
1646 
1674 hipError_t hipMemcpyAsync(void* dst, const void* src, size_t sizeBytes, hipMemcpyKind kind,
1675  hipStream_t stream __dparm(0));
1676 
1686 hipError_t hipMemset(void* dst, int value, size_t sizeBytes);
1687 
1697 hipError_t hipMemsetD8(hipDeviceptr_t dest, unsigned char value, size_t sizeBytes);
1698 
1708 hipError_t hipMemsetD32(hipDeviceptr_t dest, int value, size_t count);
1709 
1725 hipError_t hipMemsetAsync(void* dst, int value, size_t sizeBytes, hipStream_t stream __dparm(0));
1726 
1742 hipError_t hipMemsetD32Async(hipDeviceptr_t dst, int value, size_t count,
1743  hipStream_t stream __dparm(0));
1744 
1756 hipError_t hipMemset2D(void* dst, size_t pitch, int value, size_t width, size_t height);
1757 
1770 hipError_t hipMemset2DAsync(void* dst, size_t pitch, int value, size_t width, size_t height,hipStream_t stream __dparm(0));
1771 
1780 hipError_t hipMemset3D(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent );
1781 
1791 hipError_t hipMemset3DAsync(hipPitchedPtr pitchedDevPtr, int value, hipExtent extent ,hipStream_t stream __dparm(0));
1792 
1802 hipError_t hipMemGetInfo(size_t* free, size_t* total);
1803 
1804 
1805 hipError_t hipMemPtrGetInfo(void* ptr, size_t* size);
1806 
1807 
1820 hipError_t hipMallocArray(hipArray** array, const hipChannelFormatDesc* desc, size_t width,
1821  size_t height __dparm(0), unsigned int flags __dparm(hipArrayDefault));
1822 hipError_t hipArrayCreate(hipArray** pHandle, const HIP_ARRAY_DESCRIPTOR* pAllocateArray);
1823 
1824 hipError_t hipArray3DCreate(hipArray** array, const HIP_ARRAY3D_DESCRIPTOR* pAllocateArray);
1825 
1826 hipError_t hipMalloc3D(hipPitchedPtr* pitchedDevPtr, hipExtent extent);
1827 
1836 hipError_t hipFreeArray(hipArray* array);
1837 
1850 hipError_t hipMalloc3DArray(hipArray** array, const struct hipChannelFormatDesc* desc,
1851  struct hipExtent extent, unsigned int flags);
1868 hipError_t hipMemcpy2D(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
1869  size_t height, hipMemcpyKind kind);
1870 
1880 hipError_t hipMemcpyParam2D(const hip_Memcpy2D* pCopy);
1881 
1899 hipError_t hipMemcpy2DAsync(void* dst, size_t dpitch, const void* src, size_t spitch, size_t width,
1900  size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0));
1901 
1918 hipError_t hipMemcpy2DToArray(hipArray* dst, size_t wOffset, size_t hOffset, const void* src,
1919  size_t spitch, size_t width, size_t height, hipMemcpyKind kind);
1920 
1937 hipError_t hipMemcpyToArray(hipArray* dst, size_t wOffset, size_t hOffset, const void* src,
1938  size_t count, hipMemcpyKind kind);
1939 
1955 hipError_t hipMemcpyFromArray(void* dst, hipArray_const_t srcArray, size_t wOffset, size_t hOffset,
1956  size_t count, hipMemcpyKind kind);
1957 
1971 hipError_t hipMemcpyAtoH(void* dst, hipArray* srcArray, size_t srcOffset, size_t count);
1972 
1986 hipError_t hipMemcpyHtoA(hipArray* dstArray, size_t dstOffset, const void* srcHost, size_t count);
1987 
1998 hipError_t hipMemcpy3D(const struct hipMemcpy3DParms* p);
1999 
2000 // doxygen end Memory
2032 hipError_t hipDeviceCanAccessPeer(int* canAccessPeer, int deviceId, int peerDeviceId);
2033 
2034 
2051 hipError_t hipDeviceEnablePeerAccess(int peerDeviceId, unsigned int flags);
2052 
2053 
2065 hipError_t hipDeviceDisablePeerAccess(int peerDeviceId);
2066 
2079 hipError_t hipMemGetAddressRange(hipDeviceptr_t* pbase, size_t* psize, hipDeviceptr_t dptr);
2080 
2081 #ifndef USE_PEER_NON_UNIFIED
2082 #define USE_PEER_NON_UNIFIED 1
2083 #endif
2084 
2085 #if USE_PEER_NON_UNIFIED == 1
2086 
2097 hipError_t hipMemcpyPeer(void* dst, int dstDeviceId, const void* src, int srcDeviceId,
2098  size_t sizeBytes);
2099 
2112 hipError_t hipMemcpyPeerAsync(void* dst, int dstDeviceId, const void* src, int srcDevice,
2113  size_t sizeBytes, hipStream_t stream __dparm(0));
2114 #endif
2115 
2116 
2117 // doxygen end PeerToPeer
2136 // TODO-ctx - more description on error codes.
2137 hipError_t hipInit(unsigned int flags);
2138 
2139 
2159 DEPRECATED(DEPRECATED_MSG)
2160 hipError_t hipCtxCreate(hipCtx_t* ctx, unsigned int flags, hipDevice_t device);
2161 
2172 DEPRECATED(DEPRECATED_MSG)
2173 hipError_t hipCtxDestroy(hipCtx_t ctx);
2174 
2185 DEPRECATED(DEPRECATED_MSG)
2186 hipError_t hipCtxPopCurrent(hipCtx_t* ctx);
2187 
2198 DEPRECATED(DEPRECATED_MSG)
2199 hipError_t hipCtxPushCurrent(hipCtx_t ctx);
2200 
2211 DEPRECATED(DEPRECATED_MSG)
2212 hipError_t hipCtxSetCurrent(hipCtx_t ctx);
2213 
2224 DEPRECATED(DEPRECATED_MSG)
2225 hipError_t hipCtxGetCurrent(hipCtx_t* ctx);
2226 
2238 DEPRECATED(DEPRECATED_MSG)
2239 hipError_t hipCtxGetDevice(hipDevice_t* device);
2240 
2258 DEPRECATED(DEPRECATED_MSG)
2259 hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int* apiVersion);
2260 
2274 DEPRECATED(DEPRECATED_MSG)
2275 hipError_t hipCtxGetCacheConfig(hipFuncCache_t* cacheConfig);
2276 
2290 DEPRECATED(DEPRECATED_MSG)
2291 hipError_t hipCtxSetCacheConfig(hipFuncCache_t cacheConfig);
2292 
2306 DEPRECATED(DEPRECATED_MSG)
2307 hipError_t hipCtxSetSharedMemConfig(hipSharedMemConfig config);
2308 
2322 DEPRECATED(DEPRECATED_MSG)
2323 hipError_t hipCtxGetSharedMemConfig(hipSharedMemConfig* pConfig);
2324 
2336 DEPRECATED(DEPRECATED_MSG)
2337 hipError_t hipCtxSynchronize(void);
2338 
2349 DEPRECATED(DEPRECATED_MSG)
2350 hipError_t hipCtxGetFlags(unsigned int* flags);
2351 
2371 DEPRECATED(DEPRECATED_MSG)
2372 hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags);
2373 
2390 DEPRECATED(DEPRECATED_MSG)
2391 hipError_t hipCtxDisablePeerAccess(hipCtx_t peerCtx);
2392 
2405 hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int* flags, int* active);
2406 
2419 hipError_t hipDevicePrimaryCtxRelease(hipDevice_t dev);
2420 
2432 hipError_t hipDevicePrimaryCtxRetain(hipCtx_t* pctx, hipDevice_t dev);
2433 
2444 hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev);
2445 
2457 hipError_t hipDevicePrimaryCtxSetFlags(hipDevice_t dev, unsigned int flags);
2458 
2459 // doxygen end Context Management
2471 hipError_t hipDeviceGet(hipDevice_t* device, int ordinal);
2472 
2481 hipError_t hipDeviceComputeCapability(int* major, int* minor, hipDevice_t device);
2482 
2491 hipError_t hipDeviceGetName(char* name, int len, hipDevice_t device);
2492 
2501 hipError_t hipDeviceGetPCIBusId(char* pciBusId, int len, int device);
2502 
2503 
2511 hipError_t hipDeviceGetByPCIBusId(int* device, const char* pciBusId);
2512 
2513 
2521 hipError_t hipDeviceTotalMem(size_t* bytes, hipDevice_t device);
2522 
2538 hipError_t hipDriverGetVersion(int* driverVersion);
2539 
2552 hipError_t hipRuntimeGetVersion(int* runtimeVersion);
2553 
2565 hipError_t hipModuleLoad(hipModule_t* module, const char* fname);
2566 
2577 hipError_t hipModuleUnload(hipModule_t module);
2578 
2589 hipError_t hipModuleGetFunction(hipFunction_t* function, hipModule_t module, const char* kname);
2590 
2600 hipError_t hipFuncGetAttributes(struct hipFuncAttributes* attr, const void* func);
2601 
2602 #if !__HIP_VDI__
2603 #if defined(__cplusplus)
2604 } // extern "C"
2605 #endif
2606 
2607 namespace hip_impl {
2608  class agent_globals_impl;
2610  public:
2611  agent_globals();
2612  ~agent_globals();
2613  agent_globals(const agent_globals&) = delete;
2614 
2615  hipError_t read_agent_global_from_module(hipDeviceptr_t* dptr, size_t* bytes,
2616  hipModule_t hmod, const char* name);
2617  hipError_t read_agent_global_from_process(hipDeviceptr_t* dptr, size_t* bytes,
2618  const char* name);
2619  private:
2620  agent_globals_impl* impl;
2621  };
2622 
2623  inline
2624  __attribute__((visibility("hidden")))
2625  agent_globals& get_agent_globals() {
2626  static agent_globals ag;
2627  return ag;
2628  }
2629 
2630  extern "C"
2631  inline
2632  __attribute__((visibility("hidden")))
2633  hipError_t read_agent_global_from_process(hipDeviceptr_t* dptr, size_t* bytes,
2634  const char* name) {
2635  return get_agent_globals().read_agent_global_from_process(dptr, bytes, name);
2636  }
2637 } // Namespace hip_impl.
2638 
2639 #if defined(__cplusplus)
2640 extern "C" {
2641 #endif
2642 
2653 hipError_t hipModuleGetGlobal(hipDeviceptr_t* dptr, size_t* bytes,
2654  hipModule_t hmod, const char* name);
2655 #endif // __HIP_VDI__
2656 
2657 hipError_t hipModuleGetTexRef(textureReference** texRef, hipModule_t hmod, const char* name);
2658 
2668 hipError_t hipModuleLoadData(hipModule_t* module, const void* image);
2669 
2682 hipError_t hipModuleLoadDataEx(hipModule_t* module, const void* image, unsigned int numOptions,
2683  hipJitOption* options, void** optionValues);
2684 
2709 hipError_t hipModuleLaunchKernel(hipFunction_t f, unsigned int gridDimX, unsigned int gridDimY,
2710  unsigned int gridDimZ, unsigned int blockDimX,
2711  unsigned int blockDimY, unsigned int blockDimZ,
2712  unsigned int sharedMemBytes, hipStream_t stream,
2713  void** kernelParams, void** extra);
2714 
2730 hipError_t hipLaunchCooperativeKernel(const void* f, dim3 gridDim, dim3 blockDimX,
2731  void** kernelParams, unsigned int sharedMemBytes,
2732  hipStream_t stream);
2733 
2744 hipError_t hipLaunchCooperativeKernelMultiDevice(hipLaunchParams* launchParamsList,
2745  int numDevices, unsigned int flags);
2746 
2758 hipError_t hipOccupancyMaxPotentialBlockSize(uint32_t* gridSize, uint32_t* blockSize,
2759  hipFunction_t f, size_t dynSharedMemPerBlk,
2760  uint32_t blockSizeLimit);
2761 
2771  int* numBlocks, const void* f, int blockSize, size_t dynamicSMemSize);
2772 
2783  int* numBlocks, const void* f, int blockSize, size_t dynamicSMemSize, unsigned int flags);
2784 
2796 hipError_t hipExtLaunchMultiKernelMultiDevice(hipLaunchParams* launchParamsList,
2797  int numDevices, unsigned int flags);
2798 
2799 
2800 // doxygen end Version Management
2818 // TODO - expand descriptions:
2824 hipError_t hipProfilerStart();
2825 
2826 
2832 hipError_t hipProfilerStop();
2833 
2834 
2839 // TODO: implement IPC apis
2840 
2866 hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t* handle, void* devPtr);
2867 
2904 hipError_t hipIpcOpenMemHandle(void** devPtr, hipIpcMemHandle_t handle, unsigned int flags);
2905 
2924 hipError_t hipIpcCloseMemHandle(void* devPtr);
2925 
2926 
2927 // hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t* handle, void* devPtr);
2928 // hipError_t hipIpcCloseMemHandle(void *devPtr);
2929 // // hipError_t hipIpcOpenEventHandle(hipEvent_t* event, hipIpcEventHandle_t handle);
2930 // hipError_t hipIpcOpenMemHandle(void** devPtr, hipIpcMemHandle_t handle, unsigned int flags);
2931 
2932 
2953 hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0));
2954 
2955 
2966 hipError_t hipSetupArgument(const void* arg, size_t size, size_t offset);
2967 
2968 
2977 hipError_t hipLaunchByPtr(const void* func);
2978 
2979 
2980 
2986 #ifdef __cplusplus
2987 } /* extern "c" */
2988 #endif
2989 
2990 #include <hip/hcc_detail/hip_prof_str.h>
2991 
2992 #ifdef __cplusplus
2993 extern "C" {
2994 #endif
2995 
2998 hipError_t hipRegisterApiCallback(uint32_t id, void* fun, void* arg);
2999 hipError_t hipRemoveApiCallback(uint32_t id);
3000 hipError_t hipRegisterActivityCallback(uint32_t id, void* fun, void* arg);
3001 hipError_t hipRemoveActivityCallback(uint32_t id);
3002 const char* hipApiName(uint32_t id);
3003 const char* hipKernelNameRef(const hipFunction_t f);
3004 #ifdef __cplusplus
3005 } /* extern "C" */
3006 #endif
3007 
3008 #ifdef __cplusplus
3009 
3010 hipError_t hipBindTexture(size_t* offset, textureReference* tex, const void* devPtr,
3011  const hipChannelFormatDesc* desc, size_t size = UINT_MAX);
3012 
3013 hipError_t ihipBindTextureImpl(int dim, enum hipTextureReadMode readMode, size_t* offset,
3014  const void* devPtr, const struct hipChannelFormatDesc* desc,
3015  size_t size, textureReference* tex);
3016 
3017 /*
3018  * @brief hipBindTexture Binds size bytes of the memory area pointed to by @p devPtr to the texture
3019  *reference tex.
3020  *
3021  * @p desc describes how the memory is interpreted when fetching values from the texture. The @p
3022  *offset parameter is an optional byte offset as with the low-level hipBindTexture() function. Any
3023  *memory previously bound to tex is unbound.
3024  *
3025  * @param[in] offset - Offset in bytes
3026  * @param[out] tex - texture to bind
3027  * @param[in] devPtr - Memory area on device
3028  * @param[in] desc - Channel format
3029  * @param[in] size - Size of the memory area pointed to by devPtr
3030  * @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree, #hipErrorUnknown
3031  **/
3032 template <class T, int dim, enum hipTextureReadMode readMode>
3033 hipError_t hipBindTexture(size_t* offset, struct texture<T, dim, readMode>& tex, const void* devPtr,
3034  const struct hipChannelFormatDesc& desc, size_t size = UINT_MAX) {
3035  return ihipBindTextureImpl(dim, readMode, offset, devPtr, &desc, size, &tex);
3036 }
3037 
3038 /*
3039  * @brief hipBindTexture Binds size bytes of the memory area pointed to by @p devPtr to the texture
3040  *reference tex.
3041  *
3042  * @p desc describes how the memory is interpreted when fetching values from the texture. The @p
3043  *offset parameter is an optional byte offset as with the low-level hipBindTexture() function. Any
3044  *memory previously bound to tex is unbound.
3045  *
3046  * @param[in] offset - Offset in bytes
3047  * @param[in] tex - texture to bind
3048  * @param[in] devPtr - Memory area on device
3049  * @param[in] size - Size of the memory area pointed to by devPtr
3050  * @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree, #hipErrorUnknown
3051  **/
3052 template <class T, int dim, enum hipTextureReadMode readMode>
3053 hipError_t hipBindTexture(size_t* offset, struct texture<T, dim, readMode>& tex, const void* devPtr,
3054  size_t size = UINT_MAX) {
3055  return ihipBindTextureImpl(dim, readMode, offset, devPtr, &(tex.channelDesc), size, &tex);
3056 }
3057 
3058 // C API
3059 hipError_t hipBindTexture2D(size_t* offset, textureReference* tex, const void* devPtr,
3060  const hipChannelFormatDesc* desc, size_t width, size_t height,
3061  size_t pitch);
3062 
3063 hipError_t ihipBindTexture2DImpl(int dim, enum hipTextureReadMode readMode, size_t* offset,
3064  const void* devPtr, const struct hipChannelFormatDesc* desc,
3065  size_t width, size_t height, textureReference* tex);
3066 
3067 template <class T, int dim, enum hipTextureReadMode readMode>
3068 hipError_t hipBindTexture2D(size_t* offset, struct texture<T, dim, readMode>& tex,
3069  const void* devPtr, size_t width, size_t height, size_t pitch) {
3070  return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &(tex.channelDesc), width, height,
3071  &tex);
3072 }
3073 
3074 template <class T, int dim, enum hipTextureReadMode readMode>
3075 hipError_t hipBindTexture2D(size_t* offset, struct texture<T, dim, readMode>& tex,
3076  const void* devPtr, const struct hipChannelFormatDesc& desc,
3077  size_t width, size_t height, size_t pitch) {
3078  return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &desc, width, height, &tex);
3079 }
3080 
3081 // C API
3082 hipError_t hipBindTextureToArray(textureReference* tex, hipArray_const_t array,
3083  const hipChannelFormatDesc* desc);
3084 
3085 hipError_t ihipBindTextureToArrayImpl(int dim, enum hipTextureReadMode readMode,
3086  hipArray_const_t array,
3087  const struct hipChannelFormatDesc& desc,
3088  textureReference* tex);
3089 
3090 template <class T, int dim, enum hipTextureReadMode readMode>
3091 hipError_t hipBindTextureToArray(struct texture<T, dim, readMode>& tex, hipArray_const_t array) {
3092  return ihipBindTextureToArrayImpl(dim, readMode, array, tex.channelDesc, &tex);
3093 }
3094 
3095 template <class T, int dim, enum hipTextureReadMode readMode>
3096 hipError_t hipBindTextureToArray(struct texture<T, dim, readMode>& tex, hipArray_const_t array,
3097  const struct hipChannelFormatDesc& desc) {
3098  return ihipBindTextureToArrayImpl(dim, readMode, array, desc, &tex);
3099 }
3100 
3101 template <class T, int dim, enum hipTextureReadMode readMode>
3102 inline static hipError_t hipBindTextureToArray(struct texture<T, dim, readMode> *tex,
3103  hipArray_const_t array,
3104  const struct hipChannelFormatDesc* desc) {
3105  return ihipBindTextureToArrayImpl(dim, readMode, array, *desc, tex);
3106 }
3107 
3108 // C API
3109 hipError_t hipBindTextureToMipmappedArray(const textureReference* tex,
3110  hipMipmappedArray_const_t mipmappedArray,
3111  const hipChannelFormatDesc* desc);
3112 
3113 template <class T, int dim, enum hipTextureReadMode readMode>
3114 hipError_t hipBindTextureToMipmappedArray(const texture<T, dim, readMode>& tex,
3115  hipMipmappedArray_const_t mipmappedArray) {
3116  return hipSuccess;
3117 }
3118 
3119 template <class T, int dim, enum hipTextureReadMode readMode>
3120 hipError_t hipBindTextureToMipmappedArray(const texture<T, dim, readMode>& tex,
3121  hipMipmappedArray_const_t mipmappedArray,
3122  const hipChannelFormatDesc& desc) {
3123  return hipSuccess;
3124 }
3125 
3126 template <class T>
3128  int* numBlocks, T f, int blockSize, size_t dynamicSMemSize) {
3130  numBlocks, reinterpret_cast<const void*>(f), blockSize, dynamicSMemSize);
3131 }
3132 
3133 template <class T>
3135  int* numBlocks, T f, int blockSize, size_t dynamicSMemSize, unsigned int flags) {
3137  numBlocks, reinterpret_cast<const void*>(f), blockSize, dynamicSMemSize, flags);
3138 }
3139 
3140 template <class T>
3141 inline hipError_t hipLaunchCooperativeKernel(T f, dim3 gridDim, dim3 blockDim,
3142  void** kernelParams, unsigned int sharedMemBytes, hipStream_t stream) {
3143  return hipLaunchCooperativeKernel(reinterpret_cast<const void*>(f), gridDim,
3144  blockDim, kernelParams, sharedMemBytes, stream);
3145 }
3146 
3147 template <class T>
3148 inline hipError_t hipLaunchCooperativeKernelMultiDevice(hipLaunchParams* launchParamsList,
3149  unsigned int numDevices, unsigned int flags = 0) {
3150  return hipLaunchCooperativeKernelMultiDevice(launchParamsList, numDevices, flags);
3151 }
3152 
3153 template <class T>
3154 inline hipError_t hipExtLaunchMultiKernelMultiDevice(hipLaunchParams* launchParamsList,
3155  unsigned int numDevices, unsigned int flags = 0) {
3156  return hipExtLaunchMultiKernelMultiDevice(launchParamsList, numDevices, flags);
3157 }
3158 
3159 
3160 /*
3161  * @brief Unbinds the textuer bound to @p tex
3162  *
3163  * @param[in] tex - texture to unbind
3164  *
3165  * @return #hipSuccess
3166  **/
3167 hipError_t hipUnbindTexture(const textureReference* tex);
3168 
3169 extern hipError_t ihipUnbindTextureImpl(const hipTextureObject_t& textureObject);
3170 
3171 template <class T, int dim, enum hipTextureReadMode readMode>
3172 hipError_t hipUnbindTexture(struct texture<T, dim, readMode>& tex) {
3173  return ihipUnbindTextureImpl(tex.textureObject);
3174 }
3175 
3176 hipError_t hipGetChannelDesc(hipChannelFormatDesc* desc, hipArray_const_t array);
3177 hipError_t hipGetTextureAlignmentOffset(size_t* offset, const textureReference* texref);
3178 hipError_t hipGetTextureReference(const textureReference** texref, const void* symbol);
3179 
3180 hipError_t hipCreateTextureObject(hipTextureObject_t* pTexObject, const hipResourceDesc* pResDesc,
3181  const hipTextureDesc* pTexDesc,
3182  const hipResourceViewDesc* pResViewDesc);
3183 
3184 hipError_t hipDestroyTextureObject(hipTextureObject_t textureObject);
3185 
3186 hipError_t hipGetTextureObjectResourceDesc(hipResourceDesc* pResDesc,
3187  hipTextureObject_t textureObject);
3188 hipError_t hipGetTextureObjectResourceViewDesc(hipResourceViewDesc* pResViewDesc,
3189  hipTextureObject_t textureObject);
3190 hipError_t hipGetTextureObjectTextureDesc(hipTextureDesc* pTexDesc,
3191  hipTextureObject_t textureObject);
3192 hipError_t hipTexRefSetArray(textureReference* tex, hipArray_const_t array, unsigned int flags);
3193 
3194 hipError_t hipTexRefSetAddressMode(textureReference* tex, int dim, hipTextureAddressMode am);
3195 
3196 hipError_t hipTexRefSetFilterMode(textureReference* tex, hipTextureFilterMode fm);
3197 
3198 hipError_t hipTexRefSetFlags(textureReference* tex, unsigned int flags);
3199 
3200 hipError_t hipTexRefSetFormat(textureReference* tex, hipArray_Format fmt, int NumPackedComponents);
3201 
3202 hipError_t hipTexRefSetAddress(size_t* offset, textureReference* tex, hipDeviceptr_t devPtr,
3203  size_t size);
3204 
3205 hipError_t hipTexRefSetAddress2D(textureReference* tex, const HIP_ARRAY_DESCRIPTOR* desc,
3206  hipDeviceptr_t devPtr, size_t pitch);
3207 
3208 hipError_t hipCreateSurfaceObject(hipSurfaceObject_t* pSurfObject, const hipResourceDesc* pResDesc);
3209 
3210 hipError_t hipDestroySurfaceObject(hipSurfaceObject_t surfaceObject);
3211 
3212 // doxygen end Texture
3218 #endif
3219 
3220 
3238 // end-group HCC_Specific
3244 // doxygen end HIP API
3249 #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:1990
prefer larger L1 cache and smaller shared memory
Definition: hip_runtime_api.h:248
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:729
hipError_t hipCtxDisablePeerAccess(hipCtx_t peerCtx)
Disable direct access from current context&#39;s virtual address space to memory allocations physically l...
Definition: hip_peer.cpp:220
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:1862
hipError_t hipStreamGetPriority(hipStream_t stream, int *priority)
Query the priority of a stream.
Definition: hip_stream.cpp:238
hipError_t hipDeviceGetCacheConfig(hipFuncCache_t *cacheConfig)
Set Cache configuration for a specific function.
Definition: hip_device.cpp:84
hipError_t hipDriverGetVersion(int *driverVersion)
Returns the approximate HIP driver version.
Definition: hip_context.cpp:88
Definition: hip_runtime_api.h:278
hipError_t hipPeekAtLastError(void)
Return last error returned by any HIP runtime API call.
Definition: hip_error.cpp:41
hipError_t hipMemcpyParam2D(const hip_Memcpy2D *pCopy)
Copies memory for 2D arrays.
Definition: hip_memory.cpp:1742
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:387
hipError_t hipDeviceGetByPCIBusId(int *device, const char *pciBusId)
Returns a handle to a compute device.
Definition: hip_device.cpp:445
hipError_t hipExtMallocWithFlags(void **ptr, size_t sizeBytes, unsigned int flags)
Allocate memory on the default accelerator.
Definition: hip_memory.cpp:266
hipError_t hipMemGetAddressRange(hipDeviceptr_t *pbase, size_t *psize, hipDeviceptr_t dptr)
Get information on memory allocations.
Definition: hip_memory.cpp:2053
TODO-doc.
hipError_t hipFreeHost(void *ptr)
Free memory allocated by the hcc hip host memory allocation API. [Deprecated].
Definition: hip_memory.cpp:2023
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:1315
unsigned long long hipSurfaceObject_t
Definition: hip_surface_types.h:36
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:858
Definition: driver_types.h:240
hipError_t hipMallocPitch(void **ptr, size_t *pitch, size_t width, size_t height)
Definition: hip_memory.cpp:456
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.
Definition: hip_module.cpp:465
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:1689
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:258
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:1334
uint32_t x
x
Definition: hip_runtime_api.h:270
hipError_t hipMemcpyAtoH(void *dst, hipArray *srcArray, size_t srcOffset, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1371
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:193
hipError_t hipCtxPopCurrent(hipCtx_t *ctx)
Pop the current/default context and return the popped context.
Definition: hip_context.cpp:136
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:142
hipError_t hipDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority)
Returns numerical values that correspond to the least and greatest stream priority.
Definition: hip_stream.cpp:122
prefer equal size L1 cache and shared memory
Definition: hip_runtime_api.h:249
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:2025
hipError_t hipStreamCreateWithPriority(hipStream_t *stream, unsigned int flags, int priority)
Create an asynchronous stream with the specified priority.
Definition: hip_stream.cpp:113
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:172
Definition: driver_types.h:181
hipError_t hipLaunchCooperativeKernel(const void *f, dim3 gridDim, dim3 blockDimX, void **kernelParams, unsigned int sharedMemBytes, hipStream_t stream)
launches kernel f with launch parameters and shared memory on stream with arguments passed to kernelp...
hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void *src, size_t sizeBytes)
Copy data from Host to Device.
Definition: hip_memory.cpp:1160
hipError_t hipModuleUnload(hipModule_t module)
Frees the module.
Definition: hip_module.cpp:134
Definition: hip_module.cpp:106
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:264
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:186
hipError_t hipCtxGetSharedMemConfig(hipSharedMemConfig *pConfig)
Get Shared memory bank configuration.
Definition: hip_context.cpp:244
Definition: hip_runtime_api.h:2609
hipError_t hipCtxCreate(hipCtx_t *ctx, unsigned int flags, hipDevice_t device)
Create a context and set it as current/ default context.
Definition: hip_context.cpp:55
#define hipArrayDefault
Default HIP array allocation flag.
Definition: hip_runtime_api.h:209
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 hipCtxSetSharedMemConfig(hipSharedMemConfig config)
Set Shared memory bank configuration.
Definition: hip_context.cpp:236
hipError_t hipCtxSetCurrent(hipCtx_t ctx)
Set the passed context as current/default.
Definition: hip_context.cpp:181
hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t *handle, void *devPtr)
Gets an interprocess memory handle for an existing device memory allocation.
Definition: hip_memory.cpp:2074
Definition: hip_runtime_api.h:121
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:115
hipError_t hipHostMalloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory.
Definition: hip_memory.cpp:371
Definition: hip_hcc_internal.h:883
Definition: texture_types.h:74
hipError_t hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *f, int blockSize, size_t dynamicSMemSize, unsigned int flags)
Returns occupancy for a device function.
hipError_t hipDeviceGetLimit(size_t *pValue, enum hipLimit_t limit)
Get Resource limits of current device.
Definition: hip_device.cpp:96
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:839
Definition: driver_types.h:77
hipDeviceAttribute_t
Definition: hip_runtime_api.h:264
hipError_t hipEventDestroy(hipEvent_t event)
Destroy the specified event.
Definition: hip_event.cpp:160
hipError_t hipStreamCreateWithFlags(hipStream_t *stream, unsigned int flags)
Create an asynchronous stream.
Definition: hip_stream.cpp:97
hipError_t hipConfigureCall(dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0))
Configure a kernel launch.
hipError_t hipChooseDevice(int *device, const hipDeviceProp_t *prop)
Device which matches hipDeviceProp_t is returned.
Definition: hip_device.cpp:471
hipError_t hipCtxSetCacheConfig(hipFuncCache_t cacheConfig)
Set L1/Shared cache partition.
Definition: hip_context.cpp:228
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:269
uint32_t y
y
Definition: hip_runtime_api.h:271
void(* hipStreamCallback_t)(hipStream_t stream, hipError_t status, void *userData)
Definition: hip_runtime_api.h:843
hipError_t hipModuleLoad(hipModule_t *module, const char *fname)
Loads code object from file into a hipModule_t.
Definition: hip_module.cpp:844
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
#define __host__
Definition: host_defines.h:41
hipError_t hipHostAlloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory [Deprecated].
Definition: hip_memory.cpp:395
hipError_t hipMallocHost(void **ptr, size_t size)
Allocate pinned host memory [Deprecated].
Definition: hip_memory.cpp:391
hipError_t hipEventElapsedTime(float *ms, hipEvent_t start, hipEvent_t stop)
Return the elapsed time between two events.
Definition: hip_event.cpp:205
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:179
hipError_t hipGetDeviceCount(int *count)
Return number of compute-capable devices.
Definition: hip_device.cpp:71
Definition: driver_types.h:68
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:1778
Definition: driver_types.h:253
hipError_t hipOccupancyMaxPotentialBlockSize(uint32_t *gridSize, uint32_t *blockSize, hipFunction_t f, size_t dynSharedMemPerBlk, uint32_t blockSizeLimit)
determine the grid and block sizes to achieves maximum occupancy for a kernel
Definition: hip_module.cpp:1015
hipError_t hipStreamDestroy(hipStream_t stream)
Destroys the specified stream.
Definition: hip_stream.cpp:195
hipError_t hipHostGetFlags(unsigned int *flagsPtr, void *hostPtr)
Return flags associated with host pointer.
Definition: hip_memory.cpp:911
hipError_t hipStreamSynchronize(hipStream_t stream)
Wait for all commands in stream to complete.
Definition: hip_stream.cpp:184
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:2110
hipError_t hipCtxGetCacheConfig(hipFuncCache_t *cacheConfig)
Set Cache configuration for a specific function.
Definition: hip_context.cpp:220
hipError_t hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Device.
Definition: hip_memory.cpp:1198
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:258
dim3 gridDim
Grid dimentions.
Definition: hip_runtime_api.h:280
no preference for shared memory or L1 (default)
Definition: hip_runtime_api.h:246
hipError_t hipMallocManaged(void **devPtr, size_t size, unsigned int flags __dparm(0))
Allocates memory that will be automatically managed by the Unified Memory system. ...
hipError_t hipCtxSynchronize(void)
Blocks until the default context has completed all preceding requested tasks.
Definition: hip_context.cpp:252
hipError_t hipMemsetD32Async(hipDeviceptr_t dst, int value, size_t count, hipStream_t stream __dparm(0))
Fills the memory area pointed to by dev with the constant integer value for specified number of times...
hipError_t hipCtxGetCurrent(hipCtx_t *ctx)
Get the handle of the current/ default context.
Definition: hip_context.cpp:170
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:823
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:1256
void * func
Device function symbol.
Definition: hip_runtime_api.h:279
hipError_t hipDeviceSynchronize(void)
Waits on all active streams on current device.
Definition: hip_device.cpp:144
hipError_t hipCtxPushCurrent(hipCtx_t ctx)
Push the context to be set as current/ default context.
Definition: hip_context.cpp:157
hipError_t hipMemcpyDtoH(void *dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Host.
Definition: hip_memory.cpp:1179
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:399
hipError_t hipGetDeviceProperties(hipDeviceProp_t *prop, int deviceId)
Returns device properties.
Definition: hip_device.cpp:334
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:936
hipError_t hipOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *f, int blockSize, size_t dynamicSMemSize)
Returns occupancy for a device function.
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:1794
Definition: driver_types.h:233
dim3 blockDim
Block dimentions.
Definition: hip_runtime_api.h:281
hipFuncCache_t
Definition: hip_runtime_api.h:245
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:130
hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int *flags)
Return flags associated with this stream.
Definition: hip_stream.cpp:223
Defines surface types for HIP runtime.
hipStream_t stream
Stream identifier.
Definition: hip_runtime_api.h:284
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:1898
hipError_t hipCtxGetDevice(hipDevice_t *device)
Get the handle of the device associated with current/default context.
Definition: hip_context.cpp:194
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:1939
uint32_t z
z
Definition: hip_runtime_api.h:272
hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int *apiVersion)
Returns the approximate HIP api version.
Definition: hip_context.cpp:210
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 hipLaunchCooperativeKernelMultiDevice(hipLaunchParams *launchParamsList, int numDevices, unsigned int flags)
Launches kernels on multiple devices where thread blocks can cooperate and synchronize as they execut...
hipError_t hipMemcpy3D(const struct hipMemcpy3DParms *p)
Copies data between host and device.
Definition: hip_memory.cpp:1390
hipError_t hipRuntimeGetVersion(int *runtimeVersion)
Returns the approximate HIP Runtime version.
Definition: hip_context.cpp:100
hipError_t hipMemcpyHtoA(hipArray *dstArray, size_t dstOffset, const void *srcHost, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1353
hipError_t hipSetupArgument(const void *arg, size_t size, size_t offset)
Set a kernel argument.
Definition: hip_clang.cpp:187
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:1248
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:433
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:257
Definition: hip_runtime_api.h:82
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 hipCtxGetFlags(unsigned int *flags)
Return flags used for creating default context.
Definition: hip_context.cpp:257
__attribute__((visibility("hidden"))) hipError_t hipGetSymbolAddress(void **devPtr
Copies the memory address of symbol symbolName to devPtr.
hipError_t hipExtGetLinkTypeAndHopCount(int device1, int device2, uint32_t *linktype, uint32_t *hopcount)
Returns the link type and hop count between two devices.
Definition: hip_device.cpp:558
hipError_t hipCtxDestroy(hipCtx_t ctx)
Destroy a HIP context.
Definition: hip_context.cpp:112
hipError_t hipRegisterApiCallback(uint32_t id, void *fun, void *arg)
Definition: hip_intercept.cpp:33
hipSharedMemConfig
Definition: hip_runtime_api.h:256
Definition: driver_types.h:38
Definition: hip_hcc_internal.h:703
hipError_t hipExtLaunchMultiKernelMultiDevice(hipLaunchParams *launchParamsList, int numDevices, unsigned int flags)
Launches kernels on multiple devices and guarantees all specified kernels are dispatched on respectiv...
Definition: hip_module.cpp:319
hipError_t hipDeviceGetAttribute(int *pi, hipDeviceAttribute_t attr, int deviceId)
Query for a specific device attribute.
Definition: hip_device.cpp:307
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:1241
hipError_t hipHostUnregister(void *hostPtr)
Un-register host pointer.
Definition: hip_memory.cpp:1011
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:200
hipError_t hipStreamCreate(hipStream_t *stream)
Create an asynchronous stream.
Definition: hip_stream.cpp:106
hipError_t hipMemcpy(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind)
Copy data from src to dst.
Definition: hip_memory.cpp:1133
hipError_t hipEventCreate(hipEvent_t *event)
Definition: hip_event.cpp:103
Definition: driver_types.h:90
Definition: hip_runtime_api.h:106
hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int *flags, int *active)
Get the state of the primary context.
Definition: hip_context.cpp:266
hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags)
Enables direct access to memory allocations in a peer context.
Definition: hip_peer.cpp:214
Definition: driver_types.h:209
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(void **, size_t *, hipModule_t, const char *)
returns device memory pointer and size of the kernel present in the module with symbol name ...
Definition: hip_module.cpp:565
Definition: hip_hcc_internal.h:370
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:413
prefer larger shared memory and smaller L1 cache
Definition: hip_runtime_api.h:247
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:1263
void ** args
Arguments.
Definition: hip_runtime_api.h:282
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:161
hipError_t hipFuncGetAttributes(struct hipFuncAttributes *attr, const void *func)
Definition: hip_module.cpp:786
Definition: hip_runtime_api.h:260
hipError_t hipIpcCloseMemHandle(void *devPtr)
Close memory mapped with hipIpcOpenMemHandle.
Definition: hip_memory.cpp:2140
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:1830
hipError_t hipPointerGetAttributes(hipPointerAttribute_t *attributes, const void *ptr)
Return attributes for the specified pointer.
Definition: hip_memory.cpp:161
size_t sharedMem
Shared memory.
Definition: hip_runtime_api.h:283
hipError_t hipProfilerStop()
Stop recording of profiling information. When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2450
hipError_t hipMemsetD32(hipDeviceptr_t dest, int value, size_t count)
Fills the memory area pointed to by dest with the constant integer value for specified number of time...
Definition: hip_memory.cpp:1846
hipError_t hipProfilerStart()
Start recording of profiling information When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2440
hipError_t hipLaunchByPtr(const void *func)
Launch a kernel.
Definition: hip_clang.cpp:205
Definition: texture_types.h:94