From a99daf43d0e906b2d95bb9b4dfec8d53923af18c Mon Sep 17 00:00:00 2001 From: foreman Date: Tue, 21 Aug 2018 13:52:31 -0400 Subject: [PATCH] P4 to Git Change 1596446 by axie@axie_win_opencl_laptop on 2018/08/21 13:40:43 SWDEV-161959 - [ROCm QA][RAVEN] QCDGPU-S test is having ERROR -61: (clCreateKernel failed) on RAVEN SWDEV-161983 - [ROCm QA][RAVEN] Cachebench test is failing with CL_INVALID_BUFFER_SIZE issue SWDEV-161978 - [ROCm QA][RAVEN] PCIeBW is failing on -with error : 61, OpenCL error creating buffer ! SWDEV-161962 - [ROCm QA][RAVEN] rodinia->nw test has ERROR: clCreateBuffer input_item_set (size:67125249) => -61 - Adjust Global memory size as half of the system physical memory size in APU for Rocm - Similar to current DGPU calculation, environment GPU_SINGLE_ALLOC_PERCENT can be used to adjust max memory allocation size. ReviewBoardURL = http://ocltc.amd.com/reviews/r/15659/ Tests: 1. ocltst -m oclruntime.so -A oclruntime.exclude - PASS except SVM test (non regression) 2. TeamCity presubmission test (OpenCL) - PASS http://ocltc.amd.com:8111/viewModification.html?modId=106628&personal=true&init=1&tab=vcsModificationBuilds 3. Run test qcdgpu-s.sh : PASS 4. Run test cachebench-ocl : PASS 5. Run test PCIeBandwidth -c 0 -g 0 : PASS 6. Run test Rodinia/opencl/nw/run : PASS Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#97 edit [ROCm/clr commit: f84d1d2d0340ee3c5c6f0facf17b606519ee0459] --- projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp index b578171c04..0baad36ad4 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp @@ -960,9 +960,11 @@ bool Device::populateOCLDeviceConstants() { assert(alloc_granularity_ > 0); } else { - static const cl_ulong kDefaultGlobalMemSize = cl_ulong(1 * Gi); - info_.globalMemSize_ = kDefaultGlobalMemSize; - info_.maxMemAllocSize_ = info_.globalMemSize_ / 4; + // We suppose half of physical memory can be used by GPU in APU system + info_.globalMemSize_ = + cl_ulong(sysconf(_SC_PAGESIZE)) * cl_ulong(sysconf(_SC_PHYS_PAGES)) / 2; + info_.maxMemAllocSize_ = + cl_ulong(info_.globalMemSize_ * std::min(GPU_SINGLE_ALLOC_PERCENT, 100u) / 100u); if (HSA_STATUS_SUCCESS != hsa_amd_memory_pool_get_info(