24 #ifndef HIP_INCLUDE_HIP_HCC_DETAIL_HIP_RUNTIME_API_H 25 #define HIP_INCLUDE_HIP_HCC_DETAIL_HIP_RUNTIME_API_H 34 #ifndef GENERIC_GRID_LAUNCH 35 #define GENERIC_GRID_LAUNCH 1 38 #ifndef __HIP_ROCclr__ 39 #define __HIP_ROCclr__ 0 43 #include <hip/hcc_detail/driver_types.h> 47 #if !__HIP_ROCclr__ && defined(__cplusplus) 49 #include <hip/hcc_detail/program_state.hpp> 53 #define DEPRECATED(msg) __declspec(deprecated(msg)) 54 #else // !defined(_MSC_VER) 55 #define DEPRECATED(msg) __attribute__ ((deprecated(msg))) 56 #endif // !defined(_MSC_VER) 58 #define DEPRECATED_MSG "This API is marked as deprecated and may not be supported in future releases. For more details please refer https://github.com/ROCm-Developer-Tools/HIP/blob/master/docs/markdown/hip_deprecated_api_list.md" 60 #if defined(__HCC__) && (__hcc_workweek__ < 16155) 61 #error("This version of HIP requires a newer version of HCC."); 64 #define HIP_LAUNCH_PARAM_BUFFER_POINTER ((void*)0x01) 65 #define HIP_LAUNCH_PARAM_BUFFER_SIZE ((void*)0x02) 66 #define HIP_LAUNCH_PARAM_END ((void*)0x03) 76 #pragma GCC visibility push (default) 82 hipError_t hip_init();
96 typedef int hipDevice_t;
100 #define hipIpcMemLazyEnablePeerAccess 0 102 #define HIP_IPC_HANDLE_SIZE 64 105 char reserved[HIP_IPC_HANDLE_SIZE];
114 char reserved[HIP_IPC_HANDLE_SIZE];
115 } hipIpcEventHandle_t;
124 size_t constSizeBytes;
125 size_t localSizeBytes;
126 int maxDynamicSharedSizeBytes;
127 int maxThreadsPerBlock;
129 int preferredShmemCarveout;
131 size_t sharedSizeBytes;
137 hipLimitMallocHeapSize = 0x02,
144 #define hipStreamDefault \ 147 #define hipStreamNonBlocking 0x01 151 #define hipEventDefault 0x0 152 #define hipEventBlockingSync \ 154 #define hipEventDisableTiming \ 156 #define hipEventInterprocess 0x4 157 #define hipEventReleaseToDevice \ 159 #define hipEventReleaseToSystem \ 168 #define hipHostMallocDefault 0x0 169 #define hipHostMallocPortable 0x1 170 #define hipHostMallocMapped \ 172 #define hipHostMallocWriteCombined 0x4 174 #define hipHostMallocCoherent \ 176 #define hipHostMallocNonCoherent \ 181 #define hipMemAttachGlobal 0x0 182 #define hipMemAttachHost 0x1 184 #define hipDeviceMallocDefault 0x0 185 #define hipDeviceMallocFinegrained 0x1 187 #define hipHostRegisterDefault 0x0 189 #define hipHostRegisterPortable 0x1 190 #define hipHostRegisterMapped \ 192 #define hipHostRegisterIoMemory 0x4 194 #define hipExtHostRegisterCoarseGrained 0x8 196 #define hipDeviceScheduleAuto 0x0 197 #define hipDeviceScheduleSpin \ 199 #define hipDeviceScheduleYield \ 202 #define hipDeviceScheduleBlockingSync 0x4 204 #define hipDeviceScheduleMask 0x7 206 #define hipDeviceMapHost 0x8 207 #define hipDeviceLmemResizeToMax 0x16 209 #define hipArrayDefault 0x00 210 #define hipArrayLayered 0x01 211 #define hipArraySurfaceLoadStore 0x02 212 #define hipArrayCubemap 0x04 213 #define hipArrayTextureGather 0x08 215 #define hipOccupancyDefault 0x00 217 #define hipCooperativeLaunchMultiDeviceNoPreSync 0x01 218 #define hipCooperativeLaunchMultiDeviceNoPostSync 0x02 225 typedef enum hipJitOption {
226 hipJitOptionMaxRegisters = 0,
227 hipJitOptionThreadsPerBlock,
228 hipJitOptionWallTime,
229 hipJitOptionInfoLogBuffer,
230 hipJitOptionInfoLogBufferSizeBytes,
231 hipJitOptionErrorLogBuffer,
232 hipJitOptionErrorLogBufferSizeBytes,
233 hipJitOptionOptimizationLevel,
234 hipJitOptionTargetFromContext,
236 hipJitOptionFallbackStrategy,
237 hipJitOptionGenerateDebugInfo,
238 hipJitOptionLogVerbose,
239 hipJitOptionGenerateLineInfo,
240 hipJitOptionCacheMode,
242 hipJitOptionFastCompile,
243 hipJitOptionNumOptions
278 __host__ __device__
dim3(uint32_t _x = 1, uint32_t _y = 1, uint32_t _z = 1) : x(_x), y(_y), z(_z){};
809 hipError_t
hipStreamWaitEvent(hipStream_t stream, hipEvent_t event,
unsigned int flags);
950 hipError_t
hipEventRecord(hipEvent_t event, hipStream_t stream = NULL);
1089 hipError_t
hipMalloc(
void** ptr,
size_t size);
1119 DEPRECATED(
"use hipHostMalloc instead")
1150 hipError_t
hipHostMalloc(
void** ptr,
size_t size,
unsigned int flags);
1161 hipError_t
hipMallocManaged(
void** devPtr,
size_t size,
unsigned int flags __dparm(0));
1177 hipError_t
hipHostAlloc(
void** ptr,
size_t size,
unsigned int flags);
1239 hipError_t
hipHostRegister(
void* hostPtr,
size_t sizeBytes,
unsigned int flags);
1270 hipError_t
hipMallocPitch(
void** ptr,
size_t* pitch,
size_t width,
size_t height);
1294 hipError_t
hipMemAllocPitch(hipDeviceptr_t* dptr,
size_t* pitch,
size_t widthInBytes,
size_t height,
unsigned int elementSizeBytes);
1309 hipError_t
hipFree(
void* ptr);
1366 hipError_t
hipMemcpy(
void* dst, const
void* src,
size_t sizeBytes, hipMemcpyKind kind);
1369 hipError_t hipMemcpyWithStream(
void* dst, const
void* src,
size_t sizeBytes,
1370 hipMemcpyKind kind, hipStream_t stream);
1388 hipError_t
hipMemcpyHtoD(hipDeviceptr_t dst,
void* src,
size_t sizeBytes);
1407 hipError_t
hipMemcpyDtoH(
void* dst, hipDeviceptr_t src,
size_t sizeBytes);
1426 hipError_t
hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src,
size_t sizeBytes);
1445 hipError_t
hipMemcpyHtoDAsync(hipDeviceptr_t dst,
void* src,
size_t sizeBytes, hipStream_t stream);
1464 hipError_t
hipMemcpyDtoHAsync(
void* dst, hipDeviceptr_t src,
size_t sizeBytes, hipStream_t stream);
1483 hipError_t
hipMemcpyDtoDAsync(hipDeviceptr_t dst, hipDeviceptr_t src,
size_t sizeBytes,
1484 hipStream_t stream);
1488 hipModule_t hmod,
const char* name);
1490 hipError_t hipGetSymbolAddress(
void** devPtr,
const void* symbol);
1491 hipError_t hipGetSymbolSize(
size_t* size,
const void* symbol);
1492 hipError_t hipMemcpyToSymbol(
const void* symbol,
const void* src,
1493 size_t sizeBytes,
size_t offset __dparm(0),
1494 hipMemcpyKind kind __dparm(hipMemcpyHostToDevice));
1495 hipError_t hipMemcpyToSymbolAsync(
const void* symbol,
const void* src,
1496 size_t sizeBytes,
size_t offset,
1497 hipMemcpyKind kind, hipStream_t stream __dparm(0));
1498 hipError_t hipMemcpyFromSymbol(
void* dst,
const void* symbol,
1499 size_t sizeBytes,
size_t offset __dparm(0),
1500 hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost));
1501 hipError_t hipMemcpyFromSymbolAsync(
void* dst,
const void* symbol,
1502 size_t sizeBytes,
size_t offset,
1504 hipStream_t stream __dparm(0));
1508 #ifdef __cplusplus //Start : Not supported in gcc 1511 __attribute__((visibility(
"hidden")))
1512 hipError_t read_agent_global_from_process(hipDeviceptr_t* dptr,
size_t* bytes,
1528 __attribute__((visibility("hidden")))
1529 hipError_t hipGetSymbolAddress(
void** devPtr, const
void* symbolName) {
1531 hip_impl::hip_init();
1533 return hip_impl::read_agent_global_from_process(devPtr, &size, (
const char*)symbolName);
1548 __attribute__((visibility(
"hidden")))
1549 hipError_t hipGetSymbolSize(
size_t* size, const
void* symbolName) {
1551 hip_impl::hip_init();
1552 void* devPtr =
nullptr;
1553 return hip_impl::read_agent_global_from_process(&devPtr, size, (
const char*)symbolName);
1555 #endif // End : Not supported in gcc 1557 #if defined(__cplusplus) 1563 hipError_t hipMemcpyToSymbol(
void*,
const void*,
size_t,
size_t, hipMemcpyKind,
1568 #if defined(__cplusplus) 1597 __attribute__((visibility(
"hidden")))
1598 hipError_t hipMemcpyToSymbol(const
void* symbolName, const
void* src,
1599 size_t sizeBytes,
size_t offset __dparm(0),
1600 hipMemcpyKind kind __dparm(hipMemcpyHostToDevice)) {
1601 if (!symbolName)
return hipErrorInvalidSymbol;
1603 hipDeviceptr_t dst = NULL;
1604 hipGetSymbolAddress(&dst, (
const char*)symbolName);
1606 return hip_impl::hipMemcpyToSymbol(dst, src, sizeBytes, offset, kind,
1607 (
const char*)symbolName);
1611 #if defined(__cplusplus) 1617 hipError_t hipMemcpyToSymbolAsync(
void*,
const void*,
size_t,
size_t,
1618 hipMemcpyKind, hipStream_t,
const char*);
1619 hipError_t hipMemcpyFromSymbol(
void*,
const void*,
size_t,
size_t,
1620 hipMemcpyKind,
const char*);
1621 hipError_t hipMemcpyFromSymbolAsync(
void*,
const void*,
size_t,
size_t,
1622 hipMemcpyKind, hipStream_t,
const char*);
1626 #if defined(__cplusplus) 1656 #ifdef __cplusplus //Start : Not supported in gcc 1658 __attribute__((visibility(
"hidden")))
1659 hipError_t hipMemcpyToSymbolAsync(const
void* symbolName, const
void* src,
1660 size_t sizeBytes,
size_t offset,
1661 hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
1662 if (!symbolName)
return hipErrorInvalidSymbol;
1664 hipDeviceptr_t dst = NULL;
1665 hipGetSymbolAddress(&dst, symbolName);
1667 return hip_impl::hipMemcpyToSymbolAsync(dst, src, sizeBytes, offset, kind,
1669 (
const char*)symbolName);
1673 __attribute__((visibility(
"hidden")))
1674 hipError_t hipMemcpyFromSymbol(
void* dst, const
void* symbolName,
1675 size_t sizeBytes,
size_t offset __dparm(0),
1676 hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost)) {
1677 if (!symbolName)
return hipErrorInvalidSymbol;
1679 hipDeviceptr_t src = NULL;
1680 hipGetSymbolAddress(&src, symbolName);
1682 return hip_impl::hipMemcpyFromSymbol(dst, src, sizeBytes, offset, kind,
1683 (
const char*)symbolName);
1687 __attribute__((visibility(
"hidden")))
1688 hipError_t hipMemcpyFromSymbolAsync(
void* dst, const
void* symbolName,
1689 size_t sizeBytes,
size_t offset,
1691 hipStream_t stream __dparm(0)) {
1692 if (!symbolName)
return hipErrorInvalidSymbol;
1694 hipDeviceptr_t src = NULL;
1695 hipGetSymbolAddress(&src, symbolName);
1697 return hip_impl::hipMemcpyFromSymbolAsync(dst, src, sizeBytes, offset, kind,
1699 (
const char*)symbolName);
1701 #endif // End : Not supported in gcc 1703 #endif // __HIP_ROCclr__ 1732 hipError_t
hipMemcpyAsync(
void* dst,
const void* src,
size_t sizeBytes, hipMemcpyKind kind,
1733 hipStream_t stream __dparm(0));
1744 hipError_t
hipMemset(
void* dst,
int value,
size_t sizeBytes);
1755 hipError_t
hipMemsetD8(hipDeviceptr_t dest,
unsigned char value,
size_t count);
1772 hipError_t
hipMemsetD8Async(hipDeviceptr_t dest,
unsigned char value,
size_t count, hipStream_t stream __dparm(0));
1783 hipError_t
hipMemsetD16(hipDeviceptr_t dest,
unsigned short value,
size_t count);
1800 hipError_t
hipMemsetD16Async(hipDeviceptr_t dest,
unsigned short value,
size_t count, hipStream_t stream __dparm(0));
1811 hipError_t
hipMemsetD32(hipDeviceptr_t dest,
int value,
size_t count);
1828 hipError_t
hipMemsetAsync(
void* dst,
int value,
size_t sizeBytes, hipStream_t stream __dparm(0));
1846 hipStream_t stream __dparm(0));
1859 hipError_t
hipMemset2D(
void* dst,
size_t pitch,
int value,
size_t width,
size_t height);
1873 hipError_t
hipMemset2DAsync(
void* dst,
size_t pitch,
int value,
size_t width,
size_t height,hipStream_t stream __dparm(0));
1908 hipError_t hipMemPtrGetInfo(
void* ptr,
size_t* size);
1924 size_t height __dparm(0),
unsigned int flags __dparm(
hipArrayDefault));
1963 struct hipExtent extent,
unsigned int flags);
1980 unsigned int numLevels,
1981 unsigned int flags __dparm(0));
1995 unsigned int level);
2013 hipError_t
hipMemcpy2D(
void* dst,
size_t dpitch,
const void* src,
size_t spitch,
size_t width,
2014 size_t height, hipMemcpyKind kind);
2056 hipError_t
hipMemcpy2DAsync(
void* dst,
size_t dpitch,
const void* src,
size_t spitch,
size_t width,
2057 size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0));
2076 size_t spitch,
size_t width,
size_t height, hipMemcpyKind kind);
2095 size_t count, hipMemcpyKind kind);
2113 size_t count, hipMemcpyKind kind);
2315 #ifndef USE_PEER_NON_UNIFIED 2316 #define USE_PEER_NON_UNIFIED 1 2319 #if USE_PEER_NON_UNIFIED == 1 2331 hipError_t
hipMemcpyPeer(
void* dst,
int dstDeviceId,
const void* src,
int srcDeviceId,
2346 hipError_t
hipMemcpyPeerAsync(
void* dst,
int dstDeviceId,
const void* src,
int srcDevice,
2347 size_t sizeBytes, hipStream_t stream __dparm(0));
2371 hipError_t
hipInit(
unsigned int flags);
2393 DEPRECATED(DEPRECATED_MSG)
2394 hipError_t
hipCtxCreate(hipCtx_t* ctx,
unsigned int flags, hipDevice_t device);
2406 DEPRECATED(DEPRECATED_MSG)
2419 DEPRECATED(DEPRECATED_MSG)
2432 DEPRECATED(DEPRECATED_MSG)
2445 DEPRECATED(DEPRECATED_MSG)
2458 DEPRECATED(DEPRECATED_MSG)
2472 DEPRECATED(DEPRECATED_MSG)
2492 DEPRECATED(DEPRECATED_MSG)
2508 DEPRECATED(DEPRECATED_MSG)
2524 DEPRECATED(DEPRECATED_MSG)
2540 DEPRECATED(DEPRECATED_MSG)
2556 DEPRECATED(DEPRECATED_MSG)
2570 DEPRECATED(DEPRECATED_MSG)
2583 DEPRECATED(DEPRECATED_MSG)
2605 DEPRECATED(DEPRECATED_MSG)
2624 DEPRECATED(DEPRECATED_MSG)
2705 hipError_t
hipDeviceGet(hipDevice_t* device,
int ordinal);
2799 hipError_t
hipModuleLoad(hipModule_t* module, const
char* fname);
2823 hipError_t
hipModuleGetFunction(hipFunction_t* function, hipModule_t module, const
char* kname);
2845 hipError_t
hipFuncGetAttribute(
int* value, hipFunction_attribute attrib, hipFunction_t hfunc);
2848 #if defined(__cplusplus) 2854 class agent_globals_impl;
2855 class agent_globals {
2859 agent_globals(
const agent_globals&) =
delete;
2861 hipError_t read_agent_global_from_module(hipDeviceptr_t* dptr,
size_t* bytes,
2862 hipModule_t hmod,
const char* name);
2863 hipError_t read_agent_global_from_process(hipDeviceptr_t* dptr,
size_t* bytes,
2866 agent_globals_impl* impl;
2870 __attribute__((visibility(
"hidden")))
2871 agent_globals& get_agent_globals() {
2872 static agent_globals ag;
2878 __attribute__((visibility(
"hidden")))
2879 hipError_t read_agent_global_from_process(hipDeviceptr_t* dptr,
size_t* bytes,
2881 return get_agent_globals().read_agent_global_from_process(dptr, bytes, name);
2886 #if defined(__cplusplus) 2901 hipModule_t hmod,
const char* name);
2902 #endif // __HIP_ROCclr__ 2904 hipError_t hipModuleGetTexRef(
textureReference** texRef, hipModule_t hmod,
const char* name);
2929 hipError_t
hipModuleLoadDataEx(hipModule_t* module,
const void* image,
unsigned int numOptions,
2930 hipJitOption* options,
void** optionValues);
2957 unsigned int gridDimZ,
unsigned int blockDimX,
2958 unsigned int blockDimY,
unsigned int blockDimZ,
2959 unsigned int sharedMemBytes, hipStream_t stream,
2960 void** kernelParams,
void** extra);
2963 #if __HIP_ROCclr__ && !defined(__HCC__) 2979 hipError_t hipLaunchCooperativeKernel(
const void* f,
dim3 gridDim,
dim3 blockDimX,
2980 void** kernelParams,
unsigned int sharedMemBytes,
2981 hipStream_t stream);
2993 hipError_t hipLaunchCooperativeKernelMultiDevice(
hipLaunchParams* launchParamsList,
2994 int numDevices,
unsigned int flags);
3012 hipFunction_t f,
size_t dynSharedMemPerBlk,
3013 int blockSizeLimit);
3029 hipFunction_t f,
size_t dynSharedMemPerBlk,
3030 int blockSizeLimit,
unsigned int flags);
3041 int* numBlocks, hipFunction_t f,
int blockSize,
size_t dynSharedMemPerBlk);
3053 int* numBlocks, hipFunction_t f,
int blockSize,
size_t dynSharedMemPerBlk,
unsigned int flags);
3064 int* numBlocks,
const void* f,
int blockSize,
size_t dynSharedMemPerBlk);
3076 int* numBlocks,
const void* f,
int blockSize,
size_t dynSharedMemPerBlk,
unsigned int flags __dparm(hipOccupancyDefault));
3090 const void* f,
size_t dynSharedMemPerBlk,
3091 int blockSizeLimit);
3105 int numDevices,
unsigned int flags);
3132 DEPRECATED(
"use roctracer/rocTX instead")
3141 DEPRECATED("use roctracer/rocTX instead")
3237 hipError_t hipIpcGetEventHandle(hipIpcEventHandle_t* handle, hipEvent_t event);
3238 hipError_t hipIpcOpenEventHandle(hipEvent_t* event, hipIpcEventHandle_t handle);
3261 hipError_t
hipConfigureCall(
dim3 gridDim,
dim3 blockDim,
size_t sharedMem __dparm(0), hipStream_t stream __dparm(0));
3304 size_t sharedMem __dparm(0),
3305 hipStream_t stream __dparm(0));
3323 hipStream_t *stream);
3345 size_t sharedMemBytes __dparm(0),
3346 hipStream_t stream __dparm(0));
3349 hipError_t hipBindTexture(
3354 size_t size __dparm(UINT_MAX));
3356 hipError_t hipBindTexture2D(
3365 hipError_t hipBindTextureToArray(
3370 hipError_t hipBindTextureToMipmappedArray(
3375 hipError_t hipGetTextureAlignmentOffset(
3379 hipError_t hipGetTextureReference(
3381 const void* symbol);
3385 hipError_t hipCreateTextureObject(
3386 hipTextureObject_t* pTexObject,
3391 hipError_t hipDestroyTextureObject(hipTextureObject_t textureObject);
3393 hipError_t hipGetChannelDesc(
3397 hipError_t hipGetTextureObjectResourceDesc(
3399 hipTextureObject_t textureObject);
3401 hipError_t hipGetTextureObjectResourceViewDesc(
3403 hipTextureObject_t textureObject);
3405 hipError_t hipGetTextureObjectTextureDesc(
3407 hipTextureObject_t textureObject);
3409 hipError_t hipTexRefGetAddress(
3410 hipDeviceptr_t* dev_ptr,
3413 hipError_t hipTexRefGetAddressMode(
3414 enum hipTextureAddressMode* pam,
3418 hipError_t hipTexRefGetFilterMode(
3419 enum hipTextureFilterMode* pfm,
3422 hipError_t hipTexRefGetFlags(
3423 unsigned int* pFlags,
3426 hipError_t hipTexRefGetFormat(
3427 hipArray_Format* pFormat,
3431 hipError_t hipTexRefGetMaxAnisotropy(
3435 hipError_t hipTexRefGetMipmapFilterMode(
3436 enum hipTextureFilterMode* pfm,
3439 hipError_t hipTexRefGetMipmapLevelBias(
3443 hipError_t hipTexRefGetMipmapLevelClamp(
3444 float* pminMipmapLevelClamp,
3445 float* pmaxMipmapLevelClamp,
3448 hipError_t hipTexRefGetMipMappedArray(
3452 hipError_t hipTexRefSetAddress(
3455 hipDeviceptr_t dptr,
3458 hipError_t hipTexRefSetAddress2D(
3461 hipDeviceptr_t dptr,
3464 hipError_t hipTexRefSetAddressMode(
3467 enum hipTextureAddressMode am);
3469 hipError_t hipTexRefSetArray(
3472 unsigned int flags);
3474 hipError_t hipTexRefSetBorderColor(
3476 float* pBorderColor);
3478 hipError_t hipTexRefSetFilterMode(
3480 enum hipTextureFilterMode fm);
3482 hipError_t hipTexRefSetFlags(
3484 unsigned int Flags);
3486 hipError_t hipTexRefSetFormat(
3488 hipArray_Format fmt,
3489 int NumPackedComponents);
3491 hipError_t hipTexRefSetMaxAnisotropy(
3493 unsigned int maxAniso);
3495 hipError_t hipTexRefSetMipmapFilterMode(
3497 enum hipTextureFilterMode fm);
3499 hipError_t hipTexRefSetMipmapLevelBias(
3503 hipError_t hipTexRefSetMipmapLevelClamp(
3505 float minMipMapLevelClamp,
3506 float maxMipMapLevelClamp);
3508 hipError_t hipTexRefSetMipmappedArray(
3511 unsigned int Flags);
3513 hipError_t hipMipmappedArrayCreate(
3516 unsigned int numMipmapLevels);
3518 hipError_t hipMipmappedArrayDestroy(
3521 hipError_t hipMipmappedArrayGetLevel(
3524 unsigned int level);
3526 hipError_t hipTexObjectCreate(
3527 hipTextureObject_t* pTexObject,
3532 hipError_t hipTexObjectDestroy(
3533 hipTextureObject_t texObject);
3535 hipError_t hipTexObjectGetResourceDesc(
3537 hipTextureObject_t texObject);
3539 hipError_t hipTexObjectGetResourceViewDesc(
3541 hipTextureObject_t texObject);
3543 hipError_t hipTexObjectGetTextureDesc(
3545 hipTextureObject_t texObject);
3557 #if defined(__cplusplus) && !defined(__HCC__) && defined(__clang__) && defined(__HIP__) 3558 template <
typename T>
3560 T f,
size_t dynSharedMemPerBlk = 0,
int blockSizeLimit = 0) {
3564 template <
typename T>
3565 static hipError_t
__host__ inline hipOccupancyMaxPotentialBlockSizeWithFlags(
int* gridSize,
int* blockSize,
3566 T f,
size_t dynSharedMemPerBlk = 0,
int blockSizeLimit = 0,
unsigned int flags = 0 ) {
3569 #endif // defined(__cplusplus) && !defined(__HCC__) && defined(__clang__) && defined(__HIP__) 3571 #if defined(__cplusplus) && !defined(__HCC__) 3573 template <
typename T>
3574 hipError_t hipGetSymbolAddress(
void** devPtr,
const T &symbol) {
3575 return ::hipGetSymbolAddress(devPtr, (
const void *)&symbol);
3578 template <
typename T>
3579 hipError_t hipGetSymbolSize(
size_t* size,
const T &symbol) {
3580 return ::hipGetSymbolSize(size, (
const void *)&symbol);
3583 template <
typename T>
3584 hipError_t hipMemcpyToSymbol(
const T& symbol,
const void* src,
size_t sizeBytes,
3585 size_t offset __dparm(0),
3586 hipMemcpyKind kind __dparm(hipMemcpyHostToDevice)) {
3587 return ::hipMemcpyToSymbol((
const void*)&symbol, src, sizeBytes, offset, kind);
3590 template <
typename T>
3591 hipError_t hipMemcpyToSymbolAsync(
const T& symbol,
const void* src,
size_t sizeBytes,
size_t offset,
3592 hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
3593 return ::hipMemcpyToSymbolAsync((
const void*)&symbol, src, sizeBytes, offset, kind, stream);
3596 template <
typename T>
3597 hipError_t hipMemcpyFromSymbol(
void* dst,
const T &symbol,
3598 size_t sizeBytes,
size_t offset __dparm(0),
3599 hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost)) {
3600 return ::hipMemcpyFromSymbol(dst, (
const void*)&symbol, sizeBytes, offset, kind);
3603 template <
typename T>
3604 hipError_t hipMemcpyFromSymbolAsync(
void* dst,
const T& symbol,
size_t sizeBytes,
size_t offset,
3605 hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
3606 return ::hipMemcpyFromSymbolAsync(dst, (
const void*)&symbol, sizeBytes, offset, kind, stream);
3612 #include <hip/hcc_detail/hip_prof_str.h> 3622 hipError_t hipRemoveApiCallback(uint32_t
id);
3623 hipError_t hipRegisterActivityCallback(uint32_t
id,
void* fun,
void* arg);
3624 hipError_t hipRemoveActivityCallback(uint32_t
id);
3625 const char* hipApiName(uint32_t
id);
3626 const char* hipKernelNameRef(
const hipFunction_t f);
3627 const char* hipKernelNameRefByPtr(
const void* hostFunction, hipStream_t stream);
3636 int* numBlocks, T f,
int blockSize,
size_t dynSharedMemPerBlk) {
3638 numBlocks, reinterpret_cast<const void*>(f), blockSize, dynSharedMemPerBlk);
3643 int* numBlocks, T f,
int blockSize,
size_t dynSharedMemPerBlk,
unsigned int flags) {
3645 numBlocks, reinterpret_cast<const void*>(f), blockSize, dynSharedMemPerBlk, flags);
3651 hipError_t hipBindTexture(
size_t* offset,
textureReference* tex,
const void* devPtr,
3656 hipError_t ihipBindTextureImpl(
TlsData *tls,
int dim,
enum hipTextureReadMode readMode,
size_t* offset,
3677 template <
class T,
int dim, enum hipTextureReadMode readMode>
3678 hipError_t hipBindTexture(
size_t* offset,
struct texture<T, dim, readMode>& tex,
const void* devPtr,
3680 return ihipBindTextureImpl(
nullptr, dim, readMode, offset, devPtr, &desc, size, &tex);
3699 template <
class T,
int dim, enum hipTextureReadMode readMode>
3700 hipError_t hipBindTexture(
size_t* offset,
struct texture<T, dim, readMode>& tex,
const void* devPtr,
3701 size_t size = UINT_MAX) {
3702 return ihipBindTextureImpl(
nullptr, dim, readMode, offset, devPtr, &(tex.channelDesc), size, &tex);
3708 hipError_t hipBindTexture2D(
size_t* offset,
textureReference* tex,
const void* devPtr,
3714 hipError_t ihipBindTexture2DImpl(
int dim,
enum hipTextureReadMode readMode,
size_t* offset,
3720 template <
class T,
int dim, enum hipTextureReadMode readMode>
3721 hipError_t hipBindTexture2D(
size_t* offset,
struct texture<T, dim, readMode>& tex,
3722 const void* devPtr,
size_t width,
size_t height,
size_t pitch) {
3723 return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &(tex.channelDesc), width, height,
3729 template <
class T,
int dim, enum hipTextureReadMode readMode>
3730 hipError_t hipBindTexture2D(
size_t* offset,
struct texture<T, dim, readMode>& tex,
3732 size_t width,
size_t height,
size_t pitch) {
3733 return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &desc, width, height, &tex);
3744 hipError_t ihipBindTextureToArrayImpl(
TlsData *tls,
int dim,
enum hipTextureReadMode readMode,
3751 template <
class T,
int dim, enum hipTextureReadMode readMode>
3752 hipError_t hipBindTextureToArray(
struct texture<T, dim, readMode>& tex,
hipArray_const_t array) {
3753 return ihipBindTextureToArrayImpl(
nullptr, dim, readMode, array, tex.channelDesc, &tex);
3758 template <
class T,
int dim, enum hipTextureReadMode readMode>
3759 hipError_t hipBindTextureToArray(
struct texture<T, dim, readMode>& tex,
hipArray_const_t array,
3761 return ihipBindTextureToArrayImpl(
nullptr, dim, readMode, array, desc, &tex);
3766 template <
class T,
int dim, enum hipTextureReadMode readMode>
3767 inline static hipError_t hipBindTextureToArray(
struct texture<T, dim, readMode> *tex,
3770 return ihipBindTextureToArrayImpl(
nullptr, dim, readMode, array, *desc, tex);
3782 template <
class T,
int dim, enum hipTextureReadMode readMode>
3783 hipError_t hipBindTextureToMipmappedArray(
const texture<T, dim, readMode>& tex,
3790 template <
class T,
int dim, enum hipTextureReadMode readMode>
3791 hipError_t hipBindTextureToMipmappedArray(
const texture<T, dim, readMode>& tex,
3798 #if __HIP_ROCclr__ && !defined(__HCC__) 3800 template <
typename F>
3802 F kernel,
size_t dynSharedMemPerBlk, uint32_t blockSizeLimit) {
3807 inline hipError_t hipLaunchCooperativeKernel(T f,
dim3 gridDim,
dim3 blockDim,
3808 void** kernelParams,
unsigned int sharedMemBytes, hipStream_t stream) {
3809 return hipLaunchCooperativeKernel(reinterpret_cast<const void*>(f), gridDim,
3810 blockDim, kernelParams, sharedMemBytes, stream);
3814 inline hipError_t hipLaunchCooperativeKernelMultiDevice(
hipLaunchParams* launchParamsList,
3815 unsigned int numDevices,
unsigned int flags = 0) {
3816 return hipLaunchCooperativeKernelMultiDevice(launchParamsList, numDevices, flags);
3822 unsigned int numDevices,
unsigned int flags = 0) {
3840 extern hipError_t ihipUnbindTextureImpl(
const hipTextureObject_t& textureObject);
3844 template <
class T,
int dim, enum hipTextureReadMode readMode>
3845 hipError_t hipUnbindTexture(
struct texture<T, dim, readMode>& tex) {
3846 return ihipUnbindTextureImpl(tex.textureObject);
3852 hipError_t hipGetTextureAlignmentOffset(
size_t* offset,
const textureReference* texref);
3853 hipError_t hipGetTextureReference(
const textureReference** texref,
const void* symbol);
3855 hipError_t hipCreateTextureObject(hipTextureObject_t* pTexObject,
const hipResourceDesc* pResDesc,
3859 hipError_t hipDestroyTextureObject(hipTextureObject_t textureObject);
3862 hipTextureObject_t textureObject);
3864 hipTextureObject_t textureObject);
3865 hipError_t hipGetTextureObjectTextureDesc(
hipTextureDesc* pTexDesc,
3866 hipTextureObject_t textureObject);
3871 hipError_t hipTexRefSetAddressMode(
textureReference* tex,
int dim, hipTextureAddressMode am);
3873 hipError_t hipTexRefGetAddressMode(hipTextureAddressMode* am,
textureReference tex,
int dim);
3875 hipError_t hipTexRefSetFilterMode(
textureReference* tex, hipTextureFilterMode fm);
3879 hipError_t hipTexRefSetFormat(
textureReference* tex, hipArray_Format fmt,
int NumPackedComponents);
3881 hipError_t hipTexRefSetAddress(
size_t* offset,
textureReference* tex, hipDeviceptr_t devPtr,
3884 hipError_t hipTexRefGetAddress(hipDeviceptr_t* dev_ptr,
textureReference tex);
3887 hipDeviceptr_t devPtr,
size_t pitch);
3895 template<
class T,
int dim, enum hipTextureReadMode readMode>
3896 static inline hipError_t hipBindTexture(
3898 const struct texture<T, dim, readMode> &tex,
3900 size_t size = UINT_MAX)
3902 return hipBindTexture(offset, &tex, devPtr, &tex.channelDesc, size);
3905 template<
class T,
int dim, enum hipTextureReadMode readMode>
3906 static inline hipError_t hipBindTexture(
3908 const struct texture<T, dim, readMode> &tex,
3911 size_t size = UINT_MAX)
3913 return hipBindTexture(offset, &tex, devPtr, &desc, size);
3916 template<
class T,
int dim, enum hipTextureReadMode readMode>
3917 static inline hipError_t hipBindTexture2D(
3919 const struct texture<T, dim, readMode> &tex,
3925 return hipBindTexture2D(offset, &tex, devPtr, &tex.channelDesc, width, height, pitch);
3928 template<
class T,
int dim, enum hipTextureReadMode readMode>
3929 static inline hipError_t hipBindTexture2D(
3931 const struct texture<T, dim, readMode> &tex,
3938 return hipBindTexture2D(offset, &tex, devPtr, &desc, width, height, pitch);
3941 template<
class T,
int dim, enum hipTextureReadMode readMode>
3942 static inline hipError_t hipBindTextureToArray(
3943 const struct texture<T, dim, readMode> &tex,
3947 hipError_t err = hipGetChannelDesc(&desc, array);
3948 return (err == hipSuccess) ? hipBindTextureToArray(&tex, array, &desc) : err;
3951 template<
class T,
int dim, enum hipTextureReadMode readMode>
3952 static inline hipError_t hipBindTextureToArray(
3953 const struct texture<T, dim, readMode> &tex,
3957 return hipBindTextureToArray(&tex, array, &desc);
3960 template<
class T,
int dim, enum hipTextureReadMode readMode>
3961 static inline hipError_t hipBindTextureToMipmappedArray(
3962 const struct texture<T, dim, readMode> &tex,
3968 if (err != hipSuccess) {
3971 err = hipGetChannelDesc(&desc, levelArray);
3972 return (err == hipSuccess) ? hipBindTextureToMipmappedArray(&tex, mipmappedArray, &desc) : err;
3975 template<
class T,
int dim, enum hipTextureReadMode readMode>
3976 static inline hipError_t hipBindTextureToMipmappedArray(
3977 const struct texture<T, dim, readMode> &tex,
3981 return hipBindTextureToMipmappedArray(&tex, mipmappedArray, &desc);
3984 template<
class T,
int dim, enum hipTextureReadMode readMode>
3985 static inline hipError_t hipUnbindTexture(
3986 const struct texture<T, dim, readMode> &tex)
3988 return hipUnbindTexture(&tex);
4001 #pragma GCC visibility pop hipError_t hipMemcpy2DFromArrayAsync(void *dst, size_t dpitch, hipArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data between host and device asynchronously.
hipError_t hipHostFree(void *ptr)
Free memory allocated by the hcc hip host memory allocation API This API performs an implicit hipDevi...
Definition: hip_memory.cpp:2396
hipError_t hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags)
Returns occupancy for a device function.
Definition: hip_module.cpp:1698
Definition: driver_types.h:337
prefer larger L1 cache and smaller shared memory
Definition: hip_runtime_api.h:253
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:1309
hipError_t hipCtxDisablePeerAccess(hipCtx_t peerCtx)
Disable direct access from current context's virtual address space to memory allocations physically l...
Definition: hip_peer.cpp:227
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:2286
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:82
hipError_t hipDriverGetVersion(int *driverVersion)
Returns the approximate HIP driver version.
Definition: hip_context.cpp:85
hipError_t hipLaunchKernel(const void *function_address, dim3 numBlocks, dim3 dimBlocks, void **args, size_t sharedMemBytes __dparm(0), hipStream_t stream __dparm(0))
C compliant kernel launch API.
Definition: hip_runtime_api.h:282
hipError_t hipPeekAtLastError(void)
Return last error returned by any HIP runtime API call.
Definition: hip_error.cpp:41
hipError_t hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *f, int blockSize, size_t dynSharedMemPerBlk, unsigned int flags __dparm(hipOccupancyDefault))
Returns occupancy for a device function.
Definition: hip_hcc_internal.h:408
hipError_t hipMemcpyParam2D(const hip_Memcpy2D *pCopy)
Copies memory for 2D arrays.
Definition: hip_memory.cpp:2144
hipError_t hipDevicePrimaryCtxSetFlags(hipDevice_t dev, unsigned int flags)
Set flags for the primary context.
Definition: hip_context.cpp:321
hipError_t hipDevicePrimaryCtxRetain(hipCtx_t *pctx, hipDevice_t dev)
Retain the primary context on the GPU.
Definition: hip_context.cpp:296
hipError_t hipDeviceComputeCapability(int *major, int *minor, hipDevice_t device)
Returns the compute capability of the device.
Definition: hip_device.cpp:434
hipError_t hipDeviceGetByPCIBusId(int *device, const char *pciBusId)
Returns a handle to a compute device.
Definition: hip_device.cpp:492
Definition: hip_runtime_api.h:113
hipError_t hipExtMallocWithFlags(void **ptr, size_t sizeBytes, unsigned int flags)
Allocate memory on the default accelerator.
Definition: hip_memory.cpp:723
hipError_t hipMemGetAddressRange(hipDeviceptr_t *pbase, size_t *psize, hipDeviceptr_t dptr)
Get information on memory allocations.
Definition: hip_memory.cpp:2437
hipError_t hipMemsetD16Async(hipDeviceptr_t dest, unsigned short value, size_t count, hipStream_t stream __dparm(0))
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant short value v...
hipError_t hipModuleOccupancyMaxPotentialBlockSizeWithFlags(int *gridSize, int *blockSize, hipFunction_t f, size_t dynSharedMemPerBlk, int blockSizeLimit, unsigned int flags)
determine the grid and block sizes to achieves maximum occupancy for a kernel
Definition: hip_module.cpp:1656
hipError_t hipFreeHost(void *ptr)
Free memory allocated by the hcc hip host memory allocation API. [Deprecated].
Definition: hip_memory.cpp:2407
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:1494
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:1511
Definition: driver_types.h:370
hipError_t hipMallocPitch(void **ptr, size_t *pitch, size_t width, size_t height)
Definition: hip_memory.cpp:851
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 hipMemsetD16(hipDeviceptr_t dest, unsigned short value, size_t count)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant short value v...
Definition: hip_memory.cpp:2271
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:2020
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:1511
uint32_t x
x
Definition: hip_runtime_api.h:274
hipError_t hipMemcpyAtoH(void *dst, hipArray *srcArray, size_t srcOffset, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1544
hipError_t hipDrvMemcpy3D(const HIP_MEMCPY3D *pCopy)
Copies data between host and device.
hipError_t hipFreeMipmappedArray(hipMipmappedArray_t mipmappedArray)
Frees a mipmapped array on the device.
hipError_t hipDeviceEnablePeerAccess(int peerDeviceId, unsigned int flags)
Enable direct access from current device's virtual address space to memory allocations physically loc...
Definition: hip_peer.cpp:200
hipError_t hipCtxPopCurrent(hipCtx_t *ctx)
Pop the current/default context and return the popped context.
Definition: hip_context.cpp:133
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:124
Definition: hip_runtime_api.h:159
hipError_t hipDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority)
Returns numerical values that correspond to the least and greatest stream priority.
Definition: hip_stream.cpp:122
hipError_t hipGetMipmappedArrayLevel(hipArray_t *levelArray, hipMipmappedArray_const_t mipmappedArray, unsigned int level)
Gets a mipmap level of a HIP mipmapped array.
prefer equal size L1 cache and shared memory
Definition: hip_runtime_api.h:254
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:2409
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:300
Definition: driver_types.h:262
hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void *src, size_t sizeBytes)
Copy data from Host to Device.
Definition: hip_memory.cpp:1374
hipError_t hipModuleUnload(hipModule_t module)
Frees the module.
Definition: hip_module.cpp:1244
Definition: hip_module.cpp:108
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:394
hipError_t hipDeviceDisablePeerAccess(int peerDeviceId)
Disable direct access from current device's virtual address space to memory allocations physically lo...
Definition: hip_peer.cpp:193
hipError_t hipCtxGetSharedMemConfig(hipSharedMemConfig *pConfig)
Get Shared memory bank configuration.
Definition: hip_context.cpp:241
hipError_t hipMemcpy2DFromArray(void *dst, size_t dpitch, hipArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind)
Copies data between host and device.
Definition: hip_memory.cpp:2154
Definition: hip_hcc_internal.h:185
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:52
#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:233
hipError_t hipCtxSetCurrent(hipCtx_t ctx)
Set the passed context as current/default.
Definition: hip_context.cpp:178
hipError_t __hipPopCallConfiguration(dim3 *gridDim, dim3 *blockDim, size_t *sharedMem, hipStream_t *stream)
Pop configuration of a kernel launch.
Definition: hip_clang.cpp:409
hipError_t hipIpcGetMemHandle(hipIpcMemHandle_t *handle, void *devPtr)
Gets an interprocess memory handle for an existing device memory allocation.
Definition: hip_memory.cpp:2458
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:116
hipError_t hipHostMalloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory.
Definition: hip_memory.cpp:762
Definition: hip_hcc_internal.h:938
Definition: texture_types.h:74
hipError_t hipDeviceGetLimit(size_t *pValue, enum hipLimit_t limit)
Get Resource limits of current device.
Definition: hip_device.cpp:94
Definition: driver_types.h:287
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:1492
Definition: driver_types.h:78
hipDeviceAttribute_t
Definition: hip_runtime_api.h:287
hipError_t hipEventDestroy(hipEvent_t event)
Destroy the specified event.
Definition: hip_event.cpp:278
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:518
hipError_t hipCtxSetCacheConfig(hipFuncCache_t cacheConfig)
Set L1/Shared cache partition.
Definition: hip_context.cpp:225
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:273
uint32_t y
y
Definition: hip_runtime_api.h:275
void(* hipStreamCallback_t)(hipStream_t stream, hipError_t status, void *userData)
Definition: hip_runtime_api.h:847
hipError_t hipModuleLoad(hipModule_t *module, const char *fname)
Loads code object from file into a hipModule_t.
Definition: hip_module.cpp:1497
hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev)
Resets the primary context on the GPU.
Definition: hip_context.cpp:308
hipError_t hipEventCreateWithFlags(hipEvent_t *event, unsigned flags)
Create an event with the specified flags.
Definition: hip_event.cpp:201
#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:794
hipError_t hipMallocHost(void **ptr, size_t size)
Allocate pinned host memory [Deprecated].
Definition: hip_memory.cpp:788
hipError_t hipEventElapsedTime(float *ms, hipEvent_t start, hipEvent_t stop)
Return the elapsed time between two events.
Definition: hip_event.cpp:344
hipError_t hipDeviceSetCacheConfig(hipFuncCache_t cacheConfig)
Set L1/Shared cache partition.
Definition: hip_device.cpp:74
hipError_t hipDeviceCanAccessPeer(int *canAccessPeer, int deviceId, int peerDeviceId)
Determine if a device can access a peer's memory.
Definition: hip_peer.cpp:186
hipError_t hipGetDeviceCount(int *count)
Return number of compute-capable devices.
Definition: hip_device.cpp:69
Definition: driver_types.h:69
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:2220
Definition: driver_types.h:383
hipError_t hipFuncGetAttribute(int *value, hipFunction_attribute attrib, hipFunction_t hfunc)
Find out a specific attribute for a given function.
Definition: hip_module.cpp:1411
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:1133
hipError_t hipStreamSynchronize(hipStream_t stream)
Wait for all commands in stream to complete.
Definition: hip_stream.cpp:184
Definition: driver_types.h:166
hipError_t hipMemAllocPitch(hipDeviceptr_t *dptr, size_t *pitch, size_t widthInBytes, size_t height, unsigned int elementSizeBytes)
Definition: hip_memory.cpp:862
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:2494
hipError_t hipCtxGetCacheConfig(hipFuncCache_t *cacheConfig)
Set Cache configuration for a specific function.
Definition: hip_context.cpp:217
hipError_t hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Device.
Definition: hip_memory.cpp:1390
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:263
dim3 gridDim
Grid dimentions.
Definition: hip_runtime_api.h:284
no preference for shared memory or L1 (default)
Definition: hip_runtime_api.h:251
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:249
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:167
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:1091
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:1437
hipError_t hipMallocMipmappedArray(hipMipmappedArray_t *mipmappedArray, const struct hipChannelFormatDesc *desc, struct hipExtent extent, unsigned int numLevels, unsigned int flags __dparm(0))
Allocate a mipmapped array on the device.
void * func
Device function symbol.
Definition: hip_runtime_api.h:283
hipError_t hipDeviceSynchronize(void)
Waits on all active streams on current device.
Definition: hip_device.cpp:143
hipError_t hipCtxPushCurrent(hipCtx_t ctx)
Push the context to be set as current/ default context.
Definition: hip_context.cpp:154
hipError_t hipMemcpyDtoH(void *dst, hipDeviceptr_t src, size_t sizeBytes)
Copy data from Device to Host.
Definition: hip_memory.cpp:1382
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))
Copies sizeBytes bytes from the memory area pointed to by src to the memory area pointed to by offset...
hipError_t hipDeviceGetName(char *name, int len, hipDevice_t device)
Returns an identifer string for the device.
Definition: hip_device.cpp:446
hipError_t hipGetDeviceProperties(hipDeviceProp_t *prop, int deviceId)
Returns device properties.
Definition: hip_device.cpp:381
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:1158
Definition: driver_types.h:62
hipError_t hipMalloc(void **ptr, size_t size)
Allocate memory on the default accelerator.
Definition: hip_memory.cpp:695
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:2251
Definition: driver_types.h:363
dim3 blockDim
Block dimentions.
Definition: hip_runtime_api.h:285
hipFuncCache_t
Definition: hip_runtime_api.h:250
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 hipOccupancyMaxPotentialBlockSize(int *gridSize, int *blockSize, const void *f, size_t dynSharedMemPerBlk, int blockSizeLimit)
determine the grid and block sizes to achieves maximum occupancy for a kernel
hipError_t 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:288
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:2296
hipError_t __hipPushCallConfiguration(dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0))
Push configuration of a kernel launch.
hipError_t hipCtxGetDevice(hipDevice_t *device)
Get the handle of the device associated with current/default context.
Definition: hip_context.cpp:191
hipError_t hipDevicePrimaryCtxRelease(hipDevice_t dev)
Release the primary context on the GPU.
Definition: hip_context.cpp:285
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:2344
uint32_t z
z
Definition: hip_runtime_api.h:276
hipError_t hipCtxGetApiVersion(hipCtx_t ctx, int *apiVersion)
Returns the approximate HIP api version.
Definition: hip_context.cpp:207
hipError_t hipDeviceReset(void)
The state of current device is discarded and updated to a fresh state.
Definition: hip_device.cpp:148
hipError_t hipInit(unsigned int flags)
Explicitly initializes the HIP runtime.
Definition: hip_context.cpp:39
hipError_t hipMemcpy3D(const struct hipMemcpy3DParms *p)
Copies data between host and device.
Definition: hip_memory.cpp:1712
hipError_t hipRuntimeGetVersion(int *runtimeVersion)
Returns the approximate HIP Runtime version.
Definition: hip_context.cpp:97
hipError_t hipMemcpyHtoA(hipArray *dstArray, size_t dstOffset, const void *srcHost, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1528
hipError_t hipSetupArgument(const void *arg, size_t size, size_t offset)
Set a kernel argument.
Definition: hip_clang.cpp:467
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:1429
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:132
hipError_t hipDeviceGet(hipDevice_t *device, int ordinal)
Returns a handle to a compute device.
Definition: hip_context.cpp:70
hipError_t hipDeviceTotalMem(size_t *bytes, hipDevice_t device)
Returns the total amount of memory on the device.
Definition: hip_device.cpp:480
hipError_t hipMemAllocHost(void **ptr, size_t size)
Allocate pinned host memory [Deprecated].
Definition: hip_memory.cpp:791
hipError_t hipDrvMemcpy3DAsync(const HIP_MEMCPY3D *pCopy, hipStream_t stream)
Copies data between host and device asynchronously.
hipError_t hipFuncSetCacheConfig(const void *func, hipFuncCache_t config)
Set Cache configuration for a specific function.
Definition: hip_device.cpp:108
The compiler selects a device-specific value for the banking.
Definition: hip_runtime_api.h:262
Definition: hip_runtime.h:210
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:254
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:605
hipError_t hipCtxDestroy(hipCtx_t ctx)
Destroy a HIP context.
Definition: hip_context.cpp:109
hipError_t hipRegisterApiCallback(uint32_t id, void *fun, void *arg)
Definition: hip_intercept.cpp:33
hipSharedMemConfig
Definition: hip_runtime_api.h:261
Definition: hip_hcc_internal.h:759
hipError_t hipExtLaunchMultiKernelMultiDevice(hipLaunchParams *launchParamsList, int numDevices, unsigned int flags)
Launches kernels on multiple devices and guarantees all specified kernels are dispatched on respectiv...
hipError_t hipDeviceGetAttribute(int *pi, hipDeviceAttribute_t attr, int deviceId)
Query for a specific device attribute.
Definition: hip_device.cpp:354
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:1422
hipError_t hipHostUnregister(void *hostPtr)
Un-register host pointer.
Definition: hip_memory.cpp:1233
Definition: hip_hcc_internal.h:580
hipError_t hipMemsetD8Async(hipDeviceptr_t dest, unsigned char value, size_t count, hipStream_t stream __dparm(0))
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
hipError_t 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:207
hipError_t hipStreamCreate(hipStream_t *stream)
Create an asynchronous stream.
Definition: hip_stream.cpp:106
hipError_t hipMemcpy3DAsync(const struct hipMemcpy3DParms *p, hipStream_t stream __dparm(0))
Copies data between host and device asynchronously.
hipError_t hipMemcpy(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind)
Copy data from src to dst.
Definition: hip_memory.cpp:1367
hipError_t hipEventCreate(hipEvent_t *event)
Definition: hip_event.cpp:207
Definition: driver_types.h:394
Definition: driver_types.h:91
Definition: hip_runtime_api.h:104
hipError_t hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int *flags, int *active)
Get the state of the primary context.
Definition: hip_context.cpp:263
hipError_t hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags)
Enables direct access to memory allocations in a peer context.
Definition: hip_peer.cpp:221
Definition: driver_types.h:323
hipError_t hipDeviceSetSharedMemConfig(hipSharedMemConfig config)
The bank width of shared memory on current device is set.
Definition: hip_device.cpp:116
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:213
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:1113
Definition: hip_hcc_internal.h:415
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:460
prefer larger shared memory and smaller L1 cache
Definition: hip_runtime_api.h:252
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:1444
void ** args
Arguments.
Definition: hip_runtime_api.h:286
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)
Find out attributes for a given function.
Definition: hip_module.cpp:1393
hipError_t hipOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *f, int blockSize, size_t dynSharedMemPerBlk)
Returns occupancy for a device function.
Definition: hip_module.cpp:1667
Definition: hip_runtime_api.h:265
hipError_t hipIpcCloseMemHandle(void *devPtr)
Close memory mapped with hipIpcOpenMemHandle.
Definition: hip_memory.cpp:2539
hipError_t hipModuleOccupancyMaxPotentialBlockSize(int *gridSize, int *blockSize, hipFunction_t f, size_t dynSharedMemPerBlk, int blockSizeLimit)
determine the grid and block sizes to achieves maximum occupancy for a kernel
Definition: hip_module.cpp:1646
hipError_t hipPointerGetAttributes(hipPointerAttribute_t *attributes, const void *ptr)
Return attributes for the specified pointer.
Definition: hip_memory.cpp:617
hipError_t hipMemcpyParam2DAsync(const hip_Memcpy2D *pCopy, hipStream_t stream __dparm(0))
Copies memory for 2D arrays.
size_t sharedMem
Shared memory.
Definition: hip_runtime_api.h:287
hipError_t hipModuleOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, hipFunction_t f, int blockSize, size_t dynSharedMemPerBlk)
Returns occupancy for a device function.
Definition: hip_module.cpp:1677
hipError_t hipMemsetD8(hipDeviceptr_t dest, unsigned char value, size_t count)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
Definition: hip_memory.cpp:2261
hipError_t hipProfilerStop()
Stop recording of profiling information. When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2502
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:2281
hipError_t hipProfilerStart()
Start recording of profiling information When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2496
hipError_t hipLaunchByPtr(const void *func)
Launch a kernel.
Definition: hip_clang.cpp:485
Definition: texture_types.h:95