SWDEV-404921 - Add dynamic LDS size hidden kernel argument

Change-Id: If99019058e4bfdc988ef5fc4cef001b772380453
This commit is contained in:
ksankisa
2023-08-30 10:58:06 +05:30
والد c398c75512
کامیت f554a075c7
4فایلهای تغییر یافته به همراه11 افزوده شده و 2 حذف شده
@@ -129,6 +129,7 @@ static amd_comgr_status_t populateArgs(const amd_comgr_metadata_node_t key,
case amd::KernelParameterDescriptor::HiddenDefaultQueue:
case amd::KernelParameterDescriptor::HiddenCompletionAction:
case amd::KernelParameterDescriptor::HiddenMultiGridSync:
case amd::KernelParameterDescriptor::HiddenDynamicLdsSize:
case amd::KernelParameterDescriptor::HiddenNone:
lcArg->info_.hidden_ = true;
break;
+4 -2
مشاهده پرونده
@@ -64,7 +64,8 @@ struct KernelParameterDescriptor {
HiddenPrivateBase = 27,
HiddenSharedBase = 28,
HiddenQueuePtr = 29,
HiddenLast = 30
HiddenDynamicLdsSize = 30,
HiddenLast = 31
};
clk_value_type_t type_; //!< The parameter's type
size_t offset_; //!< Its offset in the parameter's stack
@@ -292,7 +293,8 @@ static const std::map<std::string, uint32_t> ArgValueKindV3 = {
{"hidden_grid_dims", amd::KernelParameterDescriptor::HiddenGridDims},
{"hidden_private_base", amd::KernelParameterDescriptor::HiddenPrivateBase},
{"hidden_shared_base", amd::KernelParameterDescriptor::HiddenSharedBase},
{"hidden_queue_ptr", amd::KernelParameterDescriptor::HiddenQueuePtr}
{"hidden_queue_ptr", amd::KernelParameterDescriptor::HiddenQueuePtr},
{"hidden_dynamic_lds_size", amd::KernelParameterDescriptor::HiddenDynamicLdsSize}
};
static const std::map<std::string, cl_kernel_arg_access_qualifier> ArgAccQualV3 = {
@@ -439,6 +439,9 @@ hsa_kernel_dispatch_packet_t* HSAILKernel::loadArguments(
// @note: It's not a real AQL queue
WriteAqlArgAt(hidden_arguments, gpu.hsaQueueMem()->vmAddress(), it.size_, it.offset_);
break;
case amd::KernelParameterDescriptor::HiddenDynamicLdsSize:
WriteAqlArgAt(hidden_arguments, ldsAddress - ldsSize(), it.size_, it.offset_);
break;
}
}
@@ -3208,6 +3208,9 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes,
case amd::KernelParameterDescriptor::HiddenQueuePtr:
WriteAqlArgAt(hidden_arguments, gpu_queue_, it.size_, it.offset_);
break;
case amd::KernelParameterDescriptor::HiddenDynamicLdsSize:
WriteAqlArgAt(hidden_arguments, sharedMemBytes, it.size_, it.offset_);
break;
}
}