Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Searchspace improvements and project meta modernization (#214)
* Implemented PySMT in Kernel Tuner * Added mapping of parameter names to integers for better perfomance * Improved tests and compatibility for parameter mapping * Switch from setup.py/cfg to pyproject.toml * Added linting information, VS Code settings and recommendations * Always return compiled functions as a list, application of formatter * Improvements to string to restriction parsing * Major speedup due to restriction splitting with parameter usage detection * Refactored tests for parsing restrictions due to changes * Minor improvements to an assert and a testcase * Searchspace list to NumPy conversion only happens if needed * Searchspace objects can now be initialized from ATF logfiles (caches), unified searchspace builder returns * Added safeguard to prevent changing ATF block size names after compilation stage * Fixed Constraint conversions * Changed to non-forwardchecking by default, moved MaxProdConstraint to constraint * Parsing of common operations to python-constraint built-in Constraints * Fixed an issue with converting restrictions to Constraints * Enabled converting to Constraint with '>' and '<' as well, added use of MinProdConstraint * Added mapping of '>' to '>=' and '<' to '<=' for single-variable restriction * Return None on trying to convert to numeric Constraint * Automatic transformation of restrictions with multiple comparators to multiple restrictions with a single comparator, increasing the chance of converting to a built-in restriction * Added support for PySMT on generated searchspaces * Several improvements and fixes for PySMT builder, especially for preserving order * Fixed an issue where restrictions would not be parsed to specific constraints, added tests for conversion to constraints, added requirement for Python version * Removed redundant parameter mapping * Minor fixes for testing * Made scikit-opt (skopt) optional in strategy bayes_opt * Changed to Poetry and pyproject.toml * Added tests for pyproject.toml * Updated changelog to reflect changes, updated VS Code settings * Updated documentation to use pyproject file metadata, other minor updates * Minor bugfixes based on SonarCloud * Re-added support for Python 3.8, updated dependencies accordingly * Updated GitHub Action workflows to use Poetry and Nox * Removed unnecessary pull_request trigger for howfairis, added manual trigger for build & test * Updated workflows with new Setup Nox 2 and new checkout * Removed Windows from test OSes * Updated publishing workflow, expanded TODOs in changelog * Finished PyPI publication workflow with Poetry * Fixed errors and warnings with the docs, as well as compatiblity issues * Updated dependencies * Updated documentation for installation, development setup etc. * Minor updates: include notebook files in package, version bump * Removed usage of OrderedDict as per issue #209, minor changes to tests for this, reogranized imports and made sure some appearantly unused imports are not automatically removed * Updated test workflow to include upload to CodeCov for each OS, improved Noxfile so only the last test generates coverage report, added PyPI classifiers * Disable automatic upload to CodeCov for now * Solved issue #139: Reimplemented Latin Hypercube Sampling with SciPy * Improved Nox with optional dependencies for CUDA, HIP, OpenCL and arguments to disable these * Updated Contributing and Installation guidelines, specifically added development environment setup instructions, also added code syntax highlighting for Sphinx * Minor changes to dependencies and environment setup * Minor changes to dependencies and environment setup * Added bruteforce solver to Searchspace object, improved tests for Searchspace * Solved a bug in the constraints parsing that caused wrong searchspace outcomes, added and expanded searchspace tests, resolved warnings * Added missing nox-poetry to test dependencies * Added nox-poetry to GitHub test Action * Added Poetry setup to Github Test Action * Added extensive development environment setup instructions, updated installation documentation * Add an exception for the nvml_ parameter check if in simulation mode * Added optional additional (non-dependency) installation to Noxfile, with CUDA version differentiation. Added a tolerance to the energy power frequency model test. * Fixed additional test input argument * Improved detection of CUDA version using NVCC * Improved automatic selection of cupy prebuilt version, from most exact to most general, and improved warnings * Set the default environment used by Nox using a file * Updated the documentation for the Noxenv file and other minor improvements * Updated VS code settings for testing from VS code, updated documentation * Fixed HIP import error, made backend import error messages point to documentation * Restored accidentally removed import * Added an option for Nox to remove the other environment caches before each session is ran, and to clean up temporary files * Temporarily skip broken HIP tests as per issue #217, avoided error in Noxfile when no temporary files are present * Improved Noxfile functionality for removing environments after use, and documentation on this feature
- Loading branch information