From 198f2d97b422b8950954ba05202e35aeb281d3c5 Mon Sep 17 00:00:00 2001 From: foreman Date: Wed, 24 Aug 2016 11:00:15 -0400 Subject: [PATCH] P4 to Git Change 1306553 by gandryey@gera-w8 on 2016/08/24 10:48:34 SWDEV-86035 - Use local memory for kernel allocation Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#9 edit [ROCm/clr commit: 1940203fcb6572e137618ba8dd829355afb67816] --- .../clr/rocclr/runtime/device/pal/palkernel.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/pal/palkernel.cpp b/projects/clr/rocclr/runtime/device/pal/palkernel.cpp index f3490f52c9..0f3b84014b 100644 --- a/projects/clr/rocclr/runtime/device/pal/palkernel.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palkernel.cpp @@ -389,16 +389,23 @@ HSAILKernel::aqlCreateHWInfo(amd::hsa::loader::Symbol *sym) // Allocate HW resources for the real program only if (!prog().isNull()) { code_ = new Memory(dev(), amd::alignUp(codeSize_, akc_align)); - Resource::MemoryType type = Resource::RemoteUSWC; + Resource::MemoryType type = Resource::Local; if (flags_.internalKernel_) { type = Resource::RemoteUSWC; } + // Initialize kernel ISA code if (code_ && code_->create(type)) { - address cpuCodePtr = static_cast
(code_->map(nullptr, Resource::WriteOnly)); - // Copy only amd_kernel_code_t - memcpy(cpuCodePtr, reinterpret_cast
(akc), codeSize_); - code_->unmap(nullptr); + if (flags_.internalKernel_) { + address cpuCodePtr = static_cast
(code_->map(nullptr, Resource::WriteOnly)); + // Copy only amd_kernel_code_t + memcpy(cpuCodePtr, reinterpret_cast
(akc), codeSize_); + code_->unmap(nullptr); + } + else { + static_cast(dev().xferMgr()).writeRawData( + *code_, codeSize_, reinterpret_cast(akc)); + } } else { LogError("Failed to allocate ISA code!");