P4 to Git Change 1559096 by gandryey@gera-w8 on 2018/05/24 10:34:47

SWDEV-79445 - OCL generic changes and code clean-up
	- Remove obsolete logic for aliased kernels, since it was a pre-SI optimization

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#418 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#98 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#52 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/kernel.cpp#27 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/kernel.hpp#21 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#93 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.hpp#44 edit


[ROCm/clr commit: bcea58f07f]
Bu işleme şunda yer alıyor:
foreman
2018-05-24 10:45:00 -04:00
ebeveyn cb8920b5e3
işleme eedf013384
7 değiştirilmiş dosya ile 14 ekleme ve 27 silme
+3 -5
Dosyayı Görüntüle
@@ -1879,9 +1879,8 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, const
GpuEvent gpuEvent;
groupOffset = 0;
// Get the GPU kernel object with optimization enabled
bool noAlias = true;
device::Kernel* devKernel = const_cast<device::Kernel*>(kernel.getDeviceKernel(dev(), noAlias));
// Get the GPU kernel object
device::Kernel* devKernel = const_cast<device::Kernel*>(kernel.getDeviceKernel(dev()));
Kernel& gpuKernelOpt = static_cast<gpu::Kernel&>(*devKernel);
if (gpuKernelOpt.hsa()) {
@@ -2922,9 +2921,8 @@ void VirtualGPU::profileEvent(EngineType engine, bool type) const {
bool VirtualGPU::processMemObjectsHSA(const amd::Kernel& kernel, const_address params,
bool nativeMem, std::vector<const Memory*>* memList) {
static const bool NoAlias = true;
const HSAILKernel& hsaKernel =
static_cast<const HSAILKernel&>(*(kernel.getDeviceKernel(dev(), NoAlias)));
static_cast<const HSAILKernel&>(*(kernel.getDeviceKernel(dev())));
const amd::KernelSignature& signature = kernel.signature();
const amd::KernelParameters& kernelParams = kernel.parameters();
+1 -2
Dosyayı Görüntüle
@@ -2905,9 +2905,8 @@ void VirtualGPU::profileEvent(EngineType engine, bool type) const {
bool VirtualGPU::processMemObjectsHSA(const amd::Kernel& kernel, const_address params,
bool nativeMem) {
static const bool NoAlias = true;
const HSAILKernel& hsaKernel =
static_cast<const HSAILKernel&>(*(kernel.getDeviceKernel(dev(), NoAlias)));
static_cast<const HSAILKernel&>(*(kernel.getDeviceKernel(dev())));
const amd::KernelSignature& signature = kernel.signature();
const amd::KernelParameters& kernelParams = kernel.parameters();
std::vector<const Memory*> memList;
+1 -2
Dosyayı Görüntüle
@@ -171,8 +171,7 @@ void VirtualGPU::MemoryDependency::clear(bool all) {
}
bool VirtualGPU::processMemObjects(const amd::Kernel& kernel, const_address params) {
static const bool NoAlias = true;
const Kernel& hsaKernel = static_cast<const Kernel&>(*(kernel.getDeviceKernel(dev(), NoAlias)));
const Kernel& hsaKernel = static_cast<const Kernel&>(*(kernel.getDeviceKernel(dev())));
const amd::KernelSignature& signature = kernel.signature();
const amd::KernelParameters& kernelParams = kernel.parameters();
+2 -2
Dosyayı Görüntüle
@@ -29,8 +29,8 @@ Kernel::~Kernel() {
delete parameters_;
}
const device::Kernel* Kernel::getDeviceKernel(const Device& device, bool noAlias) const {
return symbol_.getDeviceKernel(device, noAlias);
const device::Kernel* Kernel::getDeviceKernel(const Device& device) const {
return symbol_.getDeviceKernel(device);
}
const KernelSignature& Kernel::signature() const { return symbol_.signature(); }
+1 -2
Dosyayı Görüntüle
@@ -273,8 +273,7 @@ class Kernel : public RuntimeObject {
const KernelSignature& signature() const;
//! Return the kernel entry point for the given device.
const device::Kernel* getDeviceKernel(const Device& device, //!< Device object
bool noAlias = true //!< Controls alias optimization
const device::Kernel* getDeviceKernel(const Device& device //!< Device object
) const;
//! Return the parameters.
+4 -9
Dosyayı Görüntüle
@@ -603,22 +603,17 @@ bool Program::ParseAllOptions(const std::string& options, option::Options& parse
return amd::option::parseAllOptions(allOpts, parsedOptions, linkOptsOnly);
}
bool Symbol::setDeviceKernel(const Device& device, const device::Kernel* func, bool noAlias) {
bool Symbol::setDeviceKernel(const Device& device, const device::Kernel* func) {
// FIXME_lmoriche: check that the signatures are compatible
if (deviceKernels_.size() == 0) {
signature_ = func->signature();
}
if (noAlias) {
deviceKernels_[&device] = func;
} else {
devKernelsNoOpt_[&device] = func;
}
deviceKernels_[&device] = func;
return true;
}
const device::Kernel* Symbol::getDeviceKernel(const Device& device, bool noAlias) const {
const devicekernels_t* devKernels = (noAlias) ? &deviceKernels_ : &devKernelsNoOpt_;
const device::Kernel* Symbol::getDeviceKernel(const Device& device) const {
const devicekernels_t* devKernels = &deviceKernels_;
const auto itEnd = devKernels->cend();
auto it = devKernels->find(&device);
if (it != itEnd) {
+2 -5
Dosyayı Görüntüle
@@ -39,7 +39,6 @@ class Symbol : public HeapObject {
private:
devicekernels_t deviceKernels_; //! All device kernels objects.
devicekernels_t devKernelsNoOpt_; //! Kernel objects without optimization
KernelSignature signature_; //! Kernel signature.
public:
@@ -48,13 +47,11 @@ class Symbol : public HeapObject {
//! Set the entry point and check or set the signature.
bool setDeviceKernel(const Device& device, //!< Device object.
const device::Kernel* func, //!< Device kernel object.
bool noAlias = true //!< No-alias optimization
const device::Kernel* func //!< Device kernel object.
);
//! Return the device kernel.
const device::Kernel* getDeviceKernel(const Device& device, //!< Device object.
bool noAlias = true //!< No-alias optimization
const device::Kernel* getDeviceKernel(const Device& device //!< Device object.
) const;
//! Return this Symbol's signature.