Skip to content

Commit

Permalink
debug
Browse files Browse the repository at this point in the history
  • Loading branch information
barakugav committed Aug 10, 2024
1 parent 659d16a commit 1f6a83b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
17 changes: 17 additions & 0 deletions examples/hello_world_add/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,45 @@ use executorch::tensor::{Array, Tensor};
use ndarray::array;

fn main() {
println!("{}:{:3.}", file!(), line!());
env_logger::Builder::new()
.filter_level(log::LevelFilter::Debug)
.init();
println!("{}:{:3.}", file!(), line!());

executorch::platform::pal_init();
println!("{}:{:3.}", file!(), line!());

let mut module = Module::new("model.pte", None);
println!("{}:{:3.}", file!(), line!());

let input_array1 = Array::new(array![1.0_f32]);
println!("{}:{:3.}", file!(), line!());
let input_tensor1 = input_array1.to_tensor_impl();
println!("{}:{:3.}", file!(), line!());
let input_evalue1 = EValue::from_tensor(Tensor::new(&input_tensor1));
println!("{}:{:3.}", file!(), line!());

let input_array2 = Array::new(array![1.0_f32]);
println!("{}:{:3.}", file!(), line!());
let input_tensor2 = input_array2.to_tensor_impl();
println!("{}:{:3.}", file!(), line!());
let input_evalue2 = EValue::from_tensor(Tensor::new(&input_tensor2));
println!("{}:{:3.}", file!(), line!());

let outputs = module.forward(&[input_evalue1, input_evalue2]).unwrap();
println!("{}:{:3.}", file!(), line!());
assert_eq!(outputs.len(), 1);
println!("{}:{:3.}", file!(), line!());
let output = outputs.into_iter().next().unwrap();
println!("{}:{:3.}", file!(), line!());
assert_eq!(output.tag(), Some(Tag::Tensor));
println!("{}:{:3.}", file!(), line!());
let output = output.as_tensor();
println!("{}:{:3.}", file!(), line!());

println!("Output tensor computed: {:?}", output);
println!("{}:{:3.}", file!(), line!());
assert_eq!(array![2.0_f32], output.as_array());
println!("{}:{:3.}", file!(), line!());
}
7 changes: 7 additions & 0 deletions src/module.rs
Original file line number Diff line number Diff line change
Expand Up @@ -162,15 +162,22 @@ impl Module {
method_name: &str,
inputs: &[EValue],
) -> Result<Vec<EValue<'a>>> {
println!("{}:{:3.}", file!(), line!());
let method_name = ArrayRef::from_slice(util::str2chars(method_name).unwrap());
println!("{}:{:3.}", file!(), line!());
// Safety: The transmute is safe because the memory layout of EValue and et_c::EValue is the same.
let inputs = unsafe { std::mem::transmute::<&[EValue], &[et_c::EValue]>(inputs) };
println!("{}:{:3.}", file!(), line!());
let inputs = ArrayRef::from_slice(inputs);
println!("{}:{:3.}", file!(), line!());
let outputs =
unsafe { et_rs_c::Module_execute(&mut self.0, method_name.0, inputs.0) }.rs()?;
println!("{}:{:3.}", file!(), line!());
let outputs = outputs.rs();
println!("{}:{:3.}", file!(), line!());
// Safety: The transmute is safe because the memory layout of EValue and et_c::EValue is the same.
let outputs = unsafe { std::mem::transmute::<Vec<et_c::EValue>, Vec<EValue<'a>>>(outputs) };
println!("{}:{:3.}", file!(), line!());
Ok(outputs)
}

Expand Down

0 comments on commit 1f6a83b

Please sign in to comment.