SWDEV-301667 - Use large signal pool
Use large signal pool if profiler is connected or profiling forced
enabled. This is needed to mitigate signal creation overhead when
profiling as signals are attached to every packet and deeper batch may
show overhead of signal allocation.
Change-Id: I8034b8a20b55328b87d593bf044f59672f9653e8
[ROCm/clr commit: 1ec0ba3537]
This commit is contained in:
1 parent
3f4bbcfdba
commit
0a26b75238
2 files changed
+7
-5
No files matched your search
@@ -341,6 +341,9 @@ VirtualGPU::HwQueueTracker::~HwQueueTracker() {
|
||||
// ================================================================================================
|
||||
bool VirtualGPU::HwQueueTracker::Create() {
|
||||
uint kSignalListSize = ROC_SIGNAL_POOL_SIZE;
|
||||
if (activity_prof::IsEnabled(OP_ID_DISPATCH) || gpu_.profiling_) {
|
||||
kSignalListSize = !flagIsDefault(ROC_SIGNAL_POOL_SIZE) ? ROC_SIGNAL_POOL_SIZE : 4 * Ki;
|
||||
}
|
||||
signal_list_.resize(kSignalListSize);
|
||||
|
||||
hsa_agent_t agent = gpu_.gpu_device();
|
||||
|
||||
@@ -42,6 +42,9 @@ HostQueue::HostQueue(Context& context, Device& device, cl_command_queue_properti
|
||||
tail_(nullptr),
|
||||
isActive_(false),
|
||||
markerTsCount_(0) {
|
||||
if (GPU_FORCE_QUEUE_PROFILING) {
|
||||
properties().set(CL_QUEUE_PROFILING_ENABLE);
|
||||
}
|
||||
if (AMD_DIRECT_DISPATCH) {
|
||||
// Initialize the queue
|
||||
thread_.Init(this);
|
||||
@@ -52,10 +55,6 @@ HostQueue::HostQueue(Context& context, Device& device, cl_command_queue_properti
|
||||
queueLock_.wait();
|
||||
}
|
||||
}
|
||||
|
||||
if (GPU_FORCE_QUEUE_PROFILING) {
|
||||
properties().set(CL_QUEUE_PROFILING_ENABLE);
|
||||
}
|
||||
}
|
||||
|
||||
bool HostQueue::terminate() {
|
||||
@@ -239,7 +238,7 @@ void HostQueue::append(Command& command) {
|
||||
|
||||
// Set last submitted command
|
||||
Command* prevLastEnqueueCommand = nullptr;
|
||||
|
||||
|
||||
// Attach only real commands and skip internal notifications for CPU queue
|
||||
if (command.waitingEvent() == nullptr) {
|
||||
command.retain();
|
||||
|
||||
Reference in new issue
Block a user