diff --git a/include/hcc_detail/hip_hcc.h b/include/hcc_detail/hip_hcc.h index 2f0c33a0d2..de6613184f 100644 --- a/include/hcc_detail/hip_hcc.h +++ b/include/hcc_detail/hip_hcc.h @@ -648,6 +648,7 @@ extern void ihipInit(); extern const char *ihipErrorString(hipError_t); extern ihipCtx_t *ihipGetTlsDefaultCtx(); extern void ihipSetTlsDefaultCtx(ihipCtx_t *ctx); +extern hipError_t ihipSynchronize(void); extern ihipDevice_t *ihipGetDevice(int); ihipCtx_t * ihipGetPrimaryCtx(unsigned deviceIndex); diff --git a/include/hcc_detail/hip_runtime_api.h b/include/hcc_detail/hip_runtime_api.h index 9917619039..094549a3a1 100644 --- a/include/hcc_detail/hip_runtime_api.h +++ b/include/hcc_detail/hip_runtime_api.h @@ -1086,6 +1086,11 @@ hipError_t hipCtxSetSharedMemConfig ( hipSharedMemConfig config ); hipError_t hipCtxGetSharedMemConfig ( hipSharedMemConfig * pConfig ); +hipError_t hipCtxSynchronize ( void ); + +hipError_t hipCtxGetFlags ( unsigned int* flags ); + + // TODO-ctx /** * @return hipSuccess, hipErrorInvalidDevice diff --git a/src/hip_context.cpp b/src/hip_context.cpp index ee9e37a1a1..33caf610bc 100644 --- a/src/hip_context.cpp +++ b/src/hip_context.cpp @@ -216,4 +216,18 @@ hipError_t hipCtxGetSharedMemConfig ( hipSharedMemConfig * pConfig ) *pConfig = hipSharedMemBankSizeFourByte; return ihipLogStatus(hipSuccess); -} \ No newline at end of file +} + +hipError_t hipCtxSynchronize ( void ) +{ + return ihipSynchronize(); //TODP Shall check validity of ctx? +} + +hipError_t hipCtxGetFlags ( unsigned int* flags ) +{ + hipError_t e = hipSuccess; + ihipCtx_t* tempCtx; + tempCtx = ihipGetTlsDefaultCtx(); + *flags = tempCtx->_ctxFlags; + return ihipLogStatus(e); +} diff --git a/src/hip_device.cpp b/src/hip_device.cpp index e3d7fefa91..d31e3b5890 100644 --- a/src/hip_device.cpp +++ b/src/hip_device.cpp @@ -160,11 +160,7 @@ hipError_t hipSetDevice(int deviceId) */ hipError_t hipDeviceSynchronize(void) { - HIP_INIT_API(); - - ihipGetTlsDefaultCtx()->locked_waitAllStreams(); // ignores non-blocking streams, this waits for all activity to finish. - - return ihipLogStatus(hipSuccess); + return ihipSynchronize(); } diff --git a/src/hip_hcc.cpp b/src/hip_hcc.cpp index f0d123b64a..e6b2905799 100644 --- a/src/hip_hcc.cpp +++ b/src/hip_hcc.cpp @@ -158,7 +158,14 @@ ihipCtx_t *ihipGetTlsDefaultCtx() return tls_defaultCtx; } +hipError_t ihipSynchronize(void) +{ + HIP_INIT_API(); + ihipGetTlsDefaultCtx()->locked_waitAllStreams(); // ignores non-blocking streams, this waits for all activity to finish. + + return ihipLogStatus(hipSuccess); +} //================================================================================================= // ihipSignal_t: