Optimize rotcx markers

Improve the roctx markers performance when the tracer is not engaged
(the application is not running with rocprof).

The performance of roctx push/pop, measured with:

-----------------------------------------------------------------------
  auto start = std::chrono::steady_clock::now();
  for (int i = 0; i < 10000000; ++i) {
    roctxRangePush ("A");
    roctxRangePop ();
  }
  auto end = std::chrono::steady_clock::now();
  std::cout << "ns = " << std::chrono::nanoseconds(end - start).count()
      / 10000000 << std::endl;
-----------------------------------------------------------------------

w/o rocprof | with rocprof | commit
       92ns |       770ns  | 0d6e132: Cleanup CallbackTable::Get
       28ns |       712ns  | 6421bd5: Cleanup ROCTX's implementation
       20ns |       664ns  | 7f0e5e5: Remove the roctx range message...
        6ns |       665ns  | this commit

Change-Id: Id679dcbd0fb190a3179be98a9b2c1db151efee3d
This commit is contained in:
Laurent Morichetti
2022-05-06 19:46:09 -07:00
parent 3d0198c395
commit a794247c55
3 changed files with 33 additions and 40 deletions
+1 -1
View File
@@ -395,7 +395,7 @@ class API_DescrParser:
# generate API callbacks
def gen_callbacks(self, n, name, call, struct):
if n == -1:
self.content += 'typedef CallbackTable<HSA_API_ID_NUMBER> cb_table_t;\n'
self.content += 'typedef CallbackTable<ACTIVITY_DOMAIN_HSA_API, HSA_API_ID_NUMBER> cb_table_t;\n'
self.content += 'extern cb_table_t cb_table;\n'
self.content += '\n'
if call != '-':