Skip to content

Commit ec39df2

Browse files
authored
perf: optimize f32_vec_to_bytes and bytes_to_f32_vec (#12618)
1 parent 8fd787e commit ec39df2

1 file changed

Lines changed: 3 additions & 9 deletions

File tree

crates/wasi-nn/src/backend/onnx.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -437,19 +437,13 @@ fn to_input_value(slot: &TensorSlot) -> Result<[SessionInputValue<'_>; 1], Backe
437437
}
438438

439439
pub fn f32_vec_to_bytes(data: Vec<f32>) -> Vec<u8> {
440-
let chunks: Vec<[u8; 4]> = data.into_iter().map(|f| f.to_le_bytes()).collect();
441-
let result: Vec<u8> = chunks.iter().flatten().copied().collect();
442-
result
440+
data.into_iter().flat_map(f32::to_le_bytes).collect()
443441
}
444442

445443
pub fn bytes_to_f32_vec(data: Vec<u8>) -> Vec<f32> {
446-
let chunks: Vec<&[u8]> = data.chunks(4).collect();
447-
let v: Vec<f32> = chunks
448-
.into_iter()
444+
data.chunks(4)
449445
.map(|c| f32::from_le_bytes(c.try_into().unwrap()))
450-
.collect();
451-
452-
v.into_iter().collect()
446+
.collect()
453447
}
454448

455449
/// Returns whether the dimension is dynamic.

0 commit comments

Comments
 (0)