Skip to content

Commit 9fa1e59

Browse files
[mlir-tensorrt] Add additional missing StableHLO patch
Added a patch that was missing from the last StableHLO upgrade. This patch addresses some issues mentioned in openxla/stablehlo#2634. An additional test is added to mlir-tensorrt as a regression test. Also makes some minor cleanup to CI/CD config in order to fix the caching mechanism, using the PR as a test-case.
1 parent b71a868 commit 9fa1e59

File tree

7 files changed

+168
-298
lines changed

7 files changed

+168
-298
lines changed

.github/workflows/mlir-tensorrt-ci.yml

+12-277
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ env:
1717

1818
jobs:
1919
mlir-tensorrt-test-pr:
20-
if: github.event_name == 'pull_request' && github.event.pull_request.draft == false
20+
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
2121
# `ubuntu-latest` is a CPU runner.
2222
# If selected, tests requiring GPU are not run.
2323
runs-on: ubuntu-latest
@@ -110,320 +110,55 @@ jobs:
110110
- name: Create cache folder
111111
run: |
112112
mkdir -p ${{ github.workspace }}/ccache
113-
mkdir -p ${{ github.workspace }}/.ccache.cpm
113+
mkdir -p ${{ github.workspace }}/.cache.cpm
114114
115115
# Create cache action
116116
- name: Create cache action
117117
id: core-build-cache
118118
uses: actions/cache@v4
119119
with:
120-
key: ${{ runner.os }}-mlir-tensorrt-core-build
120+
key: ${{ runner.os }}-mlir-tensorrt-cache-${{ hashFiles('mlir-tensorrt/**/*.cpp', 'mlir-tensorrt/**/*.h', 'mlir-tensorrt/build_tools/**/*') }}
121+
restore-keys: |
122+
${{ runner.os }}-mlir-tensorrt-cache-
121123
path: |
122124
${{ github.workspace }}/ccache
123-
${{ github.workspace }}/.ccache.cpm
125+
${{ github.workspace }}/.cache.cpm
124126
125127
# Run LIT tests with TensorRT 10
126128
- name: Run MLIR-TensorRT lit tests with TensorRT 10
127129
uses: addnab/docker-run-action@v3
128130
with:
129131
image: ${{ env.DEFAULT_IMAGE }}
130-
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.ccache.cpm:/.ccache.cpm
132+
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.cache.cpm:/.cache.cpm
131133
registry: ${{ env.REGISTRY }}
132134
username: ${{ github.actor }}
133135
password: ${{ secrets.GITHUB_TOKEN }}
134136
run: |
135-
export CCACHE_DIR="/ccache"
136-
export CCACHE_MAXSIZE=10G
137-
ccache --zero-stats || true
138-
ccache --show-stats || true
139-
140-
cd mlir-tensorrt
141-
cat > build_and_test.sh <<EOF
142-
#!/bin/bash
143-
set -e
144-
145-
python3 -m pip install -r python/requirements-dev.txt
146-
147-
cmake -B ./build -S . -G Ninja \
148-
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
149-
-DMLIR_TRT_PACKAGE_CACHE_DIR=/.cache.cpm \
150-
-DMLIR_TRT_ENABLE_ASSERTIONS=ON \
151-
-DMLIR_TRT_DOWNLOAD_TENSORRT_VERSION=10.5 \
152-
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
153-
-DMLIR_TRT_USE_LINKER=lld \
154-
-DMLIR_EXECUTOR_ENABLE_GPU_INTEGRATION_TESTS=OFF
155-
156-
ninja -C build all
157-
158-
ninja -C build check-mlir-executor
159-
ninja -C build check-mlir-tensorrt-dialect
160-
ninja -C build check-mlir-tensorrt
161-
162-
cd ..
163-
ccache --show-stats || true
164-
EOF
165-
166-
bash build_and_test.sh
167-
168-
# Run LIT tests with TensorRT 10 & ASAN
169-
- name: Run MLIR-TensorRT lit tests with TensorRT 10, ASAN enabled
170-
uses: addnab/docker-run-action@v3
171-
with:
172-
image: ${{ env.DEFAULT_IMAGE }}
173-
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.ccache.cpm:/.ccache.cpm
174-
registry: ${{ env.REGISTRY }}
175-
username: ${{ github.actor }}
176-
password: ${{ secrets.GITHUB_TOKEN }}
177-
run: |
178-
export CCACHE_DIR="/ccache"
179-
export CCACHE_MAXSIZE=10G
180-
ccache --zero-stats || true
181-
ccache --show-stats || true
182-
183-
cd mlir-tensorrt
184-
cat > build_and_test.sh <<EOF
185-
#!/bin/bash
186-
set -e
187-
188-
python3 -m pip install -r python/requirements-dev.txt
189-
190-
cmake -B ./build -S . -G Ninja \
191-
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
192-
-DMLIR_TRT_PACKAGE_CACHE_DIR=/.cache.cpm \
193-
-DMLIR_TRT_ENABLE_ASSERTIONS=ON \
194-
-DMLIR_TRT_DOWNLOAD_TENSORRT_VERSION=10.5 \
195-
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
196-
-DMLIR_TRT_USE_LINKER=lld \
197-
-DMLIR_EXECUTOR_ENABLE_GPU_INTEGRATION_TESTS=OFF \
198-
-DENABLE_ASAN=ON
199-
200-
ninja -C build all
201-
202-
ninja -C build check-mlir-executor
203-
ninja -C build check-mlir-tensorrt-dialect
204-
ninja -C build check-mlir-tensorrt
205-
206-
cd ..
207-
ccache --show-stats || true
208-
EOF
209-
210-
bash build_and_test.sh
211-
212-
# Run LIT tests with TensorRT 8
213-
- name: Run MLIR-TensorRT lit tests with TensorRT 8
214-
uses: addnab/docker-run-action@v3
215-
with:
216-
image: ${{ env.DEFAULT_IMAGE }}
217-
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.ccache.cpm:/.ccache.cpm
218-
registry: ${{ env.REGISTRY }}
219-
username: ${{ github.actor }}
220-
password: ${{ secrets.GITHUB_TOKEN }}
221-
run: |
222-
export CCACHE_DIR="/ccache"
223-
export CCACHE_MAXSIZE=10G
224-
ccache --zero-stats || true
225-
ccache --show-stats || true
226-
227-
cd mlir-tensorrt
228-
cat > build_and_test.sh <<EOF
229-
#!/bin/bash
230-
set -e
231-
232-
python3 -m pip install -r python/requirements-dev.txt
233-
234-
cmake -B ./build -S . -G Ninja \
235-
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
236-
-DMLIR_TRT_PACKAGE_CACHE_DIR=/.cache.cpm \
237-
-DMLIR_TRT_ENABLE_ASSERTIONS=ON \
238-
-DMLIR_TRT_DOWNLOAD_TENSORRT_VERSION=8.6.1.6 \
239-
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
240-
-DMLIR_TRT_USE_LINKER=lld \
241-
-DMLIR_EXECUTOR_ENABLE_GPU_INTEGRATION_TESTS=OFF
242-
243-
ninja -C build all
244-
245-
ninja -C build check-mlir-executor
246-
ninja -C build check-mlir-tensorrt-dialect
247-
ninja -C build check-mlir-tensorrt
248-
249-
cd ..
250-
ccache --show-stats || true
251-
EOF
252-
253-
bash build_and_test.sh
254-
255-
mlir-tensorrt-test-main:
256-
if: github.event_name == 'push'
257-
# `ubuntu-latest` is a CPU runner.
258-
# If selected, tests requiring GPU are not run.
259-
runs-on: ubuntu-latest
260-
261-
steps:
262-
# Free some disk space, otherwise we get OOM error.
263-
- name: Free disk space
264-
run: |
265-
sudo rm -rf \
266-
/usr/share/dotnet "$AGENT_TOOLSDIRECTORY" /usr/local/lib/android /opt/ghc \
267-
/usr/local/share/powershell /usr/share/swift /usr/local/.ghcup \
268-
/usr/lib/jvm
269-
270-
sudo apt-get purge microsoft-edge-stable || true
271-
sudo apt-get purge google-cloud-cli || true
272-
sudo apt-get purge dotnet-sdk-* || true
273-
sudo apt-get purge google-chrome-stable || true
274-
275-
sudo apt-get autoremove -y
276-
sudo apt-get autoclean -y
277-
278-
# Value of `github.workspace` is /home/runner/work/{repo_name}/{repo-name}
279-
# i.e. /home/runner/work/TensorRT-Incubator/TensorRT-Incubator in our case.
280-
# After this action, repo is cloned inside above path.
281-
- uses: actions/checkout@v4
282-
with:
283-
fetch-depth: 5
284-
285-
# Create cache folders
286-
- name: Create cache folder
287-
run: |
288-
mkdir -p ${{ github.workspace }}/ccache
289-
mkdir -p ${{ github.workspace }}/.ccache.cpm
290-
291-
# Create cache action
292-
- name: Create cache action
293-
id: core-build-cache
294-
uses: actions/cache@v4
295-
with:
296-
key: ${{ runner.os }}-mlir-tensorrt-core-build
297-
path: |
298-
${{ github.workspace }}/ccache
299-
${{ github.workspace }}/.ccache.cpm
300-
301-
# Run LIT tests with TensorRT 10
302-
- name: Run MLIR-TensorRT lit tests with TensorRT 10
303-
uses: addnab/docker-run-action@v3
304-
with:
305-
image: ${{ env.DEFAULT_IMAGE }}
306-
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.ccache.cpm:/.ccache.cpm
307-
registry: ${{ env.REGISTRY }}
308-
username: ${{ github.actor }}
309-
password: ${{ secrets.GITHUB_TOKEN }}
310-
run: |
311-
export CCACHE_DIR="/ccache"
312-
export CCACHE_MAXSIZE=10G
313-
ccache --zero-stats || true
314-
ccache --show-stats || true
315-
316137
cd mlir-tensorrt
317-
cat > build_and_test.sh <<EOF
318-
#!/bin/bash
319-
set -e
320-
321-
python3 -m pip install -r python/requirements-dev.txt
322-
323-
cmake -B ./build -S . -G Ninja \
324-
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
325-
-DMLIR_TRT_PACKAGE_CACHE_DIR=/.cache.cpm \
326-
-DMLIR_TRT_ENABLE_ASSERTIONS=ON \
327-
-DMLIR_TRT_DOWNLOAD_TENSORRT_VERSION=10.5 \
328-
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
329-
-DMLIR_TRT_USE_LINKER=lld \
330-
-DMLIR_EXECUTOR_ENABLE_GPU_INTEGRATION_TESTS=OFF
331-
332-
ninja -C build all
333-
334-
ninja -C build check-mlir-executor
335-
ninja -C build check-mlir-tensorrt-dialect
336-
ninja -C build check-mlir-tensorrt
337-
338-
cd ..
339-
ccache --show-stats || true
340-
EOF
341-
342-
bash build_and_test.sh
138+
./build_tools/scripts/cicd_build.sh
343139
344140
# Run LIT tests with TensorRT 10 & ASAN
345141
- name: Run MLIR-TensorRT lit tests with TensorRT 10, ASAN enabled
346142
uses: addnab/docker-run-action@v3
347143
with:
348144
image: ${{ env.DEFAULT_IMAGE }}
349-
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.ccache.cpm:/.ccache.cpm
145+
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.cache.cpm:/.cache.cpm
350146
registry: ${{ env.REGISTRY }}
351147
username: ${{ github.actor }}
352148
password: ${{ secrets.GITHUB_TOKEN }}
353149
run: |
354-
export CCACHE_DIR="/ccache"
355-
export CCACHE_MAXSIZE=10G
356-
ccache --zero-stats || true
357-
ccache --show-stats || true
358-
359150
cd mlir-tensorrt
360-
cat > build_and_test.sh <<EOF
361-
#!/bin/bash
362-
set -e
363-
364-
python3 -m pip install -r python/requirements-dev.txt
365-
366-
cmake -B ./build -S . -G Ninja \
367-
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
368-
-DMLIR_TRT_PACKAGE_CACHE_DIR=/.cache.cpm \
369-
-DMLIR_TRT_ENABLE_ASSERTIONS=ON \
370-
-DMLIR_TRT_DOWNLOAD_TENSORRT_VERSION=10.5 \
371-
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
372-
-DMLIR_TRT_USE_LINKER=lld \
373-
-DMLIR_EXECUTOR_ENABLE_GPU_INTEGRATION_TESTS=OFF \
374-
-DENABLE_ASAN=ON
375-
376-
ninja -C build all
377-
378-
ninja -C build check-mlir-executor
379-
ninja -C build check-mlir-tensorrt-dialect
380-
ninja -C build check-mlir-tensorrt
381-
382-
cd ..
383-
ccache --show-stats || true
384-
EOF
385-
386-
bash build_and_test.sh
151+
ENABLE_ASAN=ON ./build_tools/scripts/cicd_build.sh
387152
388153
# Run LIT tests with TensorRT 8
389154
- name: Run MLIR-TensorRT lit tests with TensorRT 8
390155
uses: addnab/docker-run-action@v3
391156
with:
392157
image: ${{ env.DEFAULT_IMAGE }}
393-
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.ccache.cpm:/.ccache.cpm
158+
options: -v ${{ github.workspace }}/mlir-tensorrt:/mlir-tensorrt -v ${{ github.workspace }}/ccache:/ccache -v ${{ github.workspace }}/.cache.cpm:/.cache.cpm
394159
registry: ${{ env.REGISTRY }}
395160
username: ${{ github.actor }}
396161
password: ${{ secrets.GITHUB_TOKEN }}
397162
run: |
398-
export CCACHE_DIR="/ccache"
399-
export CCACHE_MAXSIZE=10G
400-
ccache --zero-stats || true
401-
ccache --show-stats || true
402-
403163
cd mlir-tensorrt
404-
cat > build_and_test.sh <<EOF
405-
#!/bin/bash
406-
set -e
407-
408-
python3 -m pip install -r python/requirements-dev.txt
409-
410-
cmake -B ./build -S . -G Ninja \
411-
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
412-
-DMLIR_TRT_PACKAGE_CACHE_DIR=/.cache.cpm \
413-
-DMLIR_TRT_ENABLE_ASSERTIONS=ON \
414-
-DMLIR_TRT_DOWNLOAD_TENSORRT_VERSION=8.6.1.6 \
415-
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
416-
-DMLIR_TRT_USE_LINKER=lld \
417-
-DMLIR_EXECUTOR_ENABLE_GPU_INTEGRATION_TESTS=OFF
418-
419-
ninja -C build all
420-
421-
ninja -C build check-mlir-executor
422-
ninja -C build check-mlir-tensorrt-dialect
423-
ninja -C build check-mlir-tensorrt
424-
425-
cd ..
426-
ccache --show-stats || true
427-
EOF
428-
429-
bash build_and_test.sh
164+
DOWNLOAD_TENSORRT_VERSION="8.6.1.6" ./build_tools/scripts/cicd_build.sh

mlir-tensorrt/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ if(MLIR_TRT_ENABLE_HLO AND NOT TARGET StablehloOps)
186186
GIT_REPOSITORY "https://github.com/openxla/stablehlo.git"
187187
PATCHES
188188
"${CMAKE_CURRENT_LIST_DIR}/build_tools/patches/stablehlo/0001-transforms-Fix-simplification-patterns-for-stablehlo.patch"
189+
"${CMAKE_CURRENT_LIST_DIR}/build_tools/patches/stablehlo/0002-Fix-a-couple-missing-checks-for-static-shapes-in-sta.patch"
189190
OPTIONS
190191
"STABLEHLO_ENABLE_BINDINGS_PYTHON ${MLIR_TRT_ENABLE_PYTHON}"
191192
"STABLEHLO_BUILD_EMBEDDED ON"

0 commit comments

Comments
 (0)