@@ -88,10 +88,12 @@ using ::executorch::extension::BufferDataLoader;
8888using ::executorch::extension::MallocMemoryAllocator;
8989using ::executorch::extension::MmapDataLoader;
9090using ::executorch::runtime::ArrayRef;
91+ using ::executorch::runtime::BackendInterface;
9192using ::executorch::runtime::DataLoader;
9293using ::executorch::runtime::Error;
9394using ::executorch::runtime::EValue;
9495using ::executorch::runtime::EventTracerDebugLogLevel;
96+ using ::executorch::runtime::get_backend_class;
9597using ::executorch::runtime::get_backend_name;
9698using ::executorch::runtime::get_num_registered_backends;
9799using ::executorch::runtime::get_registered_kernels;
@@ -990,6 +992,14 @@ py::list get_registered_backend_names() {
990992 return res;
991993}
992994
995+ py::bool_ is_available (const std::string& backend_name) {
996+ BackendInterface* backend = get_backend_class (backend_name.c_str ());
997+ if (backend == nullptr ) {
998+ return false ;
999+ }
1000+ return backend->is_available ();
1001+ }
1002+
9931003} // namespace
9941004
9951005PYBIND11_MODULE (EXECUTORCH_PYTHON_MODULE_NAME, m) {
@@ -1048,6 +1058,7 @@ PYBIND11_MODULE(EXECUTORCH_PYTHON_MODULE_NAME, m) {
10481058 &get_registered_backend_names,
10491059 call_guard);
10501060 m.def (" _get_operator_names" , &get_operator_names);
1061+ m.def (" _is_available" , &is_available, py::arg (" backend_name" ), call_guard);
10511062 m.def (" _create_profile_block" , &create_profile_block, call_guard);
10521063 m.def (
10531064 " _reset_profile_results" ,
0 commit comments