Skip to content

add a control to find unique log and report file names #384

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,10 @@ The most likely cause of this issue is an application that loads and unloads the
When this occurs, the report file will only contain data collected between the last time the OpenCL Intercept Layer was loaded and unloaded, which could be no data at all.

To determine if this issue is occurring, and to work around the issue if it is occurring, set the `AppendFiles` control.
`AppendFiles` causes logs and reports to append to an existing file instead of overwriting the file each time the OpenCL Intercept Layer is unloaded, preserving log or report data even when the OpenCL Intercept Layer is loaded and unloaded multiple times.
`AppendFiles` causes logs and reports to append to an existing file instead of overwriting the file each time the OpenCL Intercept Layer is loaded, preserving log or report data even when the OpenCL Intercept Layer is loaded and unloaded multiple times.

For another option, set the `UniqueFiles` control.
`UniqueFiles` will find a unique file name for each log and report file instead of overwriting the file each time the OpenCL Intercept Layer is loaded.

## How can I debug or analyze multiple instances of an application?

Expand Down
32 changes: 18 additions & 14 deletions docs/controls.md

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions docs/injecting_programs.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,23 @@ that this is a subdirectory of the dump directory.
If the application compiles programs deterministically the program(s) or program
options can be copied unchanged. If the application compiles programs
non-deterministically, you may need rename the programs to modify to remove the
program number or compile count from the filename.
program number or compile count from the file name.

The Intercept Layer for OpenCL Applications searches for program source filenames
to inject in this order:

* `CLI_<program number>_<hash>_source.cl` - This is the default filename dumped
* `CLI_<program number>_<hash>_source.cl` - This is the default file name dumped
by DumpProgramSource.
* `CLI_<hash>_source.cl` - This is the default filename with the program number
* `CLI_<hash>_source.cl` - This is the default file name with the program number
removed, so the order the application calls clCreateProgramWithSource() does
not matter.

The Intercept Layer for OpenCL Applications searches for program option filenames
to inject in this order:

* `CLI_<program number>_<hash>_<count>_options.txt` - This is the default filename
* `CLI_<program number>_<hash>_<count>_options.txt` - This is the default file name
dumped by DumpProgramSource.
* `CLI_<hash>_<count>_options.txt` - This is the default filename with the program
* `CLI_<hash>_<count>_options.txt` - This is the default file name with the program
number removed, so the order the application calls clCreateProgramWithSource()
does not matter.
* `CLI_<hash>_options.txt` - This has both the program number and compile count
Expand Down
2 changes: 2 additions & 0 deletions intercept/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ set(CLINTERCEPT_SOURCE_FILES
src/main.cpp
src/objtracker.cpp
src/objtracker.h
src/utils.cpp
src/utils.h
"${CMAKE_CURRENT_BINARY_DIR}/git_version.cpp"
)
source_group(Source FILES
Expand Down
2 changes: 1 addition & 1 deletion intercept/OS/OS_linux.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class Services : public Services_Common
size_t& length ) const;

bool ExecuteCommand(
const std::string& filename ) const;
const std::string& fileName ) const;
bool StartAubCapture(
const std::string& fileName,
uint64_t delay ) const;
Expand Down
2 changes: 1 addition & 1 deletion intercept/OS/OS_mac.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class Services : public Services_Common
size_t& length ) const;

bool ExecuteCommand(
const std::string& filename ) const;
const std::string& fileName ) const;
bool StartAubCapture(
const std::string& fileName,
uint64_t delay ) const;
Expand Down
2 changes: 1 addition & 1 deletion intercept/OS/OS_windows.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class Services : public Services_Common
size_t& length ) const;

bool ExecuteCommand(
const std::string& filename ) const;
const std::string& fileName ) const;
bool StartAubCapture(
const std::string& fileName,
uint64_t delay ) const;
Expand Down
7 changes: 6 additions & 1 deletion intercept/mdapi/intercept_mdapi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

#include "common.h"
#include "intercept.h"
#include "utils.h"

#define CL_PROFILING_COMMAND_PERFCOUNTERS_INTEL 0x407F

Expand Down Expand Up @@ -202,12 +203,16 @@ void CLIntercept::initCustomPerfCounters()
std::string fileName = "";
OS().GetDumpDirectoryName( sc_DumpDirectoryName, fileName );
fileName += '/';
fileName += sc_DumpPerfCountersFileNamePrefix;
fileName += sc_PerfCountersFileNamePrefix;
fileName += "_";
fileName += metricSetSymbolName;
fileName += ".csv";

OS().MakeDumpDirectories( fileName );
if( m_Config.UniqueFiles )
{
fileName = Utils::GetUniqueFileName(fileName);
}

m_MetricDump.open( fileName.c_str(), std::ios::out | std::ios::binary );

Expand Down
4 changes: 2 additions & 2 deletions intercept/scripts/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
from collections import defaultdict

def get_image_metadata(idx: int):
filename = f"./Image_MetaData_{idx}.txt"
with open(filename) as metadata:
fileName = f"./Image_MetaData_{idx}.txt"
with open(fileName) as metadata:
lines = metadata.readlines()

image_type = int(lines[8])
Expand Down
Loading