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:
@@ -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;
|
||||
}
|
||||
|
||||
Referens i nytt ärende
Block a user