Skip to content

change inductor_provenance to be on by default #105

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
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
4 changes: 0 additions & 4 deletions src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,6 @@ pub struct Cli {
/// For export specific logs
#[arg(short, long)]
export: bool,
/// For inductor provenance tracking highlighter
#[arg(short, long)]
inductor_provenance: bool,
}

fn main() -> anyhow::Result<()> {
Expand Down Expand Up @@ -96,7 +93,6 @@ fn main() -> anyhow::Result<()> {
verbose: cli.verbose,
plain_text: cli.plain_text,
export: cli.export,
inductor_provenance: cli.inductor_provenance,
};

let output = parse_path(&path, config)?;
Expand Down
102 changes: 50 additions & 52 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ pub struct ParseConfig {
pub verbose: bool,
pub plain_text: bool,
pub export: bool,
pub inductor_provenance: bool,
}

impl Default for ParseConfig {
Expand All @@ -42,7 +41,6 @@ impl Default for ParseConfig {
verbose: false,
plain_text: false,
export: false,
inductor_provenance: false,
}
}
}
Expand Down Expand Up @@ -793,7 +791,10 @@ pub fn parse_path(path: &PathBuf, config: ParseConfig) -> anyhow::Result<ParseOu
num_breaks: breaks.failures.len(),
has_chromium_events: !chromium_events.is_empty(),
qps: TEMPLATE_QUERY_PARAM_SCRIPT,
has_inductor_provenance: config.inductor_provenance,
has_inductor_provenance: output.iter().any(|(path, _)| {
path.to_string_lossy()
.contains("inductor_provenance_tracking_node_mappings")
}),
directory_names: directory_names.clone(),
};
output.push((
Expand Down Expand Up @@ -822,57 +823,54 @@ pub fn parse_path(path: &PathBuf, config: ParseConfig) -> anyhow::Result<ParseOu
return Err(anyhow!("Some log entries did not have compile id"));
}

if config.inductor_provenance {
// Helper function to get file content for a specific directory name
fn get_file_content(
output: &[(PathBuf, String)],
filename_pattern: &str,
directory_name: &str,
) -> String {
// get the last file that include the filename_pattern in the output
output
.iter()
.rev()
.find(|(path, _)| {
path.to_string_lossy()
.contains(&format!("{}/{}", directory_name, filename_pattern))
})
.map(|(_, content)| content.clone())
.unwrap_or_default()
}
// Helper function to get file content for a specific directory name
fn get_file_content(
output: &[(PathBuf, String)],
filename_pattern: &str,
directory_name: &str,
) -> String {
// get the last file that include the filename_pattern in the output
output
.iter()
.rev()
.find(|(path, _)| {
path.to_string_lossy()
.contains(&format!("{}/{}", directory_name, filename_pattern))
})
.map(|(_, content)| content.clone())
.unwrap_or_default()
}

// Generate HTML for each directory name
for directory_name in &directory_names {
let pre_grad_graph_content =
get_file_content(&output, "inductor_pre_grad_graph", directory_name);
let post_grad_graph_content =
get_file_content(&output, "inductor_post_grad_graph", directory_name);
let output_code_content =
get_file_content(&output, "inductor_output_code", directory_name);
let aot_code_content =
get_file_content(&output, "inductor_aot_wrapper_code", directory_name);
let node_mappings_content = get_file_content(
&output,
"inductor_provenance_tracking_node_mappings",
directory_name,
);
// Generate Inductor Provenance Tracking HTML for each directory name
for directory_name in &directory_names {
let pre_grad_graph_content =
get_file_content(&output, "inductor_pre_grad_graph", directory_name);
let post_grad_graph_content =
get_file_content(&output, "inductor_post_grad_graph", directory_name);
let output_code_content = get_file_content(&output, "inductor_output_code", directory_name);
let aot_code_content =
get_file_content(&output, "inductor_aot_wrapper_code", directory_name);
let node_mappings_content = get_file_content(
&output,
"inductor_provenance_tracking_node_mappings",
directory_name,
);

output.push((
PathBuf::from(format!("provenance_tracking_{}.html", directory_name)),
tt.render(
"provenance_tracking.html",
&ProvenanceContext {
css: PROVENANCE_CSS,
js: PROVENANCE_JS,
pre_grad_graph_content,
post_grad_graph_content,
output_code_content,
aot_code_content,
node_mappings_content,
},
)?,
));
}
output.push((
PathBuf::from(format!("provenance_tracking_{}.html", directory_name)),
tt.render(
"provenance_tracking.html",
&ProvenanceContext {
css: PROVENANCE_CSS,
js: PROVENANCE_JS,
pre_grad_graph_content,
post_grad_graph_content,
output_code_content,
aot_code_content,
node_mappings_content,
},
)?,
));
}

Ok(output)
Expand Down
1 change: 0 additions & 1 deletion tests/integration_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,6 @@ fn test_provenance_tracking() {
// Read the test file
let path = Path::new("tests/inputs/inductor_provenance_aot_cuda_log.txt").to_path_buf();
let config = tlparse::ParseConfig {
inductor_provenance: true,
..Default::default()
};
let output = tlparse::parse_path(&path, config);
Expand Down
Loading