| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Misc improvements to inlining evaluation docs in demo (#341) | 2 年前 | |
docs: regalloc-demo: Fix a typo in corpus extraction command (#339) Signed-off-by: Dakkshesh <dakkshesh5@gmail.com> | 2 年前 | |
Fixed demo links (#182) | 3 年前 | |
Update benchmarking.md (#308) | 2 年前 | |
Update contributing.md (#246) | 3 年前 | |
Decouple our tooling from problem solvers (generalize 'problem type') We currently check for known problem types (e.g. 'inlining' or 'regalloc') and select the appropriate CompilationRunner implementation and ML configuration. This won't scale moving forward, and this patch addresses this via dependency injection (gin). The abstraction being injected is an instance of ProblemConfiguration. This instance can be queried for a CompilationRunner instance, and for the ML configuration (preprocessing layer creator and signature spec). All parameters for these (e.g. clang_path for the CompilationRunner) are also gin-injected. A second reason for having modules as implementations of ProblemConfiguration is the fact that we typically need quite a few artifacts to fully define such an implementation: an implementation of a CompilationRunner; ML configuration (the config.py); and gin settings. The wrapping module forms, thus, an intuitive component model, and forms a single extension point (all a tool needs configured is 1 module name) A tool just needs to do this: in python: problem_config = config.ProblemConfiguration() ... and then get what it needs from problem_config take --gin_bindings flags. The user just needs to: --gin_bindings=configs.ProblemConfiguration.module_name="'the.module.name'" e.g.: --gin_bindings=configs.ProblemConfiguration.module_name="'google3.research.sir.compiler_opt.rl.inlining'" This refactoring also opens the opportunity to avoid copying around common abseil flags, e.g. for clang path; instead, they can be gin-configured. In addition, this simplifies special cases, like inlining needing llvm-size (inlining for speed will likely need llvm-objdump... etc): instead of needing to add the union of all flags to each tool, we rely on gin and define a gin macro for each, thus allowing us to replace --clang_path= with --gin_bindings="'clang_path='" (for example). This trades off a bit of verbosity in cmd line flags for the aforementioned advantages. | 4 年前 | |
Add tooling for feature importance (#109) * Laid groundwork for feature importance stuff * Got stuff initially working * Cleaned up comments/functionality * Worked on some stuff * Probably finished up feature importance tool for grabbing shap values * Fixed CI (probably) * Added shap to development dependencies * Moved requirements to a more appropriate place * Got plots initially working * Minor changes, fix CI * Added functionality to collapse along LRs in the regalloc case * Added typing info to main feature_importance script * Added typing annotations * Added unit tests for feature_importance script * Fix pytest absl flag errors * Added in inline documentation * Added documentation on graphing shap data in an IPython notebook * Added notes on model path * Added missing import * Removed inline inner functions and added documentation to functions I missed * Refactored utilities to feature_importance_utils.py Co-authored-by: Yundi Qian <66580298+yundiqian@users.noreply.github.com> | 3 年前 | |
Add doc for thinlto corpus extraction (#111) | 4 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 |