Skip to content

Commit

Permalink
hash module_id file if it already exists so PTX generated by `nvcc -c…
Browse files Browse the repository at this point in the history
…` and `nvcc -ptx` yield different hashes
  • Loading branch information
trxcllnt committed Jan 28, 2025
1 parent 8ed6faf commit a8d38d3
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 32 deletions.
4 changes: 2 additions & 2 deletions src/compiler/cicc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,8 @@ where
common_args,
arch_args: vec![],
unhashed_args,
extra_dist_files,
extra_hash_files: vec![],
extra_dist_files: extra_dist_files.clone(),
extra_hash_files: extra_dist_files,
msvc_show_includes: false,
profile_generate: false,
color_mode: ColorMode::Off,
Expand Down
60 changes: 30 additions & 30 deletions tests/system.rs
Original file line number Diff line number Diff line change
Expand Up @@ -822,18 +822,18 @@ fn test_nvcc_cuda_compiles(compiler: &Compiler, tempdir: &Path) {
get_stats(|info| {
assert_eq!(4, info.stats.compile_requests);
assert_eq!(17, info.stats.requests_executed);
assert_eq!(6, info.stats.cache_hits.all());
assert_eq!(7, info.stats.cache_misses.all());
assert_eq!(5, info.stats.cache_hits.all());
assert_eq!(8, info.stats.cache_misses.all());
assert_eq!(&1, info.stats.cache_hits.get("CUDA").unwrap());
assert_eq!(&1, info.stats.cache_hits.get("CUDA (Device code)").unwrap());
assert_eq!(&2, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&1, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&2, info.stats.cache_hits.get("CUBIN").unwrap());
assert_eq!(&2, info.stats.cache_misses.get("CUDA").unwrap());
assert_eq!(
&2,
info.stats.cache_misses.get("CUDA (Device code)").unwrap()
);
assert_eq!(&2, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&3, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&1, info.stats.cache_misses.get("CUBIN").unwrap());
assert!(info.stats.cache_misses.get("C/C++").is_none());
let adv_cuda_key = adv_key_kind("cuda", compiler.name);
Expand All @@ -842,14 +842,14 @@ fn test_nvcc_cuda_compiles(compiler: &Compiler, tempdir: &Path) {
let adv_cubin_key = adv_key_kind("cubin", compiler.name);
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cuda_key).unwrap());
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cudafe_key).unwrap());
assert_eq!(&2, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&2, info.stats.cache_hits.get_adv(&adv_cubin_key).unwrap());
assert_eq!(&2, info.stats.cache_misses.get_adv(&adv_cuda_key).unwrap());
assert_eq!(
&2,
info.stats.cache_misses.get_adv(&adv_cudafe_key).unwrap()
);
assert_eq!(&2, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&3, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&1, info.stats.cache_misses.get_adv(&adv_cubin_key).unwrap());
});

Expand All @@ -875,18 +875,18 @@ fn test_nvcc_cuda_compiles(compiler: &Compiler, tempdir: &Path) {
get_stats(|info| {
assert_eq!(5, info.stats.compile_requests);
assert_eq!(20, info.stats.requests_executed);
assert_eq!(8, info.stats.cache_hits.all());
assert_eq!(7, info.stats.cache_misses.all());
assert_eq!(6, info.stats.cache_hits.all());
assert_eq!(9, info.stats.cache_misses.all());
assert_eq!(&1, info.stats.cache_hits.get("CUDA").unwrap());
assert_eq!(&1, info.stats.cache_hits.get("CUDA (Device code)").unwrap());
assert_eq!(&3, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&1, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&3, info.stats.cache_hits.get("CUBIN").unwrap());
assert_eq!(&2, info.stats.cache_misses.get("CUDA").unwrap());
assert_eq!(
&2,
info.stats.cache_misses.get("CUDA (Device code)").unwrap()
);
assert_eq!(&2, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&4, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&1, info.stats.cache_misses.get("CUBIN").unwrap());
assert!(info.stats.cache_misses.get("C/C++").is_none());
let adv_cuda_key = adv_key_kind("cuda", compiler.name);
Expand All @@ -895,14 +895,14 @@ fn test_nvcc_cuda_compiles(compiler: &Compiler, tempdir: &Path) {
let adv_cubin_key = adv_key_kind("cubin", compiler.name);
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cuda_key).unwrap());
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cudafe_key).unwrap());
assert_eq!(&3, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&3, info.stats.cache_hits.get_adv(&adv_cubin_key).unwrap());
assert_eq!(&2, info.stats.cache_misses.get_adv(&adv_cuda_key).unwrap());
assert_eq!(
&2,
info.stats.cache_misses.get_adv(&adv_cudafe_key).unwrap()
);
assert_eq!(&2, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&4, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&1, info.stats.cache_misses.get_adv(&adv_cubin_key).unwrap());
});

