@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/python
|
||||
from __future__ import print_function
|
||||
import os, sys, re
|
||||
|
||||
OUT='inc/hsa_prof_str.h'
|
||||
@@ -36,7 +37,7 @@ LICENSE = \
|
||||
#############################################################
|
||||
# Error handler
|
||||
def fatal(module, msg):
|
||||
print >>sys.stderr, module + ' Error: "' + msg + '"'
|
||||
print (module + ' Error: "' + msg + '"', file = sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# Get next text block
|
||||
@@ -490,7 +491,7 @@ class API_DescrParser:
|
||||
# main
|
||||
# Usage
|
||||
if len(sys.argv) != 3:
|
||||
print >>sys.stderr, "Usage:", sys.argv[0], " <rocTracer root> <HSA runtime include path>"
|
||||
print ("Usage:", sys.argv[0], " <rocTracer root> <HSA runtime include path>", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
ROOT = sys.argv[1] + '/'
|
||||
@@ -499,7 +500,7 @@ else:
|
||||
descr = API_DescrParser(OUT, HSA_DIR, API_TABLES_H, API_HEADERS_H, LICENSE)
|
||||
|
||||
out_file = ROOT + OUT
|
||||
print 'Generating "' + out_file + '"'
|
||||
print ('Generating "' + out_file + '"')
|
||||
f = open(out_file, 'w')
|
||||
f.write(descr.content[:-1])
|
||||
f.close()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/python
|
||||
from __future__ import print_function
|
||||
import os, sys, re
|
||||
|
||||
OUT_H = 'inc/kfd_prof_str.h'
|
||||
@@ -33,7 +34,7 @@ LICENSE = \
|
||||
#############################################################
|
||||
# Error handler
|
||||
def fatal(module, msg):
|
||||
print >>sys.stderr, module + ' Error: "' + msg + '"'
|
||||
print (module + ' Error: "' + msg + '"', file = sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# Get next text block
|
||||
@@ -539,7 +540,7 @@ class API_DescrParser:
|
||||
# main
|
||||
# Usage
|
||||
if len(sys.argv) != 3:
|
||||
print >>sys.stderr, "Usage:", sys.argv[0], " <rocTracer root> <KFD include path>"
|
||||
print ("Usage:", sys.argv[0], " <rocTracer root> <KFD include path>", file = sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
ROOT = sys.argv[1] + '/'
|
||||
@@ -548,13 +549,13 @@ else:
|
||||
descr = API_DescrParser(OUT_H, KFD_DIR, API_HEADERS_H, LICENSE)
|
||||
|
||||
out_file = ROOT + OUT_H
|
||||
print 'Generating "' + out_file + '"'
|
||||
print ('Generating "' + out_file + '"')
|
||||
f = open(out_file, 'w')
|
||||
f.write(descr.content_h[:-1])
|
||||
f.close()
|
||||
|
||||
out_file = ROOT + OUT_CPP
|
||||
print 'Generating "' + out_file + '"'
|
||||
print ('Generating "' + out_file + '"')
|
||||
f = open(out_file, 'w')
|
||||
f.write(descr.content_cpp[:-1])
|
||||
f.close()
|
||||
|
||||
@@ -47,7 +47,7 @@ class Journal {
|
||||
}
|
||||
|
||||
~Journal() {
|
||||
for (auto& val : map_) delete val.second;
|
||||
for (auto& val : *map_) delete val.second;
|
||||
delete map_;
|
||||
}
|
||||
|
||||
|
||||
@@ -686,8 +686,8 @@ static void roctracer_enable_callback_impl(
|
||||
roctracer_rtapi_callback_t callback,
|
||||
void* user_data)
|
||||
{
|
||||
roctracer::cb_journal->registr({domain, op, {callback, user_data}});
|
||||
roctracer_enable_callback_fun((roctracer_domain_t)domain, op, callback, user_data);
|
||||
roctracer::cb_journal->registr({domain, op, {callback, user_data}});
|
||||
roctracer_enable_callback_fun((roctracer_domain_t)domain, op, callback, user_data);
|
||||
}
|
||||
|
||||
PUBLIC_API roctracer_status_t roctracer_enable_op_callback(
|
||||
@@ -1152,46 +1152,45 @@ PUBLIC_API roctracer_status_t roctracer_set_properties(
|
||||
API_METHOD_SUFFIX
|
||||
}
|
||||
|
||||
static bool is_loaded = false;
|
||||
|
||||
PUBLIC_API bool roctracer_load() {
|
||||
static bool is_loaded = false;
|
||||
ONLOAD_TRACE("begin, loaded(" << is_loaded << ")");
|
||||
|
||||
if (is_loaded) return true;
|
||||
if (is_loaded == true) return true;
|
||||
is_loaded = true;
|
||||
|
||||
if (roctracer::cb_journal == NULL) roctracer::cb_journal = new roctracer::CbJournal;
|
||||
if (roctracer::act_journal == NULL) roctracer::act_journal = new roctracer::ActJournal;
|
||||
|
||||
ONLOAD_TRACE_END();
|
||||
return true;
|
||||
}
|
||||
|
||||
PUBLIC_API void roctracer_unload() {
|
||||
static bool is_unloaded = false;
|
||||
ONLOAD_TRACE("begin, unloaded(" << is_unloaded << ")");
|
||||
ONLOAD_TRACE("begin, loaded(" << is_loaded << ")");
|
||||
|
||||
if (is_unloaded == true) return;
|
||||
is_unloaded = true;
|
||||
if (is_loaded == false) return;
|
||||
is_loaded = false;
|
||||
|
||||
if (roctracer::cb_journal != NULL) {
|
||||
delete roctracer::cb_journal;
|
||||
roctracer::cb_journal = NULL;
|
||||
}
|
||||
if (roctracer::act_journal != NULL) {
|
||||
delete roctracer::act_journal;
|
||||
roctracer::act_journal = NULL;
|
||||
}
|
||||
|
||||
roctracer::trace_buffer.Flush();
|
||||
roctracer::close_output_file(roctracer::kernel_file_handle);
|
||||
ONLOAD_TRACE_END();
|
||||
}
|
||||
|
||||
// HSA-runtime tool on-load/unload methods
|
||||
PUBLIC_API bool OnLoad(HsaApiTable* table, uint64_t runtime_version, uint64_t failed_tool_count,
|
||||
const char* const* failed_tool_names) {
|
||||
ONLOAD_TRACE_BEG();
|
||||
const bool ret = roctracer_load();
|
||||
ONLOAD_TRACE_END();
|
||||
return ret;
|
||||
}
|
||||
PUBLIC_API void OnUnload() {
|
||||
ONLOAD_TRACE("done");
|
||||
}
|
||||
|
||||
CONSTRUCTOR_API void constructor() {
|
||||
ONLOAD_TRACE_BEG();
|
||||
roctracer::util::Logger::Create();
|
||||
if (roctracer::cb_journal == NULL) roctracer::cb_journal = new roctracer::CbJournal;
|
||||
if (roctracer::act_journal == NULL) roctracer::act_journal = new roctracer::ActJournal;
|
||||
roctracer_load();
|
||||
ONLOAD_TRACE_END();
|
||||
}
|
||||
|
||||
|
||||
@@ -585,19 +585,18 @@ void open_tracing_pool() {
|
||||
void close_tracing_pool() {
|
||||
if (roctracer_default_pool() != NULL) {
|
||||
ROCTRACER_CALL(roctracer_flush_activity());
|
||||
ROCTRACER_CALL(roctracer_close_pool());
|
||||
}
|
||||
}
|
||||
|
||||
// tool library is loaded
|
||||
static bool is_loaded = false;
|
||||
|
||||
// tool unload method
|
||||
void tool_unload() {
|
||||
static bool is_unloaded = false;
|
||||
ONLOAD_TRACE("begin, unloaded(" << is_unloaded << ")");
|
||||
ONLOAD_TRACE("begin, loaded(" << is_loaded << ")");
|
||||
|
||||
if (is_unloaded == true) return;
|
||||
is_unloaded = true;
|
||||
|
||||
roctracer_unload();
|
||||
if (is_loaded == false) return;
|
||||
is_loaded = false;
|
||||
|
||||
if (trace_roctx) {
|
||||
ROCTRACER_CALL(roctracer_disable_domain_callback(ACTIVITY_DOMAIN_ROCTX));
|
||||
@@ -627,12 +626,13 @@ void tool_unload() {
|
||||
|
||||
// tool load method
|
||||
void tool_load() {
|
||||
static bool is_loaded = false;
|
||||
ONLOAD_TRACE("begin, loaded(" << is_loaded << ")");
|
||||
|
||||
if (is_loaded == true) return;
|
||||
is_loaded = true;
|
||||
|
||||
roctracer::TraceBufferBase::StartWorkerThreadAll();
|
||||
|
||||
// Output file
|
||||
const char* output_prefix = getenv("ROCP_OUTPUT_DIR");
|
||||
if (output_prefix != NULL) {
|
||||
@@ -817,9 +817,6 @@ void tool_load() {
|
||||
printf(")\n");
|
||||
}
|
||||
|
||||
roctracer::TraceBufferBase::StartWorkerThreadAll();
|
||||
roctracer_load();
|
||||
|
||||
ONLOAD_TRACE_END();
|
||||
}
|
||||
|
||||
|
||||
Αναφορά σε νέο ζήτημα
Block a user