P4 to Git Change 1211287 by xcui@merged_opencl_jxcwin on 2015/11/13 19:19:52

SWDEV-77172 - temporary disable the FGS optimization for a failure on stg.

	code review:
	http://ocltc.amd.com/reviews/r/8992/
	precheckin:
	http://ocltc.amd.com:8111/viewModification.html?modId=62238&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#263 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#537 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#156 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#310 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#391 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#37 edit


[ROCm/clr commit: 768a8e7e78]
This commit is contained in:
foreman
2015-11-13 19:47:56 -05:00
förälder c446a43d74
incheckning dc82afd21c
6 ändrade filer med 7 tillägg och 10 borttagningar
+2 -2
Visa fil
@@ -1572,8 +1572,8 @@ public:
}
//! check svm FGS support capability.
inline bool isFineGrainedSystem() const {
return (info().svmCapabilities_ & CL_DEVICE_SVM_FINE_GRAIN_SYSTEM) != 0 ? true : false;
inline bool isFineGrainedSystem(bool FGSOPT = false) const {
return FGSOPT && (info().svmCapabilities_ & CL_DEVICE_SVM_FINE_GRAIN_SYSTEM) != 0 ? true : false;
}
//! Return this device's type.
@@ -2254,10 +2254,8 @@ Device::svmAlloc(amd::Context& context, size_t size, size_t alignment, cl_svm_me
size = amd::alignUp(size, alignment);
amd::Memory* mem = NULL;
freeCPUMem_ = false;
if (NULL == svmPtr) {
if (isFineGrainedSystem()) {
freeCPUMem_ = true;
return amd::Os::alignedMalloc(size, alignment);
}
@@ -2301,7 +2299,7 @@ Device::svmAlloc(amd::Context& context, size_t size, size_t alignment, cl_svm_me
void
Device::svmFree(void *ptr) const
{
if (freeCPUMem_) {
if (isFineGrainedSystem()) {
amd::Os::alignedFree(ptr);
}
else {
@@ -630,7 +630,6 @@ private:
SrdManager* srdManager_; //!< SRD manager object
static AppProfile appProfile_; //!< application profile
mutable bool freeCPUMem_; //!< flag to mark GPU free SVM CPU mem
};
/*@}*/} // namespace gpu
@@ -3803,7 +3803,7 @@ HSAILKernel::loadArguments(
}
// If finegrainsystem is present then the pointer can be malloced by the app and
// passed to kernel directly. If so copy the pointer location to aqlArgBuf
else if (dev().isFineGrainedSystem()) {
else if (dev().isFineGrainedSystem(true)) {
return NULL;
}
break;
@@ -3195,7 +3195,7 @@ VirtualGPU::processMemObjectsHSA(
// so we can avoid checks of the aliased objects
memoryDependency().newKernel();
bool deviceSupportFGS = 0 != dev().isFineGrainedSystem();
bool deviceSupportFGS = 0 != dev().isFineGrainedSystem(true);
bool supportFineGrainedSystem = deviceSupportFGS;
FGSStatus status = kernelParams.getSvmSystemPointersSupport();
switch (status) {
@@ -46,11 +46,11 @@ Context::Context(
std::swap(svmAllocDevice_.front(), svmAllocDevice_.back());
}
uint isFirstDeviceFGSEnabled = svmAllocDevice_.front()->isFineGrainedSystem();
uint isFirstDeviceFGSEnabled = svmAllocDevice_.front()->isFineGrainedSystem(true);
for (auto& dev : svmAllocDevice_) {
//allocation on fine - grained system incapable device first
if (isFirstDeviceFGSEnabled && (dev->type() == CL_DEVICE_TYPE_GPU)
&& (!(dev->isFineGrainedSystem()))) {
&& (!(dev->isFineGrainedSystem(true)))) {
std::swap(svmAllocDevice_.front(), dev);
break;
}