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: 78cf6e473e]
Этот коммит содержится в:
foreman
2019-09-17 19:47:11 -04:00
родитель e5578ee6d5
Коммит 925ab48904
2 изменённых файлов: 6 добавлений и 3 удалений
+3 -3
Просмотреть файл
@@ -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) {
+3
Просмотреть файл
@@ -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