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
このコミットが含まれているのは:
1 親
077311153a
コミット
1ec0ba3537
2ファイル変更
+7
-5
検索条件に一致するファイルはありません
@@ -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();
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする