Conversation
There was a problem hiding this comment.
Pull request overview
This PR refactors the AIS system testing workflow by extracting FIO-related test steps from the main run_system_tests job into a separate run_FIO_tests job. The motivation (per the PR description) is to eventually use FIO packages produced by ROCm/fio instead of building FIO separately, though this PR currently still builds FIO from source as an intermediate step.
Changes:
- Removed FIO repository checkout and build directory creation from the
run_system_testsjob - Added cleanup steps to the
run_system_testsjob to ensure proper resource cleanup - Created a new
run_FIO_testsjob that checks out the FIO repository and runs FIO-based tests
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
03afdaa to
a2b2af8
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
.github/workflows/test-ais-system.yml:306
- The PR description states "TBD - Use the FIO packages produced by ROCm/fio instead of building it separately here", but the implementation still builds FIO from source in the
run_FIO_testsjob (lines 283-306). The current changes create abuild_FIOjob that isn't being used, making this change incomplete. The implementation should either: (1) download and use pre-built FIO packages from thebuild_FIOjob, or (2) wait to introduce thebuild_FIOjob until the integration is complete.
- name: Configure fio
run: |
docker exec \
-t \
-w /ais/fio/build \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
ROCM=/opt/rocm-${ROCM_VERSION} \
HIPFILE=/ais/hipFile \
HIPFILELIB=${HIPFILE}/build/src/amd_detail/ \
HIP_PLATFORM=amd \
CFLAGS="-I${ROCM}/include" \
LDFLAGS="-L${ROCM}/lib -Wl,-rpath,${ROCM}/lib" \
../configure --enable-libhipfile
'
- name: Build fio
run: |
docker exec \
-t \
-w /ais/fio/build \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
make -j
'
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
454445d to
89335b4
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
.github/workflows/test-ais-system.yml:303
- The PR description states the motivation as "TBD - Use the FIO packages produced by ROCm/fio instead of building it separately here", suggesting the goal is to use pre-built FIO packages. However, the
run_FIO_testsjob still builds fio from source (steps "Configure fio" and "Build fio" at lines 280-303).
If the intention is to use packages from the build_FIO reusable workflow, there should be steps to download those artifacts instead of building from source. If building from source is still intended, the PR description should be updated to reflect the actual changes being made.
- name: Configure fio
run: |
docker exec \
-t \
-w /ais/fio/build \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
ROCM=/opt/rocm-${ROCM_VERSION} \
HIPFILE=/ais/hipFile \
HIPFILELIB=${HIPFILE}/build/src/amd_detail/ \
HIP_PLATFORM=amd \
CFLAGS="-I${ROCM}/include" \
LDFLAGS="-L${ROCM}/lib -Wl,-rpath,${ROCM}/lib" \
../configure --enable-libhipfile
'
- name: Build fio
run: |
docker exec \
-t \
-w /ais/fio/build \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
make -j
'
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
f0dfb0f to
98d9f84
Compare
This is in preparation for calling out to the ROCm/fio workflow to build and package FIO with hipFile support. This new workflow will then install the produced FIO packages instead of compiling FIO separately. This lets us sanity check the FIO packages we produce.
ca5a3b8 to
bd0e3d5
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
This PR needs ROCm/fio#5 to be accepted and merged first so that the targetted workflow in build_FIO exists on the |
Consume the packages produced by the ROCm/fio workflow instead of building the library directly. On Fedora-based distros, FIO's IO engines are dynamically linked instead of built into the FIO executable. As a result, we need to install multiple packages. Admittedly, it does make some steps look more complex than they actually are... (I would prefer if we could skip the cache when installing FIO, but there are additional dependencies that FIO relies upon.)
Most ROCm libraries don't seem to be concerned with RPM AutoReq's AutoProv's. There are libs that do enable these features, but they also manage CPACK packaging directly instead of through ROCm-CMake.
3902c07 to
19ff80a
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ${{ | ||
| case( | ||
| inputs.platform == 'rocky', | ||
| 'docker cp \ | ||
| "${GITHUB_WORKSPACE}/${FIO_HIPFILE_ENGINE_PKG_FILENAME}" \ | ||
| "${AIS_CONTAINER_NAME}:/root" | ||
| ', | ||
| '' | ||
| ) | ||
| }} |
There was a problem hiding this comment.
Using ${{ ... }} to inject a multi-line shell fragment (the conditional docker cp for Rocky) makes the run script hard to reason about and depends on the (likely unsupported) case(...) expression. Prefer a separate step with if: inputs.platform == 'rocky' for the second package copy, or do the conditional inside bash.
| ${{ | |
| case( | |
| inputs.platform == 'rocky', | |
| 'docker cp \ | |
| "${GITHUB_WORKSPACE}/${FIO_HIPFILE_ENGINE_PKG_FILENAME}" \ | |
| "${AIS_CONTAINER_NAME}:/root" | |
| ', | |
| '' | |
| ) | |
| }} | |
| - name: Copy the FIO hipFile engine package into the container (rocky only) | |
| if: inputs.platform == 'rocky' | |
| run: | | |
| docker cp \ | |
| "${GITHUB_WORKSPACE}/${{ needs.build_FIO.outputs.fio_pkg_fedora_hipfile_engine_filename }}" \ | |
| "${AIS_CONTAINER_NAME}:/root" |
There was a problem hiding this comment.
I'll change this if any humans agree with this take. I think running this copy in a single step looks better from a CI summary perspective.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This is to avoid matching to '.' and '..' respectively.
edd10ca to
5af116e
Compare
Breaks apart our monolithic system test workflow to separate the hipFile system tests from the FIO tests.
The FIO job now consumes the packages built by the ROCm/fio build workflow. This is the same workflow that creates and publishes the fio packages with hipfile support.
AIHIPFILE-121