use super::{ExecutionProvider, ExecutionProviderOptions};
use crate::{AsPointer, error::Result, ortsys, session::builder::SessionBuilder};
#[derive(Debug, Default, Clone)]
#[doc(alias = "DNNL")]
pub struct OneDNN(ExecutionProviderOptions);
super::impl_ep!(arbitrary; OneDNN);
impl OneDNN {
super::define_options! {
pub fn with_arena_allocator(mut self, enable: bool) -> Self = "use_arena";
}
}
impl ExecutionProvider for OneDNN {
const NAME: &'static str = "DnnlExecutionProvider";
fn register(&self, session_builder: &mut SessionBuilder) -> Result<()> {
super::register_with_options_struct!(
self.0,
session_builder,
ort_sys::OrtDnnlProviderOptions,
CreateDnnlProviderOptions,
UpdateDnnlProviderOptions,
ReleaseDnnlProviderOptions,
SessionOptionsAppendExecutionProvider_Dnnl
)
}
}