| // Copyright 2022 The IREE Authors | |
| // | |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| #ifndef IREE_PJRT_PLUGIN_PJRT_CPU_CLIENT_H_ | |
| #define IREE_PJRT_PLUGIN_PJRT_CPU_CLIENT_H_ | |
| #include "iree/hal/drivers/local_task/task_driver.h" | |
| #include "iree/hal/local/loaders/registration/init.h" | |
| #include "iree_pjrt/common/api_impl.h" | |
| namespace iree::pjrt::cpu { | |
| class CPUClientInstance final : public ClientInstance { | |
| public: | |
| CPUClientInstance(std::unique_ptr<Platform> platform); | |
| ~CPUClientInstance(); | |
| iree_status_t CreateDriver(iree_hal_driver_t** out_driver) override; | |
| bool SetDefaultCompilerFlags(CompilerJob* compiler_job) override; | |
| private: | |
| iree_status_t InitializeDeps(); | |
| // Instance scoped options. | |
| bool single_threaded_debug_ = false; | |
| iree_task_topology_t task_topology_options_; | |
| // Deps. | |
| iree_hal_executable_plugin_manager_t* plugin_manager_ = nullptr; | |
| iree_hal_executable_loader_t* loaders_[8] = {nullptr}; | |
| iree_host_size_t loader_count_ = 0; | |
| iree_task_executor_t* executor_ = nullptr; | |
| iree_hal_allocator_t* device_allocator_ = nullptr; | |
| }; | |
| } // namespace iree::pjrt::cpu | |
| #endif // IREE_PJRT_PLUGIN_PJRT_CPU_CLIENT_H_ |