From 925ab489049e41e8464243697dcd21eab01c3a44 Mon Sep 17 00:00:00 2001 From: foreman Date: Tue, 17 Sep 2019 19:47:11 -0400 Subject: [PATCH] P4 to Git Change 1999915 by cpaquot@cpaquot-ocl-lc-lnx on 2019/09/17 19:43:34 SWDEV-201128 - [HIP] test_snli_cuda failure Default to sync packet Make sure GPU_NUM_MEM_DEPENDENCY is 0 for HIP No sync packet is only used when there are mem dependency check Affected files ... ... //depot/stg/opencl/drivers/opencl/api/hip/hip_context.cpp#22 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#86 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#28 edit [ROCm/clr commit: 78cf6e473ea5f0ab62e5468420c86a62a9def830] --- projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp | 6 +++--- projects/clr/rocclr/runtime/device/rocm/rocvirtual.hpp | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp b/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp index 04ed2df450..7b21bfd32c 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocvirtual.cpp @@ -195,7 +195,7 @@ bool VirtualGPU::processMemObjects(const amd::Kernel& kernel, const_address para const amd::KernelSignature& signature = kernel.signature(); const amd::KernelParameters& kernelParams = kernel.parameters(); - if (!cooperativeGroups) { + if (!cooperativeGroups && memoryDependency().maxMemObjectsInQueue() != 0) { // AQL packets setAqlHeader(kDispatchPacketHeaderNoSync); } @@ -575,7 +575,7 @@ VirtualGPU::VirtualGPU(Device& device) kernarg_pool_base_ = nullptr; kernarg_pool_size_ = 0; kernarg_pool_cur_offset_ = 0; - aqlHeader_ = kDispatchPacketHeaderNoSync; + aqlHeader_ = kDispatchPacketHeader; barrier_signal_.handle = 0; // Note: Virtual GPU device creation must be a thread safe operation @@ -2052,7 +2052,7 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, const return false; } - LogPrintfInfo("!\tShaderName : %s\n", gpuKernel.name().c_str()); + LogPrintfInfo("[%zx]!\tShaderName : %s\n", std::this_thread::get_id(), gpuKernel.name().c_str()); // Check if runtime has to setup hidden arguments for (uint32_t i = signature.numParameters(); i < signature.numParametersAll(); ++i) { diff --git a/projects/clr/rocclr/runtime/device/rocm/rocvirtual.hpp b/projects/clr/rocclr/runtime/device/rocm/rocvirtual.hpp index 1e4717f9aa..d4f280ec9b 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocvirtual.hpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocvirtual.hpp @@ -131,6 +131,9 @@ class VirtualGPU : public device::VirtualDevice { //! Clear memory dependency void clear(bool all = true); + //! Max number of mem objects in the queue + size_t maxMemObjectsInQueue() const { return maxMemObjectsInQueue_; } + private: struct MemoryState { uint64_t start_; //! Busy memory start address