Skip to main content

ruda_tensor_device/dispatch/
transaction.rs

1use ruda_tensor::{
2    backend::ExecutionError,
3    ops::{TransactionOps, TransactionPrimitive, TransactionPrimitiveData},
4};
5
6use crate::{DeviceBackend, DeviceRuntime, FloatElement, IntElement, element::BoolElement};
7
8impl<R, F, I, BT> TransactionOps<Self> for DeviceBackend<R, F, I, BT>
9where
10    R: DeviceRuntime,
11    F: FloatElement,
12    I: IntElement,
13    BT: BoolElement,
14{
15    async fn tr_execute(
16        transaction: TransactionPrimitive<Self>,
17    ) -> Result<TransactionPrimitiveData, ExecutionError> {
18        ruda_kernel::tensor::transaction::execute(
19            ruda_kernel::tensor::transaction::ReadbackBatch {
20                read_floats: transaction.read_floats,
21                read_qfloats: transaction.read_qfloats,
22                read_ints: transaction.read_ints,
23                read_bools: transaction.read_bools,
24            },
25        ).await
26    }
27}