plugin

Function plugin 

Source
pub fn plugin(library: impl Into<String>) -> PluginBuilder
Examples found in repository?
examples/basic.rs (line 7)
6fn main() -> Result<()> {
7    let api = pjrt::plugin("pjrt_c_api_cpu_plugin.so").load()?;
8    println!("api_version = {:?}", api.version());
9
10    let client = Client::builder(&api).build()?;
11    println!("platform_name = {}", client.platform_name());
12
13    let program = pjrt::Program::new(MLIR, CODE);
14
15    let loaded_executable = LoadedExecutable::builder(&client, &program).build()?;
16
17    let a = HostBuffer::scalar(1.0f32);
18    println!("input = {:?}", a);
19
20    let inputs = a.copy_to_sync(&client)?;
21
22    let result = loaded_executable.execution(inputs).run_sync()?;
23
24    let ouput = &result[0][0];
25    let output = ouput.copy_to_host_sync()?;
26    println!("output= {:?}", output);
27
28    Ok(())
29}
More examples
Hide additional examples
examples/buffer.rs (line 5)
4async fn main() -> Result<()> {
5    let api = pjrt::plugin("pjrt_c_api_cpu_plugin.so").load()?;
6    println!("{:?}", api.plugin_attributes());
7
8    let client = Client::builder(&api).build()?;
9
10    let host_buf = HostBuffer::builder()
11        .data([1.0f32, 2.0, 3.0, 4.0])
12        .dims([2, 2])
13        .build();
14    println!("{:?}", host_buf);
15
16    let dev1 = client.lookup_addressable_device(0)?;
17    let dev2 = client.lookup_addressable_device(1)?;
18
19    println!("-- ASYNC --");
20    let dev_buf = host_buf.copy_to(&dev1).await?;
21    println!("to {:?}, {:?}", dev_buf.dims(), dev_buf.layout());
22
23    let b = dev_buf.copy_to_host().await?;
24    println!("to_host_buffer {:?}", b);
25
26    let b = dev_buf.copy_to_device(&dev2).await?;
27    println!("copy_to_device {:?}, {:?}", b.dims(), b.layout());
28
29    println!("-- SYNC --");
30    let dev_buf = host_buf.copy_to_sync(&dev1)?;
31    println!("to {:?}, {:?}", dev_buf.dims(), dev_buf.layout());
32
33    let b = dev_buf.copy_to_host_sync()?;
34    println!("to_host_buffer {:?}", b);
35
36    let b = dev_buf.copy_to_device_sync(&dev2)?;
37    println!("copy_to_device {:?}, {:?}", b.dims(), b.layout());
38
39    Ok(())
40}