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!");