burn_fusion/ops/
transaction.rs

1use burn_tensor::ops::{TransactionOps, TransactionPrimitive};
2
3use crate::{Fusion, FusionBackend};
4
5impl<B: FusionBackend> TransactionOps<Fusion<B>> for Fusion<B> {
6    async fn tr_execute(
7        transaction: TransactionPrimitive<Self>,
8    ) -> burn_tensor::ops::TransactionPrimitiveResult {
9        B::tr_execute(TransactionPrimitive {
10            read_floats: transaction
11                .read_floats
12                .into_iter()
13                .map(|t| t.client.clone().resolve_tensor_float::<B>(t))
14                .collect(),
15            read_qfloats: transaction
16                .read_qfloats
17                .into_iter()
18                .map(|_t| todo!("Quantization not supported yet"))
19                .collect(),
20            read_ints: transaction
21                .read_ints
22                .into_iter()
23                .map(|t| t.client.clone().resolve_tensor_int::<B>(t))
24                .collect(),
25            read_bools: transaction
26                .read_bools
27                .into_iter()
28                .map(|t| t.client.clone().resolve_tensor_bool::<B>(t))
29                .collect(),
30        })
31        .await
32    }
33}