Expand Down Expand Up @@ -955,18 +955,18 @@ int main(int argc, char** argv) {
get_stats(|info| {
assert_eq!(6, info.stats.compile_requests);
assert_eq!(25, info.stats.requests_executed);
assert_eq!(8, info.stats.cache_hits.all());
assert_eq!(11, info.stats.cache_misses.all());
assert_eq!(6, info.stats.cache_hits.all());
assert_eq!(13, info.stats.cache_misses.all());
assert_eq!(&1, info.stats.cache_hits.get("CUDA").unwrap());
assert_eq!(&1, info.stats.cache_hits.get("CUDA (Device code)").unwrap());
assert_eq!(&3, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&1, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&3, info.stats.cache_hits.get("CUBIN").unwrap());
assert_eq!(&3, info.stats.cache_misses.get("CUDA").unwrap());
assert_eq!(
&3,
info.stats.cache_misses.get("CUDA (Device code)").unwrap()
);
assert_eq!(&3, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&5, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&2, info.stats.cache_misses.get("CUBIN").unwrap());
assert!(info.stats.cache_misses.get("C/C++").is_none());
let adv_cuda_key = adv_key_kind("cuda", compiler.name);
Expand All @@ -975,14 +975,14 @@ int main(int argc, char** argv) {
let adv_cubin_key = adv_key_kind("cubin", compiler.name);
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cuda_key).unwrap());
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cudafe_key).unwrap());
assert_eq!(&3, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&3, info.stats.cache_hits.get_adv(&adv_cubin_key).unwrap());
assert_eq!(&3, info.stats.cache_misses.get_adv(&adv_cuda_key).unwrap());
assert_eq!(
&3,
info.stats.cache_misses.get_adv(&adv_cudafe_key).unwrap()
);
assert_eq!(&3, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&5, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&2, info.stats.cache_misses.get_adv(&adv_cubin_key).unwrap());
});

Expand Down Expand Up @@ -1015,18 +1015,18 @@ int main(int argc, char** argv) {
get_stats(|info| {
assert_eq!(7, info.stats.compile_requests);
assert_eq!(30, info.stats.requests_executed);
assert_eq!(10, info.stats.cache_hits.all());
assert_eq!(13, info.stats.cache_misses.all());
assert_eq!(8, info.stats.cache_hits.all());
assert_eq!(15, info.stats.cache_misses.all());
assert_eq!(&1, info.stats.cache_hits.get("CUDA").unwrap());
assert_eq!(&1, info.stats.cache_hits.get("CUDA (Device code)").unwrap());
assert_eq!(&4, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&2, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&4, info.stats.cache_hits.get("CUBIN").unwrap());
assert_eq!(&4, info.stats.cache_misses.get("CUDA").unwrap());
assert_eq!(
&4,
info.stats.cache_misses.get("CUDA (Device code)").unwrap()
);
assert_eq!(&3, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&5, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&2, info.stats.cache_misses.get("CUBIN").unwrap());
assert!(info.stats.cache_misses.get("C/C++").is_none());
let adv_cuda_key = adv_key_kind("cuda", compiler.name);
Expand All @@ -1035,14 +1035,14 @@ int main(int argc, char** argv) {
let adv_cubin_key = adv_key_kind("cubin", compiler.name);
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cuda_key).unwrap());
assert_eq!(&1, info.stats.cache_hits.get_adv(&adv_cudafe_key).unwrap());
assert_eq!(&4, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&2, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&4, info.stats.cache_hits.get_adv(&adv_cubin_key).unwrap());
assert_eq!(&4, info.stats.cache_misses.get_adv(&adv_cuda_key).unwrap());
assert_eq!(
&4,
info.stats.cache_misses.get_adv(&adv_cudafe_key).unwrap()
);
assert_eq!(&3, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&5, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&2, info.stats.cache_misses.get_adv(&adv_cubin_key).unwrap());
});

Expand Down Expand Up @@ -1076,18 +1076,18 @@ int main(int argc, char** argv) {
get_stats(|info| {
assert_eq!(8, info.stats.compile_requests);
assert_eq!(35, info.stats.requests_executed);
assert_eq!(14, info.stats.cache_hits.all());
assert_eq!(13, info.stats.cache_misses.all());
assert_eq!(12, info.stats.cache_hits.all());
assert_eq!(15, info.stats.cache_misses.all());
assert_eq!(&2, info.stats.cache_hits.get("CUDA").unwrap());
assert_eq!(&2, info.stats.cache_hits.get("CUDA (Device code)").unwrap());
assert_eq!(&5, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&3, info.stats.cache_hits.get("PTX").unwrap());
assert_eq!(&5, info.stats.cache_hits.get("CUBIN").unwrap());
assert_eq!(&4, info.stats.cache_misses.get("CUDA").unwrap());
assert_eq!(
&4,
info.stats.cache_misses.get("CUDA (Device code)").unwrap()
);
assert_eq!(&3, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&5, info.stats.cache_misses.get("PTX").unwrap());
assert_eq!(&2, info.stats.cache_misses.get("CUBIN").unwrap());
assert!(info.stats.cache_misses.get("C/C++").is_none());
let adv_cuda_key = adv_key_kind("cuda", compiler.name);
Expand All @@ -1096,14 +1096,14 @@ int main(int argc, char** argv) {
let adv_cubin_key = adv_key_kind("cubin", compiler.name);
assert_eq!(&2, info.stats.cache_hits.get_adv(&adv_cuda_key).unwrap());
assert_eq!(&2, info.stats.cache_hits.get_adv(&adv_cudafe_key).unwrap());
assert_eq!(&5, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&3, info.stats.cache_hits.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&5, info.stats.cache_hits.get_adv(&adv_cubin_key).unwrap());
assert_eq!(&4, info.stats.cache_misses.get_adv(&adv_cuda_key).unwrap());
assert_eq!(
&4,
info.stats.cache_misses.get_adv(&adv_cudafe_key).unwrap()
);
assert_eq!(&3, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&5, info.stats.cache_misses.get_adv(&adv_ptx_key).unwrap());
assert_eq!(&2, info.stats.cache_misses.get_adv(&adv_cubin_key).unwrap());
});
}
Expand Down

0 comments on commit a8d38d3

Please sign in to comment.