1 | #pragma once |
---|---|
2 | |
3 | #include <any> |
4 | #include <string> |
5 | #include <vector> |
6 | |
7 | #include "taichi/runtime/gfx/aot_utils.h" |
8 | #include "taichi/runtime/gfx/runtime.h" |
9 | #include "taichi/runtime/gfx/aot_module_builder_impl.h" |
10 | #include "taichi/runtime/gfx/aot_graph_data.h" |
11 | #include "taichi/codegen/spirv/kernel_utils.h" |
12 | #include "taichi/aot/module_builder.h" |
13 | #include "taichi/aot/module_loader.h" |
14 | #include "taichi/common/virtual_dir.h" |
15 | |
16 | namespace taichi::lang { |
17 | namespace gfx { |
18 | |
19 | struct TI_DLL_EXPORT AotModuleParams { |
20 | std::string module_path{}; |
21 | const io::VirtualDir *dir{nullptr}; |
22 | GfxRuntime *runtime{nullptr}; |
23 | bool enable_lazy_loading{false}; |
24 | |
25 | AotModuleParams() = default; |
26 | |
27 | [[deprecated]] AotModuleParams(const std::string &path, GfxRuntime *rt) |
28 | : module_path(path), runtime(rt) { |
29 | } |
30 | AotModuleParams(const io::VirtualDir *dir, GfxRuntime *rt) |
31 | : dir(dir), runtime(rt) { |
32 | } |
33 | }; |
34 | |
35 | TI_DLL_EXPORT std::unique_ptr<aot::Module> make_aot_module( |
36 | std::any mod_params, |
37 | Arch device_api_backend); |
38 | |
39 | } // namespace gfx |
40 | } // namespace taichi::lang |
41 |