SWDEV-343921 - added Max stack size
Change-Id: I5c1a088e05215ca951afc9d92f8d298c5e3a65f1
[ROCm/clr commit: 27a08a132f]
This commit is contained in:
committed by
Sarbojit Sarkar
parent
1d2cb0d3e8
commit
a0981a092b
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user