tree f102c7c7e886bd3b41d75b410734f68ea51a18f8
parent d39c3c56682e006e842b32aa6f38c272f77c8f3c
author Scott Todd <scott.todd0@gmail.com> 1722352478 -0700
committer GitHub <noreply@github.com> 1722352478 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmqQNeCRC1aQ7uu5UhlAAACPoQAI5xOChOd8uswOoKbHbPIpCL
 PP9c7HVoqxIxQRmKmj2euQJJqUwT7XQ7gEZb1uqoWe86M23zyjc6gw4et4pp6yJb
 7q+9+xCXDgKF75eeaJTySFdCEipQXLnSXTWMWeSX+2q/ipNEft31t3BmSH8yZPft
 Yq9RaOidEPhIAxZNeFUUFmdZhkY7behmA7C3ua2seFMquMN3FXg8Gy3kHAd47ztE
 jnIRvEGCsvC2JQ6izHh9q2NzzcClBhVyaH7h5sDygNgZzLyGPXOINVvgqqo/Z3+X
 SzsyaKi8pLBMNLNYMTRc/a6awMyVofis4HAvbPxL15+1Usp9nAHr6HmSTrWi3UTZ
 YVkq/i7gZC5rPIASTW8sfGyRqKdap8dx95pLLPWZCP5OBeFBFAykNfiZeCpAf5xf
 6koFKr9LkuIo8nBiAectXYxNzWt5nj7skhPFWQQ/g1B1rw3nYR7coRISl11KnYTe
 0mSujhaSLke7YrSULR7cLxxXL7hYPzsIJOyjCwRKfvMpY5MQUC4wa8it3TH/hnnN
 aa/ke1WTG/oXMRD3pb4AvvfNE0Wou2P0QLPhyhkP13AWTWWvEVIgUchS03w6rlBW
 PzTB6WCkdAhqS5CLzGpQ6VjgBVwrEHP1b0Gp4F+WOx2ZbuT6anrLMoYQrlkhp/qG
 ku+Iy2H2kDFEIs5kQpXJ
 =fmyX
 -----END PGP SIGNATURE-----
 

Migrate GPU test jobs to pkgci. (#18007)

Progress on https://github.com/iree-org/iree/issues/16203. Depends on
https://github.com/iree-org/iree/pull/18000.

These jobs used to use the 3.2GB install directory produced by `cmake
--build full-build-dir --target install` in the `build_all` job. Now
they use the 73MB Python packages produced by `python -m pip wheel
runtime/` and `python -m pip wheel compiler/` in the `build_packages`
job. Python packages are what we expect users to consume, so test jobs
should use them too.
* Note that the Python packages will be larger once we enable asserts
and/or debug symbols in them. These tests may also fail with less useful
error messages and callstacks as a result of this change until that is
fixed.

I tried to keep changes to the workflow jobs minimal for now. Once the
migrations are further along we can cut out some of the remaining layers
of scripts / Dockerfiles. As before, these jobs are all opt-in on
presubmit (always running on LLVM integrate PRs or PRs affecting
NVGPU/AMDGPU code). Diffs between previous jobs and new jobs to confirm
how similar they are:

Job name | Logs before | Logs after | Notes
-- | -- | -- | --
`test_nvidia_t4` | [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102664951/job/27939423899)
| [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102841435/job/27939725841?pr=18007)
| 433 tests -> 430 tests<br>skipping
`samples/custom_dispatch/vulkan/shaders`<br>`IREE
custom_dispatch/vulkan/shaders ignored -- glslc not found`<br>(no longer
running under Docker)
`test_amd_mi250` | [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102664951/job/27939423747)
| [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102841435/job/27939725347?pr=18007)
| 138 tests before/after
`test_amd_mi300` | [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102664951/job/27939424223)
| [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102841435/job/27939725525?pr=18007)
| 141 tests before/after
`test_amd_w7900` | [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102664951/job/27939424084)
| [workflow
logs](https://github.com/iree-org/iree/actions/runs/10102841435/job/27939725679?pr=18007)
| 289 tests before/after

Each job is now included from its own standalone workflow file, allowing
for testing of individual workflows using `workflow_dispatch` triggers.
I have some other ideas for further decoupling these optional jobs from
the core workflow(s).

ci-extra: test_amd_mi250, test_amd_mi300, test_amd_w7900, test_nvidia_t4