P4 to Git Change 1567428 by gandryey@gera-w8 on 2018/06/12 18:39:23
SWDEV-79445 - OCL generic changes and code clean-up
- Optimize setup of kernel arguments. Stage 2.
- Add HW ABI support in the abstraction layer
- Remove arguments parsing loop from the kernel launch. Memory processing will be responsible for dependency tracking and patching of arguments.
http://ocltc.amd.com/reviews/r/15122/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#221 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#307 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#325 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.cpp#24 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#53 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.hpp#17 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palmemory.hpp#9 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#107 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#53 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#36 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/kernel.cpp#30 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/kernel.hpp#23 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#95 edit
[ROCm/clr commit: 1be400ff01]
Este commit está contenido en:
@@ -243,13 +243,17 @@ void KernelParameters::release(address mem, const amd::Device& device) const {
|
||||
}
|
||||
|
||||
KernelSignature::KernelSignature(const std::vector<KernelParameterDescriptor>& params,
|
||||
const std::string& attrib)
|
||||
const std::string& attrib,
|
||||
const std::vector<KernelParameterDescriptor>& hiddenParams,
|
||||
uint32_t version)
|
||||
: params_(params)
|
||||
, hiddenParams_(hiddenParams)
|
||||
, attributes_(attrib)
|
||||
, paramsSize_(0)
|
||||
, numMemories_(0)
|
||||
, numSamplers_(0)
|
||||
, numQueues_(0) {
|
||||
, numQueues_(0)
|
||||
, version_(version) {
|
||||
size_t maxOffset = 0;
|
||||
size_t last = 0;
|
||||
// Find the last entry
|
||||
@@ -283,7 +287,15 @@ KernelSignature::KernelSignature(const std::vector<KernelParameterDescriptor>& p
|
||||
if (lastSize == 0 /* local mem */) {
|
||||
lastSize = sizeof(cl_mem);
|
||||
}
|
||||
paramsSize_ = params[last].offset_ + alignUp(lastSize, sizeof(intptr_t));
|
||||
// Note: It's a special case. HW ABI expects 64 bit for SRD, regardless of the binary.
|
||||
// Force the size to 64 bit for those cases.
|
||||
if ((params[last].info_.oclObject_ == amd::KernelParameterDescriptor::ImageObject) ||
|
||||
(params[last].info_.oclObject_ == amd::KernelParameterDescriptor::SamplerObject) ||
|
||||
(params[last].info_.oclObject_ == amd::KernelParameterDescriptor::QueueObject)) {
|
||||
lastSize = alignUp(lastSize, sizeof(uint64_t));
|
||||
}
|
||||
paramsSize_ = params[last].offset_ + lastSize;
|
||||
paramsSize_ = alignUp(paramsSize_, sizeof(intptr_t));
|
||||
}
|
||||
}
|
||||
} // namespace amd
|
||||
|
||||
Referencia en una nueva incidencia
Block a user