Merge 'master' into 'amd-master'

Change-Id: I958da2155a9578cc0e136651b1d71e1de1b0c0c7
Этот коммит содержится в:
Jenkins
2017-08-10 04:10:42 -05:00
родитель ec23826498 e810da61f3
Коммит 105f08c197
7 изменённых файлов: 27 добавлений и 28 удалений
-1
Просмотреть файл
@@ -56,7 +56,6 @@ At a high-level, the following features are not supported:
- CUDA Driver API
- CUDA IPC Functions (Under Development)
- CUDA array, mipmappedArray and pitched memory
- MemcpyToSymbol functions
- Queue priority controls
See the [API Support Table](CUDA_Runtime_API_functions_supported_by_HIP.md) for more detailed information.
+1 -1
Просмотреть файл
@@ -405,7 +405,7 @@ Code should not assume a warp size of 32 or 64. See [Warp Cross-Lane Functions]
## memcpyToSymbol
HIP support for hipMemCpyToSymbol is complete. This feature allows a kernel
HIP support for hipMemcpyToSymbol is complete. This feature allows a kernel
to define a device-side data symbol which can be accessed on the host side. The symbol
can be in __constant or device space.
+22 -24
Просмотреть файл
@@ -31,6 +31,7 @@ THE SOFTWARE.
// Stack of contexts
thread_local std::stack<ihipCtx_t *> tls_ctxStack;
thread_local bool tls_getPrimaryCtx = true;
void ihipCtxStackUpdate()
{
@@ -65,6 +66,7 @@ hipError_t hipCtxCreate(hipCtx_t *ctx, unsigned int flags, hipDevice_t device)
*ctx = ictx;
ihipSetTlsDefaultCtx(*ctx);
tls_ctxStack.push(*ctx);
tls_getPrimaryCtx = false;
deviceCrit->addContext(ictx);
}
@@ -93,8 +95,7 @@ hipError_t hipDriverGetVersion(int *driverVersion)
hipError_t e = hipSuccess;
if (driverVersion) {
*driverVersion = 4;
}
else {
} else {
e = hipErrorInvalidValue;
}
@@ -107,8 +108,7 @@ hipError_t hipRuntimeGetVersion(int *runtimeVersion)
hipError_t e = hipSuccess;
if (runtimeVersion) {
*runtimeVersion = HIP_VERSION_PATCH;
}
else {
} else {
e = hipErrorInvalidValue;
}
@@ -124,9 +124,7 @@ hipError_t hipCtxDestroy(hipCtx_t ctx)
if(primaryCtx== ctx)
{
e = hipErrorInvalidValue;
}
else
{
} else {
if(currentCtx == ctx) {
//need to destroy the ctx associated with calling thread
tls_ctxStack.pop();
@@ -146,19 +144,21 @@ hipError_t hipCtxPopCurrent(hipCtx_t* ctx)
{
HIP_INIT_API(ctx);
hipError_t e = hipSuccess;
ihipCtx_t* tempCtx;
*ctx = ihipGetTlsDefaultCtx();
ihipCtx_t* currentCtx = ihipGetTlsDefaultCtx();
auto deviceHandle = currentCtx->getDevice();
*ctx = currentCtx;
if(!tls_ctxStack.empty()) {
tls_ctxStack.pop();
}
if(!tls_ctxStack.empty()) {
tempCtx= tls_ctxStack.top();
}
else {
tempCtx = nullptr;
currentCtx= tls_ctxStack.top();
} else {
currentCtx = deviceHandle->_primaryCtx;
}
ihipSetTlsDefaultCtx(tempCtx); //TOD0 - Shall check for NULL?
ihipSetTlsDefaultCtx(currentCtx); //TOD0 - Shall check for NULL?
return ihipLogStatus(e);
}
@@ -169,8 +169,8 @@ hipError_t hipCtxPushCurrent(hipCtx_t ctx)
if(ctx != NULL) { //TODO- is this check needed?
ihipSetTlsDefaultCtx(ctx);
tls_ctxStack.push(ctx);
}
else {
tls_getPrimaryCtx = false;
} else {
e = hipErrorInvalidContext;
}
return ihipLogStatus(e);
@@ -180,12 +180,11 @@ hipError_t hipCtxGetCurrent(hipCtx_t* ctx)
{
HIP_INIT_API(ctx);
hipError_t e = hipSuccess;
if(!tls_ctxStack.empty()) {
if((tls_getPrimaryCtx) || tls_ctxStack.empty()) {
*ctx = ihipGetTlsDefaultCtx();
} else {
*ctx= tls_ctxStack.top();
}
else {
*ctx = NULL;
}
return ihipLogStatus(e);
}
@@ -195,10 +194,10 @@ hipError_t hipCtxSetCurrent(hipCtx_t ctx)
hipError_t e = hipSuccess;
if(ctx == NULL) {
tls_ctxStack.pop();
}
else {
} else {
ihipSetTlsDefaultCtx(ctx);
tls_ctxStack.push(ctx);
tls_getPrimaryCtx = false;
}
return ihipLogStatus(e);
}
@@ -213,8 +212,7 @@ hipError_t hipCtxGetDevice(hipDevice_t *device)
if(ctx == nullptr) {
e = hipErrorInvalidContext;
// TODO *device = nullptr;
}
else {
} else {
auto deviceHandle = ctx->getDevice();
*device = deviceHandle->_deviceId;
}
+1
Просмотреть файл
@@ -146,6 +146,7 @@ hipError_t hipSetDevice(int deviceId)
return ihipLogStatus(hipErrorInvalidDevice);
} else {
ihipSetTlsDefaultCtx(ihipGetPrimaryCtx(deviceId));
tls_getPrimaryCtx = true;
return ihipLogStatus(hipSuccess);
}
}
+1
Просмотреть файл
@@ -114,6 +114,7 @@ private:
//Extern tls
extern thread_local hipError_t tls_lastHipError;
extern thread_local TidInfo tls_tidInfo;
extern thread_local bool tls_getPrimaryCtx;
extern std::vector<ProfTrigger> g_dbStartTriggers;
extern std::vector<ProfTrigger> g_dbStopTriggers;
+1 -1
Просмотреть файл
@@ -452,7 +452,7 @@ hipError_t ihipModuleLaunchKernel(hipFunction_t f,
lp.av->dispatch_hsa_kernel(&aql, config[1] /* kernarg*/, kernArgSize,
(startEvent || stopEvent) ? &cf : nullptr
#if (__hcc_workweek__ >= 17300)
#if (__hcc_workweek__ > 17312)
, f->_name.c_str()
#endif
);
+1 -1
Просмотреть файл
@@ -24,7 +24,7 @@ THE SOFTWARE.
/* HIT_START
* BUILD: %t %s ../../test_common.cpp NVCC_OPTIONS --std=c++11
* RUN: %t
* RUN: %t EXCLUDE_HIP_PLATFORM all
* HIT_END
*/