forked from iree-org/iree
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ROCM] Build rocm device bc files from source and installation setup. (…
…iree-org#15096) * Adds a scheme whereby compiler targets can tack dependencies onto libIREECompiler.so by adding targets to the global property `IREE_COMPILER_DYLIB_DEPENDS` (allowing arbitrary required artifacts to be guaranteed to be generated when the main shared library is built). * Added a global property `IREE_COMPILER_DYLIB_RELPATHS` which always contains the relative paths of all artifacts that must exist along with libIREECompiler.so (including itself). This is used for installing into bindings (like Python), etc without all sorts of conditional code going the wrong way in the project. * Changed the main shared library to `CMAKE_PLATFORM_NO_VERSIONED_SONAME` mode always (we were manually setting this only for pip builds of Python bindings). This makes a lot of things easier and more consistent. In reality, if ever major versioning, we will bake a version number into the name, since that is portable to Windows, versus relying on Unix symlink/versioning arcana. * Set `CMAKE_RUNTIME_OUTPUT_DIRECTORY`, `CMAKE_LIBRARY_OUTPUT_DIRECTORY`, and `CMAKE_ARCHIVE_OUTPUT_DIRECTORY` in the top level compiler/ directory vs having them set inconsistently throughout the tree. As a side-effect, all libraries in the compiler now land in lib/. Since they all have fully qualified names, this is fine. * Define a `IREE_COMPILER_DYLIB_DIR` and `IREE_COMPILER_DYLIB_INSTALL_PREFIX` at the top level compiler/ dir vs ad-hoc code throughout checking to see if Windows (in order to special case DLLs installing next to binaries on that platform). * Reworked the Python compiler build so that it always builds a symlink tree in the build directory that matches how it gets installed. While not done in this PR, this should let us remove all of the weird special casing for how to find libraries if in a build tree vs deployed. Might need a bit more massaging to delete the code. * Adds a `findPlatformLibDirectory(StringRef platformName)` helper that can always find the `iree_platform_libs/{platformName}` directory located adjacent to the shared-library/DLL. Uses this to initialize the flag for finding ROCM bc files. We may want to do this with other prebuilts too. * Builds the ROCM bitcode files with our clang and includes them adjacent to the shared-lib/DLL under iree_platform_libs/rocm, which should always be available in all build/deploy/install modality. ci-extra: build_test_all_windows --------- Co-authored-by: Stanley Winata <[email protected]> Co-authored-by: Stella Laurenzo <[email protected]> Co-authored-by: Scott Todd <[email protected]>
- Loading branch information
1 parent
bb51f6f
commit d413a7e
Showing
10 changed files
with
196 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule ROCm-Device-Libs
added at
3adc16