From a536ee54120b8c435ed47d5ac3c3c32ed7a4beeb Mon Sep 17 00:00:00 2001 From: VolodymyrBg Date: Wed, 18 Feb 2026 22:58:09 +0200 Subject: [PATCH] perf: optimize `f32_vec_to_bytes` and `bytes_to_f32_vec` --- crates/wasi-nn/src/backend/onnx.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/crates/wasi-nn/src/backend/onnx.rs b/crates/wasi-nn/src/backend/onnx.rs index 13ac2dbed8ac..c7cc645d3512 100644 --- a/crates/wasi-nn/src/backend/onnx.rs +++ b/crates/wasi-nn/src/backend/onnx.rs @@ -437,19 +437,13 @@ fn to_input_value(slot: &TensorSlot) -> Result<[SessionInputValue<'_>; 1], Backe } pub fn f32_vec_to_bytes(data: Vec) -> Vec { - let chunks: Vec<[u8; 4]> = data.into_iter().map(|f| f.to_le_bytes()).collect(); - let result: Vec = chunks.iter().flatten().copied().collect(); - result + data.into_iter().flat_map(f32::to_le_bytes).collect() } pub fn bytes_to_f32_vec(data: Vec) -> Vec { - let chunks: Vec<&[u8]> = data.chunks(4).collect(); - let v: Vec = chunks - .into_iter() + data.chunks(4) .map(|c| f32::from_le_bytes(c.try_into().unwrap())) - .collect(); - - v.into_iter().collect() + .collect() } /// Returns whether the dimension is dynamic.