diff --git a/rocclr/runtime/device/pal/palprogram.cpp b/rocclr/runtime/device/pal/palprogram.cpp index 4de2710453..1813c42bb0 100644 --- a/rocclr/runtime/device/pal/palprogram.cpp +++ b/rocclr/runtime/device/pal/palprogram.cpp @@ -99,7 +99,8 @@ bool Segment::alloc(HSAILProgram& prog, amdgpu_hsa_elf_segment_t segment, size_t } } - if (zero && !prog.isInternal()) { + // Don't clear GPU memory if CPU backing store is available + if ((cpuAccess_ == nullptr) && zero && !prog.isInternal()) { uint64_t pattern = 0; size_t patternSize = ((size % sizeof(pattern)) == 0) ? sizeof(pattern) : 1; prog.dev().xferMgr().fillBuffer(*gpuAccess_, &pattern, patternSize, amd::Coord3D(0),