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
Этот коммит содержится в:
Saleel Kudchadker
2023-08-24 17:36:00 +00:00
родитель 077311153a
Коммит 1ec0ba3537
2 изменённых файлов: 7 добавлений и 5 удалений
+3
Просмотреть файл
@@ -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();
+4 -5
Просмотреть файл
@@ -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();