mirror of
https://github.com/vosen/ZLUDA.git
synced 2025-09-27 11:49:04 +00:00
Set modes
This commit is contained in:
parent
0efbbd002e
commit
44823a2d75
1 changed files with 12 additions and 10 deletions
|
@ -33,8 +33,7 @@ impl Manifest {
|
||||||
|
|
||||||
fn serialize(&self) -> std::io::Result<(Header, Vec<u8>)> {
|
fn serialize(&self) -> std::io::Result<(Header, Vec<u8>)> {
|
||||||
let vec = serde_json::to_vec(self)?;
|
let vec = serde_json::to_vec(self)?;
|
||||||
let mut header = Header::new_gnu();
|
let header = tar_header(vec.len());
|
||||||
header.set_size(vec.len() as u64);
|
|
||||||
Ok((header, vec))
|
Ok((header, vec))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,25 +75,21 @@ pub fn save(
|
||||||
}
|
}
|
||||||
.serialize()?;
|
.serialize()?;
|
||||||
builder.append_data(&mut header, Manifest::PATH, &*manifest)?;
|
builder.append_data(&mut header, Manifest::PATH, &*manifest)?;
|
||||||
let mut header = Header::new_gnu();
|
let mut header = tar_header(source.len());
|
||||||
header.set_size(source.len() as u64);
|
|
||||||
builder.append_data(&mut header, "source.ptx", source.as_bytes())?;
|
builder.append_data(&mut header, "source.ptx", source.as_bytes())?;
|
||||||
for (i, param) in kernel_params.into_iter().enumerate() {
|
for (i, param) in kernel_params.into_iter().enumerate() {
|
||||||
let path = format!("param_{i}.bin");
|
let path = format!("param_{i}.bin");
|
||||||
let mut header = Header::new_gnu();
|
let mut header = tar_header(param.data.len());
|
||||||
header.set_size(param.data.len() as u64);
|
|
||||||
builder.append_data(&mut header, &*path, &*param.data)?;
|
builder.append_data(&mut header, &*path, &*param.data)?;
|
||||||
for (offset_in_param, _, data_before, data_after) in param.device_ptrs {
|
for (offset_in_param, _, data_before, data_after) in param.device_ptrs {
|
||||||
let path = format!("param_{i}_ptr_{offset_in_param}_pre.bin");
|
let path = format!("param_{i}_ptr_{offset_in_param}_pre.bin");
|
||||||
let mut header = Header::new_gnu();
|
let mut header = tar_header(data_before.len());
|
||||||
header.set_size(data_before.len() as u64);
|
|
||||||
builder.append_data(&mut header, &*path, &*data_before)?;
|
builder.append_data(&mut header, &*path, &*data_before)?;
|
||||||
if !has_outputs {
|
if !has_outputs {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let path = format!("param_{i}_ptr_{offset_in_param}_post.bin");
|
let path = format!("param_{i}_ptr_{offset_in_param}_post.bin");
|
||||||
let mut header = Header::new_gnu();
|
let mut header = tar_header(data_after.len());
|
||||||
header.set_size(data_after.len() as u64);
|
|
||||||
builder.append_data(&mut header, &*path, &*data_after)?;
|
builder.append_data(&mut header, &*path, &*data_after)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,6 +98,13 @@ pub fn save(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn tar_header(size: usize) -> Header {
|
||||||
|
let mut header = Header::new_gnu();
|
||||||
|
header.set_mode(0o644);
|
||||||
|
header.set_size(size as u64);
|
||||||
|
header
|
||||||
|
}
|
||||||
|
|
||||||
pub fn load(reader: impl Read) -> (Manifest, String, FxHashMap<String, Vec<u8>>) {
|
pub fn load(reader: impl Read) -> (Manifest, String, FxHashMap<String, Vec<u8>>) {
|
||||||
let archive = zstd::Decoder::new(reader).unwrap();
|
let archive = zstd::Decoder::new(reader).unwrap();
|
||||||
let mut archive = tar::Archive::new(archive);
|
let mut archive = tar::Archive::new(archive);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue