P4 to Git Change 1539091 by vsytchen@vsytchen-ocl-win10 on 2018/04/10 14:57:40
SWDEV-150166 - [OCL][LC][Ellesmere][Windows] oclcompiler.OCLStructOperations[30] causing crash 1. Set the default amount of command buffer allocated per queue to 4 for pre-gfx9 and 12 for gfx9+ pal devices. 2. Limit the amount of command buffers allocated for device queue to 2. ReviewBoardURL = http://ocltc.amd.com/reviews/r/14594/diff/ Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#50 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#89 edit
This commit is contained in:
@@ -142,8 +142,7 @@ Settings::Settings() {
|
||||
subAllocationMaxSize_ =
|
||||
std::min(static_cast<uint64_t>(GPU_MAX_SUBALLOC_SIZE) * Ki, subAllocationChunkSize_);
|
||||
|
||||
// Note: More command buffers may cause a HW hang with HWSC on VI family in OCLPerfKernelArguments
|
||||
maxCmdBuffers_ = 8;
|
||||
maxCmdBuffers_ = 12;
|
||||
}
|
||||
|
||||
bool Settings::create(const Pal::DeviceProperties& palProp,
|
||||
@@ -293,6 +292,12 @@ bool Settings::create(const Pal::DeviceProperties& palProp,
|
||||
maxAllocSize_ = 3ULL * Gi;
|
||||
}
|
||||
|
||||
// Note: More than 4 command buffers may cause a HW hang
|
||||
// with HWSC on pre-gfx9 devices in OCLPerfKernelArguments
|
||||
if (!aiPlus_) {
|
||||
maxCmdBuffers_ = 4;
|
||||
}
|
||||
|
||||
supportRA_ = false;
|
||||
partialDispatch_ = GPU_PARTIAL_DISPATCH;
|
||||
numMemDependencies_ = GPU_NUM_MEM_DEPENDENCY;
|
||||
|
||||
@@ -784,7 +784,7 @@ bool VirtualGPU::create(bool profiling, uint deviceQueueSize, uint rtCUs,
|
||||
uint idx = index() % (dev().numComputeEngines() - firstQueue);
|
||||
uint64_t residency_limit = dev().properties().gpuMemoryProperties.flags.supportPerSubmitMemRefs ? 0 :
|
||||
(dev().properties().gpuMemoryProperties.maxLocalMemSize >> 2);
|
||||
uint max_cmd_buffers = dev().settings().maxCmdBuffers_;
|
||||
uint max_cmd_buffers = (idx == 0) ? 2 : dev().settings().maxCmdBuffers_;
|
||||
|
||||
if (dev().numComputeEngines()) {
|
||||
//! @todo There is a hang with a mix of user and non user queues.
|
||||
|
||||
Fai riferimento in un nuovo problema
Block a user