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