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 43 #include <hip/hip_runtime_api.h> 44 #include <hip/hcc_detail/driver_types.h> 50 #include <hip/hcc_detail/program_state.hpp> 54 #define DEPRECATED(msg) __declspec(deprecated(msg)) 55 #else // !defined(_MSC_VER) 56 #define DEPRECATED(msg) __attribute__ ((deprecated(msg))) 57 #endif // !defined(_MSC_VER) 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" 61 #if defined(__HCC__) && (__hcc_workweek__ < 16155) 62 #error("This version of HIP requires a newer version of HCC."); 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) 72 #include <unordered_map> 82 hipError_t hip_init();
95 typedef int hipDevice_t;
101 #define hipIpcMemLazyEnablePeerAccess 0 103 #define HIP_IPC_HANDLE_SIZE 64 106 char reserved[HIP_IPC_HANDLE_SIZE];
110 struct ihipIpcEventHandle_t;
111 typedef struct ihipIpcEventHandle_t* hipIpcEventHandle_t;
123 size_t constSizeBytes;
124 size_t localSizeBytes;
125 int maxDynamicSharedSizeBytes;
126 int maxThreadsPerBlock;
128 int preferredShmemCarveout;
130 size_t sharedSizeBytes;
136 hipLimitMallocHeapSize = 0x02,
143 #define hipStreamDefault \ 146 #define hipStreamNonBlocking 0x01 150 #define hipEventDefault 0x0 151 #define hipEventBlockingSync \ 153 #define hipEventDisableTiming \ 155 #define hipEventInterprocess 0x4 156 #define hipEventReleaseToDevice \ 158 #define hipEventReleaseToSystem \ 167 #define hipHostMallocDefault 0x0 168 #define hipHostMallocPortable 0x1 169 #define hipHostMallocMapped \ 171 #define hipHostMallocWriteCombined 0x4 173 #define hipHostMallocCoherent \ 175 #define hipHostMallocNonCoherent \ 180 #define hipDeviceMallocDefault 0x0 181 #define hipDeviceMallocFinegrained 0x1 183 #define hipHostRegisterDefault 0x0 185 #define hipHostRegisterPortable 0x1 186 #define hipHostRegisterMapped \ 188 #define hipHostRegisterIoMemory 0x4 192 #define hipDeviceScheduleAuto 0x0 193 #define hipDeviceScheduleSpin \ 195 #define hipDeviceScheduleYield \ 198 #define hipDeviceScheduleBlockingSync 0x4 200 #define hipDeviceScheduleMask 0x7 202 #define hipDeviceMapHost 0x8 203 #define hipDeviceLmemResizeToMax 0x16 205 #define hipArrayDefault 0x00 206 #define hipArrayLayered 0x01 207 #define hipArraySurfaceLoadStore 0x02 208 #define hipArrayCubemap 0x04 209 #define hipArrayTextureGather 0x08 216 typedef enum hipJitOption {
217 hipJitOptionMaxRegisters = 0,
218 hipJitOptionThreadsPerBlock,
219 hipJitOptionWallTime,
220 hipJitOptionInfoLogBuffer,
221 hipJitOptionInfoLogBufferSizeBytes,
222 hipJitOptionErrorLogBuffer,
223 hipJitOptionErrorLogBufferSizeBytes,
224 hipJitOptionOptimizationLevel,
225 hipJitOptionTargetFromContext,
227 hipJitOptionFallbackStrategy,
228 hipJitOptionGenerateDebugInfo,
229 hipJitOptionLogVerbose,
230 hipJitOptionGenerateLineInfo,
231 hipJitOptionCacheMode,
233 hipJitOptionFastCompile,
234 hipJitOptionNumOptions
270 dim3(uint32_t _x = 1, uint32_t _y = 1, uint32_t _z = 1) : x(_x), y(_y), z(_z){};
778 hipError_t
hipStreamWaitEvent(hipStream_t stream, hipEvent_t event,
unsigned int flags);
919 hipError_t
hipEventRecord(hipEvent_t event, hipStream_t stream = NULL);
1058 hipError_t
hipMalloc(
void** ptr,
size_t size);
1088 DEPRECATED(
"use hipHostMalloc instead")
1104 hipError_t
hipHostMalloc(
void** ptr,
size_t size,
unsigned int flags);
1120 hipError_t
hipHostAlloc(
void** ptr,
size_t size,
unsigned int flags);
1182 hipError_t
hipHostRegister(
void* hostPtr,
size_t sizeBytes,
unsigned int flags);
1213 hipError_t
hipMallocPitch(
void** ptr,
size_t* pitch,
size_t width,
size_t height);
1228 hipError_t
hipFree(
void* ptr);
1285 hipError_t
hipMemcpy(
void* dst, const
void* src,
size_t sizeBytes, hipMemcpyKind kind);
1304 hipError_t
hipMemcpyHtoD(hipDeviceptr_t dst,
void* src,
size_t sizeBytes);
1323 hipError_t
hipMemcpyDtoH(
void* dst, hipDeviceptr_t src,
size_t sizeBytes);
1342 hipError_t
hipMemcpyDtoD(hipDeviceptr_t dst, hipDeviceptr_t src,
size_t sizeBytes);
1361 hipError_t
hipMemcpyHtoDAsync(hipDeviceptr_t dst,
void* src,
size_t sizeBytes, hipStream_t stream);
1380 hipError_t
hipMemcpyDtoHAsync(
void* dst, hipDeviceptr_t src,
size_t sizeBytes, hipStream_t stream);
1399 hipError_t
hipMemcpyDtoDAsync(hipDeviceptr_t dst, hipDeviceptr_t src,
size_t sizeBytes,
1400 hipStream_t stream);
1403 hipError_t hipModuleGetGlobal(hipDeviceptr_t* dptr,
size_t* bytes,
1404 hipModule_t hmod,
const char* name);
1406 hipError_t hipGetSymbolAddress(
void** devPtr,
const void* symbolName);
1407 hipError_t hipGetSymbolSize(
size_t* size,
const void* symbolName);
1408 hipError_t hipMemcpyToSymbol(
const void* symbolName,
const void* src,
1409 size_t sizeBytes,
size_t offset __dparm(0),
1410 hipMemcpyKind kind __dparm(hipMemcpyHostToDevice));
1411 hipError_t hipMemcpyToSymbolAsync(
const void* symbolName,
const void* src,
1412 size_t sizeBytes,
size_t offset,
1413 hipMemcpyKind kind, hipStream_t stream __dparm(0));
1414 hipError_t hipMemcpyFromSymbol(
void* dst,
const void* symbolName,
1415 size_t sizeBytes,
size_t offset __dparm(0),
1416 hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost));
1417 hipError_t hipMemcpyFromSymbolAsync(
void* dst,
const void* symbolName,
1418 size_t sizeBytes,
size_t offset,
1420 hipStream_t stream __dparm(0));
1423 hipError_t hipModuleGetGlobal(
void**,
size_t*, hipModule_t, const
char*);
1438 hipError_t hipGetSymbolAddress(
void** devPtr, const
void* symbolName) {
1440 hip_impl::hip_init();
1442 return hipModuleGetGlobal(devPtr, &size, 0, (
const char*)symbolName);
1458 hipError_t hipGetSymbolSize(
size_t* size, const
void* symbolName) {
1460 hip_impl::hip_init();
1461 void* devPtr =
nullptr;
1462 return hipModuleGetGlobal(&devPtr, size, 0, (
const char*)symbolName);
1465 #if defined(__cplusplus) 1470 hipError_t hipMemcpyToSymbol(
void*,
const void*,
size_t,
size_t, hipMemcpyKind,
1474 #if defined(__cplusplus) 1503 hipError_t hipMemcpyToSymbol(const
void* symbolName, const
void* src,
1504 size_t sizeBytes,
size_t offset __dparm(0),
1505 hipMemcpyKind kind __dparm(hipMemcpyHostToDevice)) {
1506 if (!symbolName)
return hipErrorInvalidSymbol;
1508 hipDeviceptr_t dst = NULL;
1509 hipGetSymbolAddress(&dst, (
const char*)symbolName);
1511 return hip_impl::hipMemcpyToSymbol(dst, src, sizeBytes, offset, kind,
1512 (
const char*)symbolName);
1515 #if defined(__cplusplus) 1520 hipError_t hipMemcpyToSymbolAsync(
void*,
const void*,
size_t,
size_t,
1521 hipMemcpyKind, hipStream_t,
const char*);
1522 hipError_t hipMemcpyFromSymbol(
void*,
const void*,
size_t,
size_t,
1523 hipMemcpyKind,
const char*);
1524 hipError_t hipMemcpyFromSymbolAsync(
void*,
const void*,
size_t,
size_t,
1525 hipMemcpyKind, hipStream_t,
const char*);
1528 #if defined(__cplusplus) 1559 hipError_t hipMemcpyToSymbolAsync(const
void* symbolName, const
void* src,
1560 size_t sizeBytes,
size_t offset,
1561 hipMemcpyKind kind, hipStream_t stream __dparm(0)) {
1562 if (!symbolName)
return hipErrorInvalidSymbol;
1564 hipDeviceptr_t dst = NULL;
1565 hipGetSymbolAddress(&dst, symbolName);
1567 return hip_impl::hipMemcpyToSymbolAsync(dst, src, sizeBytes, offset, kind,
1569 (
const char*)symbolName);
1574 hipError_t hipMemcpyFromSymbol(
void* dst, const
void* symbolName,
1575 size_t sizeBytes,
size_t offset __dparm(0),
1576 hipMemcpyKind kind __dparm(hipMemcpyDeviceToHost)) {
1577 if (!symbolName)
return hipErrorInvalidSymbol;
1579 hipDeviceptr_t src = NULL;
1580 hipGetSymbolAddress(&src, symbolName);
1582 return hip_impl::hipMemcpyFromSymbol(dst, src, sizeBytes, offset, kind,
1583 (
const char*)symbolName);
1588 hipError_t hipMemcpyFromSymbolAsync(
void* dst, const
void* symbolName,
1589 size_t sizeBytes,
size_t offset,
1591 hipStream_t stream __dparm(0)) {
1592 if (!symbolName)
return hipErrorInvalidSymbol;
1594 hipDeviceptr_t src = NULL;
1595 hipGetSymbolAddress(&src, symbolName);
1597 return hip_impl::hipMemcpyFromSymbolAsync(dst, src, sizeBytes, offset, kind,
1599 (
const char*)symbolName);
1602 #endif // __HIP_VDI__ 1631 hipError_t
hipMemcpyAsync(
void* dst,
const void* src,
size_t sizeBytes, hipMemcpyKind kind,
1632 hipStream_t stream __dparm(0));
1643 hipError_t
hipMemset(
void* dst,
int value,
size_t sizeBytes);
1654 hipError_t
hipMemsetD8(hipDeviceptr_t dest,
unsigned char value,
size_t sizeBytes);
1665 hipError_t
hipMemsetD32(hipDeviceptr_t dest,
int value,
size_t count);
1682 hipError_t
hipMemsetAsync(
void* dst,
int value,
size_t sizeBytes, hipStream_t stream __dparm(0));
1700 hipStream_t stream __dparm(0));
1713 hipError_t
hipMemset2D(
void* dst,
size_t pitch,
int value,
size_t width,
size_t height);
1727 hipError_t
hipMemset2DAsync(
void* dst,
size_t pitch,
int value,
size_t width,
size_t height,hipStream_t stream __dparm(0));
1762 hipError_t hipMemPtrGetInfo(
void* ptr,
size_t* size);
1778 size_t height __dparm(0),
unsigned int flags __dparm(
hipArrayDefault));
1808 struct hipExtent extent,
unsigned int flags);
1825 hipError_t
hipMemcpy2D(
void* dst,
size_t dpitch,
const void* src,
size_t spitch,
size_t width,
1826 size_t height, hipMemcpyKind kind);
1827 hipError_t hipMemcpyParam2D(
const hip_Memcpy2D* pCopy);
1846 hipError_t
hipMemcpy2DAsync(
void* dst,
size_t dpitch,
const void* src,
size_t spitch,
size_t width,
1847 size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0));
1866 size_t spitch,
size_t width,
size_t height, hipMemcpyKind kind);
1885 size_t count, hipMemcpyKind kind);
1903 size_t count, hipMemcpyKind kind);
2028 #ifndef USE_PEER_NON_UNIFIED 2029 #define USE_PEER_NON_UNIFIED 1 2032 #if USE_PEER_NON_UNIFIED == 1 2044 hipError_t
hipMemcpyPeer(
void* dst,
int dstDeviceId,
const void* src,
int srcDeviceId,
2059 hipError_t
hipMemcpyPeerAsync(
void* dst,
int dstDeviceId,
const void* src,
int srcDevice,
2060 size_t sizeBytes, hipStream_t stream __dparm(0));
2084 hipError_t
hipInit(
unsigned int flags);
2106 DEPRECATED(DEPRECATED_MSG)
2107 hipError_t
hipCtxCreate(hipCtx_t* ctx,
unsigned int flags, hipDevice_t device);
2119 DEPRECATED(DEPRECATED_MSG)
2132 DEPRECATED(DEPRECATED_MSG)
2145 DEPRECATED(DEPRECATED_MSG)
2158 DEPRECATED(DEPRECATED_MSG)
2171 DEPRECATED(DEPRECATED_MSG)
2185 DEPRECATED(DEPRECATED_MSG)
2205 DEPRECATED(DEPRECATED_MSG)
2221 DEPRECATED(DEPRECATED_MSG)
2237 DEPRECATED(DEPRECATED_MSG)
2253 DEPRECATED(DEPRECATED_MSG)
2269 DEPRECATED(DEPRECATED_MSG)
2283 DEPRECATED(DEPRECATED_MSG)
2296 DEPRECATED(DEPRECATED_MSG)
2318 DEPRECATED(DEPRECATED_MSG)
2337 DEPRECATED(DEPRECATED_MSG)
2418 hipError_t
hipDeviceGet(hipDevice_t* device,
int ordinal);
2512 hipError_t
hipModuleLoad(hipModule_t* module, const
char* fname);
2536 hipError_t
hipModuleGetFunction(hipFunction_t* function, hipModule_t module, const
char* kname);
2551 Agent_global() : name(
nullptr), address(
nullptr), byte_cnt(0) {}
2552 Agent_global(
const char* name, hipDeviceptr_t address, uint32_t byte_cnt)
2553 : name(
nullptr), address(address), byte_cnt(byte_cnt) {
2555 this->name = strdup(name);
2558 Agent_global& operator=(Agent_global&& t) {
2559 if (
this == &t)
return *
this;
2561 if (name) free(name);
2563 address = t.address;
2564 byte_cnt = t.byte_cnt;
2567 t.address =
nullptr;
2573 Agent_global(Agent_global&& t)
2574 : name(
nullptr), address(
nullptr), byte_cnt(0) {
2575 *
this = std::move(t);
2579 Agent_global(
const Agent_global&) =
delete;
2580 Agent_global& operator=(Agent_global& t) =
delete;
2582 ~Agent_global() {
if (name) free(name); }
2585 hipDeviceptr_t address;
2590 #if defined(__cplusplus) 2595 hsa_executable_t executable_for(hipModule_t);
2596 const char* hash_for(hipModule_t);
2598 template<
typename ForwardIterator>
2599 std::pair<hipDeviceptr_t, std::size_t> read_global_description(
2600 ForwardIterator f, ForwardIterator l,
const char* name) {
2601 const auto it = std::find_if(f, l, [=](
const Agent_global& x) {
2602 return strcmp(x.name, name) == 0;
2606 std::make_pair(
nullptr, 0u) : std::make_pair(it->address, it->byte_cnt);
2609 std::vector<Agent_global> read_agent_globals(hsa_agent_t agent,
2610 hsa_executable_t executable);
2611 hsa_agent_t this_agent();
2615 hipError_t read_agent_global_from_module(hipDeviceptr_t* dptr,
size_t* bytes,
2616 hipModule_t hmod,
const char* name) {
2619 static std::unordered_map<
2620 std::string, std::vector<Agent_global>> agent_globals;
2621 std::string key(hash_for(hmod));
2623 if (agent_globals.count(key) == 0) {
2624 static std::mutex mtx;
2625 std::lock_guard<std::mutex> lck{mtx};
2627 if (agent_globals.count(key) == 0) {
2628 agent_globals.emplace(
2629 key, read_agent_globals(this_agent(), executable_for(hmod)));
2633 const auto it0 = agent_globals.find(key);
2634 if (it0 == agent_globals.cend()) {
2636 std::runtime_error{
"agent_globals data structure corrupted."});
2639 std::tie(*dptr, *bytes) = read_global_description(it0->second.cbegin(),
2640 it0->second.cend(), name);
2660 hipError_t read_agent_global_from_process(hipDeviceptr_t* dptr,
size_t* bytes,
2662 static std::unordered_map<
2663 hsa_agent_t, std::vector<Agent_global>> agent_globals;
2664 static std::once_flag f;
2666 std::call_once(f, []() {
2667 for (
auto&& agent_executables : executables()) {
2668 std::vector<Agent_global> tmp0;
2669 for (
auto&& executable : agent_executables.second) {
2670 auto tmp1 = read_agent_globals(agent_executables.first,
2673 tmp0.insert(tmp0.end(), make_move_iterator(tmp1.begin()),
2674 make_move_iterator(tmp1.end()));
2676 agent_globals.emplace(agent_executables.first, move(tmp0));
2680 const auto it = agent_globals.find(this_agent());
2682 if (it == agent_globals.cend())
return hipErrorNotInitialized;
2684 std::tie(*dptr, *bytes) = read_global_description(it->second.cbegin(),
2685 it->second.cend(), name);
2687 return *dptr ? hipSuccess : hipErrorNotFound;
2691 #if defined(__cplusplus) 2707 hipError_t hipModuleGetGlobal(hipDeviceptr_t* dptr,
size_t* bytes,
2708 hipModule_t hmod,
const char* name) {
2709 if (!dptr || !bytes)
return hipErrorInvalidValue;
2711 if (!name)
return hipErrorNotInitialized;
2713 const auto r = hmod ?
2714 hip_impl::read_agent_global_from_module(dptr, bytes, hmod, name) :
2715 hip_impl::read_agent_global_from_process(dptr, bytes, name);
2719 #endif // __HIP_VDI__ 2721 hipError_t hipModuleGetTexRef(
textureReference** texRef, hipModule_t hmod,
const char* name);
2745 hipError_t
hipModuleLoadDataEx(hipModule_t* module,
const void* image,
unsigned int numOptions,
2746 hipJitOption* options,
void** optionValues);
2773 unsigned int gridDimZ,
unsigned int blockDimX,
2774 unsigned int blockDimY,
unsigned int blockDimZ,
2775 unsigned int sharedMemBytes, hipStream_t stream,
2776 void** kernelParams,
void** extra);
2931 hipError_t
hipConfigureCall(
dim3 gridDim,
dim3 blockDim,
size_t sharedMem __dparm(0), hipStream_t stream __dparm(0));
2968 #include <hip/hcc_detail/hip_prof_api.h> 2977 hipError_t hipRemoveApiCallback(uint32_t
id);
2978 hipError_t hipRegisterActivityCallback(uint32_t
id,
void* fun,
void* arg);
2979 hipError_t hipRemoveActivityCallback(uint32_t
id);
2980 static inline const char* hipApiName(
const uint32_t&
id) {
return hip_api_name(
id); }
2981 const char* hipKernelNameRef(
const hipFunction_t f);
2988 hipError_t hipBindTexture(
size_t* offset,
textureReference* tex,
const void* devPtr,
2991 hipError_t ihipBindTextureImpl(
int dim,
enum hipTextureReadMode readMode,
size_t* offset,
3010 template <
class T,
int dim, enum hipTextureReadMode readMode>
3011 hipError_t hipBindTexture(
size_t* offset,
struct texture<T, dim, readMode>& tex,
const void* devPtr,
3013 return ihipBindTextureImpl(dim, readMode, offset, devPtr, &desc, size, &tex);
3030 template <
class T,
int dim, enum hipTextureReadMode readMode>
3031 hipError_t hipBindTexture(
size_t* offset,
struct texture<T, dim, readMode>& tex,
const void* devPtr,
3032 size_t size = UINT_MAX) {
3033 return ihipBindTextureImpl(dim, readMode, offset, devPtr, &(tex.channelDesc), size, &tex);
3037 hipError_t hipBindTexture2D(
size_t* offset,
textureReference* tex,
const void* devPtr,
3041 hipError_t ihipBindTexture2DImpl(
int dim,
enum hipTextureReadMode readMode,
size_t* offset,
3045 template <
class T,
int dim, enum hipTextureReadMode readMode>
3046 hipError_t hipBindTexture2D(
size_t* offset,
struct texture<T, dim, readMode>& tex,
3047 const void* devPtr,
size_t width,
size_t height,
size_t pitch) {
3048 return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &(tex.channelDesc), width, height,
3052 template <
class T,
int dim, enum hipTextureReadMode readMode>
3053 hipError_t hipBindTexture2D(
size_t* offset,
struct texture<T, dim, readMode>& tex,
3055 size_t width,
size_t height,
size_t pitch) {
3056 return ihipBindTexture2DImpl(dim, readMode, offset, devPtr, &desc, width, height, &tex);
3063 hipError_t ihipBindTextureToArrayImpl(
int dim,
enum hipTextureReadMode readMode,
3068 template <
class T,
int dim, enum hipTextureReadMode readMode>
3069 hipError_t hipBindTextureToArray(
struct texture<T, dim, readMode>& tex,
hipArray_const_t array) {
3070 return ihipBindTextureToArrayImpl(dim, readMode, array, tex.channelDesc, &tex);
3073 template <
class T,
int dim, enum hipTextureReadMode readMode>
3074 hipError_t hipBindTextureToArray(
struct texture<T, dim, readMode>& tex,
hipArray_const_t array,
3076 return ihipBindTextureToArrayImpl(dim, readMode, array, desc, &tex);
3079 template <
class T,
int dim, enum hipTextureReadMode readMode>
3080 inline static hipError_t hipBindTextureToArray(
struct texture<T, dim, readMode> *tex,
3083 return ihipBindTextureToArrayImpl(dim, readMode, array, *desc, tex);
3091 template <
class T,
int dim, enum hipTextureReadMode readMode>
3092 hipError_t hipBindTextureToMipmappedArray(
const texture<T, dim, readMode>& tex,
3097 template <
class T,
int dim, enum hipTextureReadMode readMode>
3098 hipError_t hipBindTextureToMipmappedArray(
const texture<T, dim, readMode>& tex,
3113 extern hipError_t ihipUnbindTextureImpl(
const hipTextureObject_t& textureObject);
3115 template <
class T,
int dim, enum hipTextureReadMode readMode>
3116 hipError_t hipUnbindTexture(
struct texture<T, dim, readMode>& tex) {
3117 return ihipUnbindTextureImpl(tex.textureObject);
3121 hipError_t hipGetTextureAlignmentOffset(
size_t* offset,
const textureReference* texref);
3122 hipError_t hipGetTextureReference(
const textureReference** texref,
const void* symbol);
3124 hipError_t hipCreateTextureObject(hipTextureObject_t* pTexObject,
const hipResourceDesc* pResDesc,
3128 hipError_t hipDestroyTextureObject(hipTextureObject_t textureObject);
3131 hipTextureObject_t textureObject);
3133 hipTextureObject_t textureObject);
3134 hipError_t hipGetTextureObjectTextureDesc(
hipTextureDesc* pTexDesc,
3135 hipTextureObject_t textureObject);
3138 hipError_t hipTexRefSetAddressMode(
textureReference* tex,
int dim, hipTextureAddressMode am);
3140 hipError_t hipTexRefSetFilterMode(
textureReference* tex, hipTextureFilterMode fm);
3144 hipError_t hipTexRefSetFormat(
textureReference* tex, hipArray_Format fmt,
int NumPackedComponents);
3146 hipError_t hipTexRefSetAddress(
size_t* offset,
textureReference* tex, hipDeviceptr_t devPtr,
3150 hipDeviceptr_t devPtr,
size_t pitch);
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:1926
prefer larger L1 cache and smaller shared memory
Definition: hip_runtime_api.h:244
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:455
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:218
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:1799
hipError_t hipStreamGetPriority(hipStream_t stream, int *priority)
Query the priority of a stream.
Definition: hip_stream.cpp:234
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
hipError_t hipPeekAtLastError(void)
Return last error returned by any HIP runtime API call.
Definition: hip_error.cpp:41
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
hipError_t hipDeviceComputeCapability(int *major, int *minor, hipDevice_t device)
Returns the compute capability of the device.
Definition: hip_device.cpp:369
hipError_t hipDeviceGetByPCIBusId(int *device, const char *pciBusId)
Returns a handle to a compute device.
Definition: hip_device.cpp:427
hipError_t hipExtMallocWithFlags(void **ptr, size_t sizeBytes, unsigned int flags)
Allocate memory on the default accelerator.
Definition: hip_memory.cpp:267
hipError_t hipMemGetAddressRange(hipDeviceptr_t *pbase, size_t *psize, hipDeviceptr_t dptr)
Get information on memory allocations.
Definition: hip_memory.cpp:1989
hipError_t hipFreeHost(void *ptr)
Free memory allocated by the hcc hip host memory allocation API. [Deprecated].
Definition: hip_memory.cpp:1959
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:1285
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:567
Definition: driver_types.h:232
hipError_t hipMallocPitch(void **ptr, size_t *pitch, size_t width, size_t height)
Definition: hip_memory.cpp:440
hipError_t hipMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copies data between host and device.
hipError_t hipMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, hipMemcpyKind kind)
Copies data between host and device.
Definition: hip_memory.cpp:1629
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:254
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:1304
uint32_t x
x
Definition: hip_runtime_api.h:266
hipError_t hipMemcpyAtoH(void *dst, hipArray *srcArray, size_t srcOffset, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1341
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:191
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:137
hipError_t hipDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority)
Returns numerical values that correspond to the least and greatest stream priority.
Definition: hip_stream.cpp:118
prefer equal size L1 cache and shared memory
Definition: hip_runtime_api.h:245
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:1961
hipError_t hipStreamCreateWithPriority(hipStream_t *stream, unsigned int flags, int priority)
Create an asynchronous stream with the specified priority.
Definition: hip_stream.cpp:109
hipError_t hipMemsetAsync(void *dst, int value, size_t sizeBytes, hipStream_t stream __dparm(0))
Fills the first sizeBytes bytes of the memory area pointed to by dev with the constant byte value val...
hipError_t hipEventSynchronize(hipEvent_t event)
Wait for an event to complete.
Definition: hip_event.cpp:167
Definition: driver_types.h:173
hipError_t hipMemcpyHtoD(hipDeviceptr_t dst, void *src, size_t sizeBytes)
Copy data from Host to Device.
Definition: hip_memory.cpp:1130
hipError_t hipModuleUnload(hipModule_t module)
Frees the module.
Definition: hip_module.cpp:114
Definition: hip_module.cpp:89
hipError_t hipSetDeviceFlags(unsigned flags)
The current device behavior is changed according the flags passed.
hipError_t hipEventQuery(hipEvent_t event)
Query event status.
Definition: hip_event.cpp:257
hipError_t hipDeviceDisablePeerAccess(int peerDeviceId)
Disable direct access from current device's virtual address space to memory allocations physically lo...
Definition: hip_peer.cpp:184
hipError_t hipCtxGetSharedMemConfig(hipSharedMemConfig *pConfig)
Get Shared memory bank configuration.
Definition: hip_context.cpp:244
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:205
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:2010
Definition: hip_runtime_api.h:120
hipError_t hipMemset2DAsync(void *dst, size_t pitch, int value, size_t width, size_t height, hipStream_t stream __dparm(0))
Fills asynchronously the memory area pointed to by dst with the constant value.
Definition: driver_types.h:107
hipError_t hipHostMalloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory.
Definition: hip_memory.cpp:304
Definition: hip_hcc_internal.h:880
Definition: texture_types.h:73
hipError_t hipDeviceGetLimit(size_t *pValue, enum hipLimit_t limit)
Get Resource limits of current device.
Definition: hip_device.cpp:96
hipError_t 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:548
Definition: driver_types.h:70
hipDeviceAttribute_t
Definition: hip_runtime_api.h:259
hipError_t hipEventDestroy(hipEvent_t event)
Destroy the specified event.
Definition: hip_event.cpp:155
hipError_t hipStreamCreateWithFlags(hipStream_t *stream, unsigned int flags)
Create an asynchronous stream.
Definition: hip_stream.cpp:95
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:453
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:265
uint32_t y
y
Definition: hip_runtime_api.h:267
void(* hipStreamCallback_t)(hipStream_t stream, hipError_t status, void *userData)
Definition: hip_runtime_api.h:816
hipError_t hipModuleLoad(hipModule_t *module, const char *fname)
Loads code object from file into a hipModule_t.
Definition: hip_module.cpp:553
hipError_t hipDevicePrimaryCtxReset(hipDevice_t dev)
Resets the primary context on the GPU.
Definition: hip_context.cpp:311
hipError_t hipEventCreateWithFlags(hipEvent_t *event, unsigned flags)
Create an event with the specified flags.
Definition: hip_event.cpp:97
hipError_t hipHostAlloc(void **ptr, size_t size, unsigned int flags)
Allocate device accessible page locked host memory [Deprecated].
Definition: hip_memory.cpp:379
hipError_t hipMallocHost(void **ptr, size_t size)
Allocate pinned host memory [Deprecated].
Definition: hip_memory.cpp:375
hipError_t hipEventElapsedTime(float *ms, hipEvent_t start, hipEvent_t stop)
Return the elapsed time between two events.
Definition: hip_event.cpp:200
hipError_t hipDeviceSetCacheConfig(hipFuncCache_t cacheConfig)
Set L1/Shared cache partition.
Definition: hip_device.cpp:76
hipError_t hipDeviceCanAccessPeer(int *canAccessPeer, int deviceId, int peerDeviceId)
Determine if a device can access a peer's memory.
Definition: hip_peer.cpp:177
hipError_t hipGetDeviceCount(int *count)
Return number of compute-capable devices.
Definition: hip_device.cpp:71
hipError_t hipMemset(void *dst, int value, size_t sizeBytes)
Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant byte value va...
Definition: hip_memory.cpp:1715
Definition: driver_types.h:245
hipError_t hipStreamDestroy(hipStream_t stream)
Destroys the specified stream.
Definition: hip_stream.cpp:191
hipError_t hipHostGetFlags(unsigned int *flagsPtr, void *hostPtr)
Return flags associated with host pointer.
Definition: hip_memory.cpp:888
hipError_t hipStreamSynchronize(hipStream_t stream)
Wait for all commands in stream to complete.
Definition: hip_stream.cpp:180
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:2046
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:1168
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:254
no preference for shared memory or L1 (default)
Definition: hip_runtime_api.h:242
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:800
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:1226
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:1149
Defines the different newt vector types for HIP runtime.
hipError_t hipMemcpyAsync(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind, hipStream_t stream __dparm(0))
Copy data from src to dst asynchronously.
hipError_t hipDeviceGetName(char *name, int len, hipDevice_t device)
Returns an identifer string for the device.
Definition: hip_device.cpp:381
hipError_t hipGetDeviceProperties(hipDeviceProp_t *prop, int deviceId)
Returns device properties.
Definition: hip_device.cpp:316
hipError_t hipHostRegister(void *hostPtr, size_t sizeBytes, unsigned int flags)
Register host memory so it can be accessed from the current device.
Definition: hip_memory.cpp:916
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:1731
Definition: driver_types.h:225
hipFuncCache_t
Definition: hip_runtime_api.h:241
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:126
hipError_t hipStreamGetFlags(hipStream_t stream, unsigned int *flags)
Return flags associated with this stream.
Definition: hip_stream.cpp:219
Defines surface types for HIP runtime.
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:1835
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:1894
uint32_t z
z
Definition: hip_runtime_api.h:268
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 hipMemcpy3D(const struct hipMemcpy3DParms *p)
Copies data between host and device.
Definition: hip_memory.cpp:1360
hipError_t hipRuntimeGetVersion(int *runtimeVersion)
Returns the approximate HIP Runtime version.
Definition: hip_context.cpp:100
hipError_t hipFuncGetAttributes(hipFuncAttributes *attr, const void *func)
Definition: hip_module.cpp:486
hipError_t hipMemcpyHtoA(hipArray *dstArray, size_t dstOffset, const void *srcHost, size_t count)
Copies data between host and device.
Definition: hip_memory.cpp:1323
hipError_t hipSetupArgument(const void *arg, size_t size, size_t offset)
Set a kernel argument.
Definition: hip_clang.cpp:183
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:1218
Definition: hip_runtime_api.h:83
hipError_t hipSetDevice(int deviceId)
Set default device to be used for subsequent hip API calls from this thread.
Definition: hip_device.cpp:133
hipError_t hipDeviceGet(hipDevice_t *device, int ordinal)
Returns a handle to a compute device.
Definition: hip_context.cpp:73
hipError_t hipDeviceTotalMem(size_t *bytes, hipDevice_t device)
Returns the total amount of memory on the device.
Definition: hip_device.cpp:415
Definition: hip_runtime_api.h:2549
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:253
Definition: hip_runtime_api.h:81
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 hipModuleGetGlobal(void **
Copies the memory address of symbol symbolName to devPtr.
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:252
Definition: hip_hcc_internal.h:700
hipError_t hipDeviceGetAttribute(int *pi, hipDeviceAttribute_t attr, int deviceId)
Query for a specific device attribute.
Definition: hip_device.cpp:289
hipError_t hipMemcpyHtoDAsync(hipDeviceptr_t dst, void *src, size_t sizeBytes, hipStream_t stream)
Copy data from Host to Device asynchronously.
Definition: hip_memory.cpp:1211
hipError_t hipHostUnregister(void *hostPtr)
Un-register host pointer.
Definition: hip_memory.cpp:981
Definition: hip_hcc_internal.h:519
hipError_t hipMemcpyPeer(void *dst, int dstDeviceId, const void *src, int srcDeviceId, size_t sizeBytes)
Copies memory from one device to memory on another device.
Definition: hip_peer.cpp:198
hipError_t hipStreamCreate(hipStream_t *stream)
Create an asynchronous stream.
Definition: hip_stream.cpp:102
hipError_t hipMemcpy(void *dst, const void *src, size_t sizeBytes, hipMemcpyKind kind)
Copy data from src to dst.
Definition: hip_memory.cpp:1103
hipError_t hipEventCreate(hipEvent_t *event)
Definition: hip_event.cpp:103
Definition: driver_types.h:82
Definition: hip_runtime_api.h:105
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:212
Definition: driver_types.h:201
hipError_t hipDeviceSetSharedMemConfig(hipSharedMemConfig config)
The bank width of shared memory on current device is set.
Definition: hip_device.cpp:117
hipError_t hipGetDevice(int *deviceId)
Return the default device id for the calling host thread.
Definition: hip_device.cpp:32
hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream)
Record an event in the specified stream.
Definition: hip_event.cpp:110
Definition: hip_hcc_internal.h:367
hipError_t hipDeviceGetPCIBusId(char *pciBusId, int len, int device)
Returns a PCI Bus Id string for the device, overloaded to take int device ID.
Definition: hip_device.cpp:395
prefer larger shared memory and smaller L1 cache
Definition: hip_runtime_api.h:243
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:1233
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:157
Definition: hip_runtime_api.h:256
hipError_t hipIpcCloseMemHandle(void *devPtr)
Close memory mapped with hipIpcOpenMemHandle.
Definition: hip_memory.cpp:2076
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:1767
hipError_t hipPointerGetAttributes(hipPointerAttribute_t *attributes, const void *ptr)
Return attributes for the specified pointer.
Definition: hip_memory.cpp:161
hipError_t hipProfilerStop()
Stop recording of profiling information. When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2453
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:1783
hipError_t hipProfilerStart()
Start recording of profiling information When using this API, start the profiler with profiling disab...
Definition: hip_hcc.cpp:2443
hipError_t hipLaunchByPtr(const void *func)
Launch a kernel.
Definition: hip_clang.cpp:201
Definition: texture_types.h:93