Post

Replies

Boosts

Views

Activity

Use tensorflow-plugins/libmetal_plugin.dylib in tensorflow C API
Hello I am trying to use Mac M1 GPU in tensorflow C API. My code calls tensorflow C API via Rust bindings. match Library::load("libmetal_plugin.dylib") { Ok(lib) => println!("Loaded plugin successfully. {:?}", lib.op_list()), Err(e) => println!("WARNING: Unable to load plugin. {}", e), }; // Load the saved model exported in python let mut graph = Graph::new(); let bundle = SavedModelBundle::load(&SessionOptions::new(), &["serve"], &mut graph, export_dir).expect("Unable to load model from disk"); println!("{:?}", bundle.session.device_list().unwrap() ); tensorflow::Library::load internally calls tensorflow C API TF_LoadLibrary to load the plugin. And it does successfully load the plugin. Then I tried to enumerate the devices by device_list(). Only CPU is there. [Device { name: "/job:localhost/replica:0/task:0/device:CPU:0", device_type: "CPU", memory_bytes: 268435456, incarnation: 13748960769752595872 }] GPU does work in tensorflow when I use python to train. Is there some extra work needed to make it work in tensorflow C API? Tensorflow C library version 2.9.0
1
0
739
Aug ’22