nod-ai / iree-amd-aie

IREE plugin repository for the AMD AIE accelerator
Apache License 2.0
69 stars 30 forks source link

Build and cache llvm #736

Closed makslevental closed 2 months ago

makslevental commented 2 months ago

This PR splits up build only in CI into two steps

  1. Build LLVM
  2. Build iree

Why do this if it only affects CI? Because now we can also cache/save/upload the LLVM distro for each successful build thereby giving everyone (not just CI) a distro of LLVM they can use to build iree locally. This cuts down the number of files you have to compile by like 60% (from 7500 -> 2900).

In case you didn't know, the CI artifacts are at the bottom of the summary page for any given run:

github com_nod-ai_iree-amd-aie_actions_runs_10713474448 (1)

EDIT: in fact we actually need this for HSA (because ROCR requires an up-to-date Clang)^1.

EDIT2: This PR now also adds powershell scripts for building on windows

makslevental commented 2 months ago

The extra build feels rather complicated to me, and it would be nice if iree-amd-aie didn't need to build LLVM itself in this way

yea i mean this is what we discussed on slack earlier this week - i would love to be able to either

1) build iree distro 2) build iree-amd-aie using iree distro 3) load iree-amd-aie as a plugin into iree-opt and iree-run-module

or

1) build iree distro 2) build iree-amd-aie-opt, iree-amd-aie-run-module using iree distro

both paths would save us a lot of CI and dev. but it's spot time right (full rebuild once every ~2 weeks when we bump iree if you're not sloppy and the bump is major). it mostly impacts new comers/explorers/tire kickers which i do care about but not so much that i'm gonna implement a plugin system for IREE lol. amortized it's not a lot of time so for now shaving 60% instead of 90% is good enough. revisit later 🤷