mirror of
https://github.com/vosen/ZLUDA.git
synced 2025-09-27 11:49:04 +00:00
Filter enqueues to be saved
This commit is contained in:
parent
f3e143d8dd
commit
3289d92f59
3 changed files with 22 additions and 0 deletions
|
@ -1280,6 +1280,7 @@ struct Settings {
|
||||||
dump_dir: Option<PathBuf>,
|
dump_dir: Option<PathBuf>,
|
||||||
libcuda_path: String,
|
libcuda_path: String,
|
||||||
override_cc: Option<(u32, u32)>,
|
override_cc: Option<(u32, u32)>,
|
||||||
|
kernel_name_filter: Option<regex::Regex>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Settings {
|
impl Settings {
|
||||||
|
@ -1328,10 +1329,25 @@ impl Settings {
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
let kernel_name_filter = match env::var("ZLUDA_SAVE_KERNELS") {
|
||||||
|
Err(env::VarError::NotPresent) => None,
|
||||||
|
Err(e) => {
|
||||||
|
logger.log(log::ErrorEntry::ErrorBox(Box::new(e) as _));
|
||||||
|
None
|
||||||
|
}
|
||||||
|
Ok(env_string) => logger.try_return(|| {
|
||||||
|
regex::Regex::new(&env_string).map_err(|e| ErrorEntry::InvalidEnvVar {
|
||||||
|
var: "ZLUDA_SAVE_KERNELS",
|
||||||
|
pattern: "valid regex",
|
||||||
|
value: format!("{} ({})", env_string, e),
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
};
|
||||||
Settings {
|
Settings {
|
||||||
dump_dir,
|
dump_dir,
|
||||||
libcuda_path,
|
libcuda_path,
|
||||||
override_cc,
|
override_cc,
|
||||||
|
kernel_name_filter,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,10 @@ pub(crate) fn pre_kernel_launch(
|
||||||
.get(&f)
|
.get(&f)
|
||||||
.ok_or(ErrorEntry::UnknownFunctionHandle(f))
|
.ok_or(ErrorEntry::UnknownFunctionHandle(f))
|
||||||
})?;
|
})?;
|
||||||
|
let kernel_name_filter = state.kernel_name_filter.as_ref()?;
|
||||||
|
if !kernel_name_filter.is_match(name) {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
let ParsedModule { source, kernels } = fn_logger.try_return(|| {
|
let ParsedModule { source, kernels } = fn_logger.try_return(|| {
|
||||||
state
|
state
|
||||||
.parsed_libraries
|
.parsed_libraries
|
||||||
|
|
|
@ -27,6 +27,7 @@ pub(crate) struct StateTracker {
|
||||||
library_counter: usize,
|
library_counter: usize,
|
||||||
pub(crate) enqueue_counter: usize,
|
pub(crate) enqueue_counter: usize,
|
||||||
pub(crate) override_cc: Option<(u32, u32)>,
|
pub(crate) override_cc: Option<(u32, u32)>,
|
||||||
|
pub(crate) kernel_name_filter: Option<regex::Regex>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) struct ParsedModule {
|
pub(crate) struct ParsedModule {
|
||||||
|
@ -55,6 +56,7 @@ impl StateTracker {
|
||||||
library_counter: 0,
|
library_counter: 0,
|
||||||
enqueue_counter: 0,
|
enqueue_counter: 0,
|
||||||
override_cc: settings.override_cc,
|
override_cc: settings.override_cc,
|
||||||
|
kernel_name_filter: settings.kernel_name_filter.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue