Add runtime switch to control HIP_ATP_MARKER
Only generate the function strings if requested at
compile-time && runtime.
[ROCm/clr commit: e22925be22]
Šī revīzija ir iekļauta:
@@ -47,7 +47,9 @@ extern const int release;
|
|||||||
extern int HIP_LAUNCH_BLOCKING;
|
extern int HIP_LAUNCH_BLOCKING;
|
||||||
|
|
||||||
extern int HIP_PRINT_ENV;
|
extern int HIP_PRINT_ENV;
|
||||||
|
extern int HIP_ATP_MARKER;
|
||||||
extern int HIP_TRACE_API;
|
extern int HIP_TRACE_API;
|
||||||
|
extern int HIP_ATP;
|
||||||
extern int HIP_DB;
|
extern int HIP_DB;
|
||||||
extern int HIP_STAGING_SIZE; /* size of staging buffers, in KB */
|
extern int HIP_STAGING_SIZE; /* size of staging buffers, in KB */
|
||||||
extern int HIP_STAGING_BUFFERS; // TODO - remove, two buffers should be enough.
|
extern int HIP_STAGING_BUFFERS; // TODO - remove, two buffers should be enough.
|
||||||
@@ -114,8 +116,8 @@ class ihipDevice_t;
|
|||||||
|
|
||||||
// Compile code that generates trace markers for CodeXL ATP at HIP function begin/end.
|
// Compile code that generates trace markers for CodeXL ATP at HIP function begin/end.
|
||||||
// ATP is standard CodeXL format that includes timestamps for kernels, HSA RT APIs, and HIP APIs.
|
// ATP is standard CodeXL format that includes timestamps for kernels, HSA RT APIs, and HIP APIs.
|
||||||
#ifndef COMPILE_TRACE_MARKER
|
#ifndef COMPILE_HIP_ATP_MARKER
|
||||||
#define COMPILE_TRACE_MARKER 0
|
#define COMPILE_HIP_ATP_MARKER 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -126,7 +128,7 @@ class ihipDevice_t;
|
|||||||
// Compile support for trace markers that are displayed on CodeXL GUI at start/stop of each function boundary.
|
// Compile support for trace markers that are displayed on CodeXL GUI at start/stop of each function boundary.
|
||||||
// TODO - currently we print the trace message at the beginning. if we waited, we could also include return codes, and any values returned
|
// TODO - currently we print the trace message at the beginning. if we waited, we could also include return codes, and any values returned
|
||||||
// through ptr-to-args (ie the pointers allocated by hipMalloc).
|
// through ptr-to-args (ie the pointers allocated by hipMalloc).
|
||||||
#if COMPILE_TRACE_MARKER
|
#if COMPILE_HIP_ATP_MARKER
|
||||||
#include "AMDTActivityLogger.h"
|
#include "AMDTActivityLogger.h"
|
||||||
#define SCOPED_MARKER(markerName,group,userString) amdtScopedMarker(markerName, group, userString)
|
#define SCOPED_MARKER(markerName,group,userString) amdtScopedMarker(markerName, group, userString)
|
||||||
#else
|
#else
|
||||||
@@ -135,14 +137,16 @@ class ihipDevice_t;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if COMPILE_TRACE_MARKER || (COMPILE_HIP_TRACE_API & 0x1)
|
#if COMPILE_HIP_ATP_MARKER || (COMPILE_HIP_TRACE_API & 0x1)
|
||||||
#define API_TRACE(...)\
|
#define API_TRACE(...)\
|
||||||
{\
|
{\
|
||||||
std::string s = std::string(__func__) + " (" + ToString(__VA_ARGS__) + ')';\
|
if (HIP_ATP_MARKER || (COMPILE_HIP_DB && HIP_TRACE_API)) {\
|
||||||
if (COMPILE_HIP_DB && HIP_TRACE_API) {\
|
std::string s = std::string(__func__) + " (" + ToString(__VA_ARGS__) + ')';\
|
||||||
fprintf (stderr, API_COLOR "<<hip-api: %s\n" KNRM, s.c_str());\
|
if (COMPILE_HIP_DB && HIP_TRACE_API) {\
|
||||||
|
fprintf (stderr, API_COLOR "<<hip-api: %s\n" KNRM, s.c_str());\
|
||||||
|
}\
|
||||||
|
SCOPED_MARKER(s.c_str(), "HIP", NULL);\
|
||||||
}\
|
}\
|
||||||
SCOPED_MARKER(s.c_str(), "HIP", NULL);\
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
// Swallow API_TRACE
|
// Swallow API_TRACE
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ int HIP_LAUNCH_BLOCKING = 0;
|
|||||||
|
|
||||||
int HIP_PRINT_ENV = 0;
|
int HIP_PRINT_ENV = 0;
|
||||||
int HIP_TRACE_API= 0;
|
int HIP_TRACE_API= 0;
|
||||||
|
int HIP_ATP_MARKER= 0;
|
||||||
int HIP_DB= 0;
|
int HIP_DB= 0;
|
||||||
int HIP_STAGING_SIZE = 64; /* size of staging buffers, in KB */
|
int HIP_STAGING_SIZE = 64; /* size of staging buffers, in KB */
|
||||||
int HIP_STAGING_BUFFERS = 2; // TODO - remove, two buffers should be enough.
|
int HIP_STAGING_BUFFERS = 2; // TODO - remove, two buffers should be enough.
|
||||||
@@ -842,12 +843,12 @@ void ihipInit()
|
|||||||
READ_ENV_I(release, HIP_LAUNCH_BLOCKING, CUDA_LAUNCH_BLOCKING, "Make HIP APIs 'host-synchronous', so they block until any kernel launches or data copy commands complete. Alias: CUDA_LAUNCH_BLOCKING." );
|
READ_ENV_I(release, HIP_LAUNCH_BLOCKING, CUDA_LAUNCH_BLOCKING, "Make HIP APIs 'host-synchronous', so they block until any kernel launches or data copy commands complete. Alias: CUDA_LAUNCH_BLOCKING." );
|
||||||
READ_ENV_I(release, HIP_DB, 0, "Print various debug info. Bitmask, see hip_hcc.cpp for more information.");
|
READ_ENV_I(release, HIP_DB, 0, "Print various debug info. Bitmask, see hip_hcc.cpp for more information.");
|
||||||
if ((HIP_DB & DB_API) && (HIP_TRACE_API == 0)) {
|
if ((HIP_DB & DB_API) && (HIP_TRACE_API == 0)) {
|
||||||
// Set HIP_TRACE_API before we read it, so it is printed correctly.
|
// Set HIP_TRACE_API default before we read it, so it is printed correctly.
|
||||||
HIP_TRACE_API = 1;
|
HIP_TRACE_API = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
READ_ENV_I(release, HIP_TRACE_API, 0, "Trace each HIP API call. Print function name and return code to stderr as program executes.");
|
READ_ENV_I(release, HIP_TRACE_API, 0, "Trace each HIP API call. Print function name and return code to stderr as program executes.");
|
||||||
|
READ_ENV_I(release, HIP_ATP_MARKER, 0, "Add HIP function begin/end to ATP file generated with CodeXL");
|
||||||
READ_ENV_I(release, HIP_STAGING_SIZE, 0, "Size of each staging buffer (in KB)" );
|
READ_ENV_I(release, HIP_STAGING_SIZE, 0, "Size of each staging buffer (in KB)" );
|
||||||
READ_ENV_I(release, HIP_STAGING_BUFFERS, 0, "Number of staging buffers to use in each direction. 0=use hsa_memory_copy.");
|
READ_ENV_I(release, HIP_STAGING_BUFFERS, 0, "Number of staging buffers to use in each direction. 0=use hsa_memory_copy.");
|
||||||
READ_ENV_I(release, HIP_PININPLACE, 0, "For unpinned transfers, pin the memory in-place in chunks before doing the copy. Under development.");
|
READ_ENV_I(release, HIP_PININPLACE, 0, "For unpinned transfers, pin the memory in-place in chunks before doing the copy. Under development.");
|
||||||
@@ -857,6 +858,8 @@ void ihipInit()
|
|||||||
READ_ENV_I(release, HIP_DISABLE_HW_KERNEL_DEP, 0, "Disable HW dependencies before kernel commands - instead wait for dependency on host. -1 means ignore these dependencies. (debug mode)");
|
READ_ENV_I(release, HIP_DISABLE_HW_KERNEL_DEP, 0, "Disable HW dependencies before kernel commands - instead wait for dependency on host. -1 means ignore these dependencies. (debug mode)");
|
||||||
READ_ENV_I(release, HIP_DISABLE_HW_COPY_DEP, 0, "Disable HW dependencies before copy commands - instead wait for dependency on host. -1 means ifnore these dependencies (debug mode)");
|
READ_ENV_I(release, HIP_DISABLE_HW_COPY_DEP, 0, "Disable HW dependencies before copy commands - instead wait for dependency on host. -1 means ifnore these dependencies (debug mode)");
|
||||||
|
|
||||||
|
|
||||||
|
// Some flags have both compile-time and runtime flags - generate a warning if user enables the runtime flag but the compile-time flag is disabled.
|
||||||
if (HIP_DB && !COMPILE_HIP_DB) {
|
if (HIP_DB && !COMPILE_HIP_DB) {
|
||||||
fprintf (stderr, "warning: env var HIP_DB=0x%x but COMPILE_HIP_DB=0. (perhaps enable COMPILE_HIP_DB in src code before compiling?)", HIP_DB);
|
fprintf (stderr, "warning: env var HIP_DB=0x%x but COMPILE_HIP_DB=0. (perhaps enable COMPILE_HIP_DB in src code before compiling?)", HIP_DB);
|
||||||
}
|
}
|
||||||
@@ -865,6 +868,10 @@ void ihipInit()
|
|||||||
fprintf (stderr, "warning: env var HIP_TRACE_API=0x%x but COMPILE_HIP_TRACE_API=0. (perhaps enable COMPILE_HIP_DB in src code before compiling?)", HIP_DB);
|
fprintf (stderr, "warning: env var HIP_TRACE_API=0x%x but COMPILE_HIP_TRACE_API=0. (perhaps enable COMPILE_HIP_DB in src code before compiling?)", HIP_DB);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (HIP_ATP_MARKER && !COMPILE_HIP_ATP_MARKER) {
|
||||||
|
fprintf (stderr, "warning: env var HIP_ATP_MARKER=0x%x but COMPILE_HIP_ATP_MARKER=0. (perhaps enable COMPILE_HIP_DB in src code before compiling?)", HIP_ATP_MARKER);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Build a table of valid compute devices.
|
* Build a table of valid compute devices.
|
||||||
|
|||||||
Atsaukties uz šo jaunā problēmā
Block a user