use kime_model::Model;
use kime_tensor::{Buckets, Executor, HostTensor, Result};
use crate::{CudaBackend, Precision};
pub fn executor(
model: &Model,
ordinal: usize,
precision: Precision,
) -> Result<Executor<CudaBackend>> {
let t = &model.tensors;
let host: Vec<HostTensor<'_>> = (0..t.entries().len())
.map(|i| {
let v = t.view(i);
HostTensor { dtype: v.dtype, shape: v.shape, bytes: v.bytes }
})
.collect();
let plan = model.graph.plan(&model.spec);
let vocab = model.spec.encoder.vocab;
Executor::new(
CudaBackend::new(ordinal, precision)?,
&host,
plan,
&Buckets::default(),
"compat",
vocab,
3,
)
}