SWDEV-343921 - added Max stack size

Change-Id: I5c1a088e05215ca951afc9d92f8d298c5e3a65f1


[ROCm/clr commit: 27a08a132f]
This commit is contained in:
Sarbojit Sarkar
2022-07-18 07:37:16 +00:00
committed by Sarbojit Sarkar
parent 1d2cb0d3e8
commit a0981a092b
3 changed files with 7 additions and 8 deletions
+1 -2
View File
@@ -737,8 +737,7 @@ bool Device::disableP2P(amd::Device* ptrDev) {
}
bool Device::UpdateStackSize(uint64_t stackSize) {
uint32_t maxMemPerThread = info().localMemSizePerCU_ / info().maxThreadsPerCU_;
if (maxMemPerThread < stackSize) {
if (stackSize > 16 * Ki) {
return false;
}
stack_size_ = stackSize;
+2 -2
View File
@@ -1972,8 +1972,8 @@ class Device : public RuntimeObject {
std::once_flag heap_initialized_; //!< Heap buffer initialization flag
device::Memory* heap_buffer_; //!< Preallocated heap buffer for memory allocations on device
amd::Memory* arena_mem_obj_; //!< Arena memory object
uint64_t stack_size_{0}; //!< Device stack size
amd::Memory* arena_mem_obj_; //!< Arena memory object
uint64_t stack_size_{1024}; //!< Device stack size
private:
const Isa *isa_; //!< Device isa
@@ -2972,10 +2972,10 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes,
dispatchPacket.private_segment_size = devKernel->workGroupInfo()->privateMemSize_;
if ((devKernel->workGroupInfo()->usedStackSize_ & 0x1) == 0x1) {
dispatchPacket.private_segment_size += dev().StackSize();
uint32_t maxMemPerThread = device().info().localMemSizePerCU_ / device().info().maxThreadsPerCU_;
if (dispatchPacket.private_segment_size > maxMemPerThread) {
dispatchPacket.private_segment_size = maxMemPerThread;
dispatchPacket.private_segment_size =
std::max<uint64_t>(dev().StackSize(), dispatchPacket.private_segment_size);
if (dispatchPacket.private_segment_size > 16 * Ki) {
dispatchPacket.private_segment_size = 16 * Ki;
}
}