SWDEV-282961 Skip barrier events. Process hipMemSet events

Marker events inside hcc_ops_trace.txt are from barriers so they are not meant to be stored in ops_patch_data map.
Added support for hipMemset events which are a kind of memory copy.

Change-Id: I213fe959bcd35ff0371613ba5bffd95bc53e06b5
This commit is contained in:
rachida
2021-05-18 20:11:48 -04:00
orang tua 6da2b19562
melakukan caa5f32300
+9 -6
Melihat File
@@ -354,7 +354,7 @@ def fill_api_db(table_name, db, indir, api_name, api_pid, dep_pid, dep_list, dep
copy_index = 0
ptrn_val = re.compile(r'(\d+):(\d+) (\d+):(\d+) ([^\(]+)(\(.*)$')
hip_mcopy_ptrn = re.compile(r'hipMemcpy')
hip_mcopy_ptrn = re.compile(r'hipMemcpy|hipMemset')
hip_wait_event_ptrn = re.compile(r'WaitEvent')
hip_sync_event_ptrn = re.compile(r'hipStreamSynchronize')
hip_sync_dev_event_ptrn = re.compile(r'hipDeviceSynchronize')
@@ -430,7 +430,6 @@ def fill_api_db(table_name, db, indir, api_name, api_pid, dep_pid, dep_list, dep
if corr_id == 0: corr_id = record_id
rec_vals.append(corr_id)
# extracting/converting stream id
(stream_id, stream_found) = get_field(record_args, 'stream')
if stream_found == 0:
@@ -489,9 +488,6 @@ def fill_api_db(table_name, db, indir, api_name, api_pid, dep_pid, dep_list, dep
mcopy_found = 1
op_found = 1
if op_found:
ops_patch_data[(corr_id, proc_id)] = (thread_id, stream_id, kernel_str)
# HIP WaitEvent API
if wait_event_ptrn.search(record_name):
op_found = 1
@@ -505,6 +501,9 @@ def fill_api_db(table_name, db, indir, api_name, api_pid, dep_pid, dep_list, dep
hsa_patch_data[(copy_index, proc_id)] = thread_id
copy_index += 1
if op_found:
ops_patch_data[(corr_id, proc_id)] = (thread_id, stream_id, kernel_str)
if op_found:
op_found = 0
beg_ns = int(rec_vals[0])
@@ -650,6 +649,7 @@ def fill_ops_db(kernel_table_name, mcopy_table_name, db, indir):
proc_id = int(m.group(3))
# checking name for memcopy pattern
is_barrier = 0
if ptrn_mcopy.search(name):
rec_table_name = mcopy_table_name
table_handle = mcopy_table_handle
@@ -664,6 +664,7 @@ def fill_ops_db(kernel_table_name, mcopy_table_name, db, indir):
if ptrn_barrier.search(name):
name = '"<barrier packet>"'
is_barrier = 1
thread_id = 0
stream_id = 0
@@ -671,7 +672,8 @@ def fill_ops_db(kernel_table_name, mcopy_table_name, db, indir):
(thread_id, stream_id, name_patch) = ops_patch_data[(corr_id, proc_id)]
if name_patch != '': name = name_patch
else:
fatal("hcc ops data not found: '" + record + "', " + str(corr_id) + ", " + str(proc_id))
if is_barrier: continue
else: fatal("hcc ops data not found: '" + record + "', " + str(corr_id) + ", " + str(proc_id))
# activity record
rec_vals[4] = name # Name
@@ -878,3 +880,4 @@ else:
sys.exit(0)
#############################################################