mirror of
https://github.com/vosen/ZLUDA.git
synced 2025-10-02 06:10:06 +00:00
Remoev unnecessary logging of cuLibraryGetModule (#529)
The content of the Module gets logged in `cuLibraryLoadData` anyway, current logging leads to duplicate logs
This commit is contained in:
parent
93eebdf298
commit
78c431fd40
3 changed files with 1 additions and 35 deletions
|
@ -847,7 +847,6 @@ cuda_function_declarations!(
|
||||||
cuDeviceGetAttribute,
|
cuDeviceGetAttribute,
|
||||||
cuDeviceComputeCapability,
|
cuDeviceComputeCapability,
|
||||||
cuModuleLoadFatBinary,
|
cuModuleLoadFatBinary,
|
||||||
cuLibraryGetModule,
|
|
||||||
cuLibraryLoadData
|
cuLibraryLoadData
|
||||||
],
|
],
|
||||||
override_fn_core <= [cuGetProcAddress, cuGetProcAddress_v2],
|
override_fn_core <= [cuGetProcAddress, cuGetProcAddress_v2],
|
||||||
|
@ -1388,20 +1387,6 @@ pub(crate) fn cuModuleLoadFatBinary_Post(
|
||||||
state.record_new_library(unsafe { *module }, fatbin_header.cast(), fn_logger)
|
state.record_new_library(unsafe { *module }, fatbin_header.cast(), fn_logger)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
|
||||||
pub(crate) fn cuLibraryGetModule_Post(
|
|
||||||
module: *mut cuda_types::cuda::CUmodule,
|
|
||||||
library: cuda_types::cuda::CUlibrary,
|
|
||||||
state: &mut trace::StateTracker,
|
|
||||||
fn_logger: &mut FnCallLog,
|
|
||||||
_result: CUresult,
|
|
||||||
) {
|
|
||||||
match state.libraries.get(&library).copied() {
|
|
||||||
None => fn_logger.log(log::ErrorEntry::UnknownLibrary(library)),
|
|
||||||
Some(code) => state.record_new_library(unsafe { *module }, code.0, fn_logger),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub(crate) fn cuLibraryLoadData_Post(
|
pub(crate) fn cuLibraryLoadData_Post(
|
||||||
library: *mut cuda_types::cuda::CUlibrary,
|
library: *mut cuda_types::cuda::CUlibrary,
|
||||||
|
@ -1416,9 +1401,6 @@ pub(crate) fn cuLibraryLoadData_Post(
|
||||||
fn_logger: &mut FnCallLog,
|
fn_logger: &mut FnCallLog,
|
||||||
_result: CUresult,
|
_result: CUresult,
|
||||||
) {
|
) {
|
||||||
state
|
|
||||||
.libraries
|
|
||||||
.insert(unsafe { *library }, trace::CodePointer(code));
|
|
||||||
// TODO: this is not correct, but it's enough for now, we just want to
|
// TODO: this is not correct, but it's enough for now, we just want to
|
||||||
// save the binary to disk
|
// save the binary to disk
|
||||||
state.record_new_library(unsafe { CUmodule((*library).0.cast()) }, code, fn_logger);
|
state.record_new_library(unsafe { CUmodule((*library).0.cast()) }, code, fn_logger);
|
||||||
|
|
|
@ -2,7 +2,6 @@ use super::Settings;
|
||||||
use crate::FnCallLog;
|
use crate::FnCallLog;
|
||||||
use crate::LogEntry;
|
use crate::LogEntry;
|
||||||
use cuda_types::cuda::*;
|
use cuda_types::cuda::*;
|
||||||
use format::CudaDisplay;
|
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::ffi::c_void;
|
use std::ffi::c_void;
|
||||||
use std::ffi::NulError;
|
use std::ffi::NulError;
|
||||||
|
@ -302,7 +301,6 @@ pub(crate) enum ErrorEntry {
|
||||||
overriden: [u64; 2],
|
overriden: [u64; 2],
|
||||||
},
|
},
|
||||||
NullPointer(&'static str),
|
NullPointer(&'static str),
|
||||||
UnknownLibrary(CUlibrary),
|
|
||||||
SavedModule(String),
|
SavedModule(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -426,12 +424,6 @@ impl Display for ErrorEntry {
|
||||||
ErrorEntry::NullPointer(type_) => {
|
ErrorEntry::NullPointer(type_) => {
|
||||||
write!(f, "Null pointer of type {type_} encountered")
|
write!(f, "Null pointer of type {type_} encountered")
|
||||||
}
|
}
|
||||||
ErrorEntry::UnknownLibrary(culibrary) => {
|
|
||||||
write!(f, "Unknown library: ")?;
|
|
||||||
let mut temp_buffer = Vec::new();
|
|
||||||
CudaDisplay::write(culibrary, "", 0, &mut temp_buffer).ok();
|
|
||||||
f.write_str(&unsafe { String::from_utf8_unchecked(temp_buffer) })
|
|
||||||
}
|
|
||||||
ErrorEntry::SavedModule(file) => write!(f, "Saved module to {file}"),
|
ErrorEntry::SavedModule(file) => write!(f, "Saved module to {file}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ use crate::{
|
||||||
};
|
};
|
||||||
use cuda_types::cuda::*;
|
use cuda_types::cuda::*;
|
||||||
use goblin::{elf, elf32, elf64};
|
use goblin::{elf, elf32, elf64};
|
||||||
use rustc_hash::{FxHashMap, FxHashSet};
|
use rustc_hash::FxHashSet;
|
||||||
use std::{
|
use std::{
|
||||||
ffi::{c_void, CStr, CString},
|
ffi::{c_void, CStr, CString},
|
||||||
fs::{self, File},
|
fs::{self, File},
|
||||||
|
@ -20,23 +20,15 @@ use unwrap_or::unwrap_some_or;
|
||||||
// * writes out relevant state change and details to disk and log
|
// * writes out relevant state change and details to disk and log
|
||||||
pub(crate) struct StateTracker {
|
pub(crate) struct StateTracker {
|
||||||
writer: DumpWriter,
|
writer: DumpWriter,
|
||||||
pub(crate) libraries: FxHashMap<CUlibrary, CodePointer>,
|
|
||||||
saved_modules: FxHashSet<CUmodule>,
|
saved_modules: FxHashSet<CUmodule>,
|
||||||
library_counter: usize,
|
library_counter: usize,
|
||||||
pub(crate) override_cc: Option<(u32, u32)>,
|
pub(crate) override_cc: Option<(u32, u32)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
|
||||||
pub(crate) struct CodePointer(pub *const c_void);
|
|
||||||
|
|
||||||
unsafe impl Send for CodePointer {}
|
|
||||||
unsafe impl Sync for CodePointer {}
|
|
||||||
|
|
||||||
impl StateTracker {
|
impl StateTracker {
|
||||||
pub(crate) fn new(settings: &Settings) -> Self {
|
pub(crate) fn new(settings: &Settings) -> Self {
|
||||||
StateTracker {
|
StateTracker {
|
||||||
writer: DumpWriter::new(settings.dump_dir.clone()),
|
writer: DumpWriter::new(settings.dump_dir.clone()),
|
||||||
libraries: FxHashMap::default(),
|
|
||||||
saved_modules: FxHashSet::default(),
|
saved_modules: FxHashSet::default(),
|
||||||
library_counter: 0,
|
library_counter: 0,
|
||||||
override_cc: settings.override_cc,
|
override_cc: settings.override_cc,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue