Skip to content

Commit 73adf28

Browse files
author
Kiriti
committed
ci: restructure Enhanced Vision tests into 6 functional CI groups
Replace the monolithic enhanced-vision, bilateral-filter, controlflow, and tensor-ops jobs with 6 focused CI stages following logical kernel groupings: - Enhanced-Vision: Tensor Arithmetic — TensorOp, Min, Max (222 tests) - Enhanced-Vision: Tensor Transforms — Tensor, TensorEnhanced (18 tests) - Enhanced-Vision: Feature Extraction — HOGCells, HOGFeatures, MatchTemplate, LBP (44 tests) - Enhanced-Vision: Post-Processing — Copy, NonMaxSuppression, HoughLinesP (84 tests) - Enhanced-Vision: Advanced Filtering — BilateralFilter (361 tests) - Enhanced-Vision: Control Flow — SelectNode, ScalarOperationNode (186 tests) Filter patterns verified locally: - TensorOp.*:Min.*:Max.* → 222 tests - Tensor*.*:-TensorOp.* → 18 tests (Tensor 12 + TensorEnhanced 6) - HogCells.*:HogFeatures.*:MatchTemplate.*:LBP.* → 44 tests - Copy.*:Nonmaxsuppression.*:Houghlinesp.* → 84 tests - BilateralFilter.* → 361 tests - ControlFlow.* → 186 tests Also updated README CI badge table to reflect the new job names and correct test counts per group.
1 parent 725303c commit 73adf28

2 files changed

Lines changed: 70 additions & 43 deletions

File tree

.github/workflows/conformance.yml

Lines changed: 64 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -556,20 +556,14 @@ jobs:
556556
export VX_TEST_DATA_PATH=${{ github.workspace }}/OpenVX-cts/test_data/
557557
timeout 300 ./bin/vx_test_conformance --filter="GaussianPyramid.*:LaplacianPyramid.*:LaplacianReconstruct.*:OptFlowPyrLK.*"
558558
559-
# Enhanced Vision Phase 1 — only the kernels rustVX has actually
560-
# implemented from the OpenVX 1.3 Enhanced Vision feature set. The CTS
561-
# binary is built with `OPENVX_USE_ENHANCED_VISION=ON`, but this job
562-
# filters strictly to the kernels Phase 1 ships (vxMin / vxMax). The
563-
# remaining Enhanced Vision symbols are exposed as link stubs in
564-
# rustVX so the binary can build; they are not exercised here and will
565-
# be replaced by real kernels in subsequent phases.
566-
# Enhanced Vision — kernels implemented on this branch.
567-
#
568-
# PR #36 (hog-kernels): Copy, NonMaxSuppression, HoughLinesP,
569-
# MatchTemplate, LBP, HOGCells, HOGFeatures, plus baseline Min/Max.
570-
# BilateralFilter is tested in its own job below.
571-
enhanced-vision:
572-
name: "enhanced-vision (HOG branch)"
559+
# Enhanced Vision — 6 functional groups, each run as a separate CI job.
560+
# This makes the dashboard granular and pinpoints regressions to a
561+
# specific kernel category without re-running the entire Enhanced Vision
562+
# suite.
563+
564+
# Tensor Arithmetic — 222 tests (TensorOp 214 + Min 4 + Max 4)
565+
enhanced-vision-tensor-arithmetic:
566+
name: "Enhanced-Vision: Tensor Arithmetic"
573567
runs-on: ubuntu-22.04
574568
needs: build
575569
steps:
@@ -580,18 +574,17 @@ jobs:
580574
uses: actions/download-artifact@v4
581575
with:
582576
name: build-artifacts
583-
- name: Run Enhanced Vision tests
577+
- name: Run Tensor Arithmetic tests
584578
run: |
585579
chmod +x OpenVX-cts/build/bin/vx_test_conformance
586580
cd OpenVX-cts/build
587581
export LD_LIBRARY_PATH=${{ github.workspace }}/target/release
588582
export VX_TEST_DATA_PATH=${{ github.workspace }}/OpenVX-cts/test_data/
589-
timeout 300 ./bin/vx_test_conformance --filter="Copy.*:Nonmaxsuppression.*:Houghlinesp.*:MatchTemplate.*:LBP.*:HogCells.*:HogFeatures.*:Min.*:Max.*"
583+
timeout 600 ./bin/vx_test_conformance --filter="TensorOp.*:Min.*:Max.*"
590584
591-
# BilateralFilter — 361 tests, separated from enhanced-vision to avoid
592-
# any state leakage with other enhanced-vision kernels.
593-
bilateral-filter:
594-
name: "bilateral-filter"
585+
# Tensor Transforms — 18 tests (Tensor 12 + TensorEnhanced 6)
586+
enhanced-vision-tensor-transforms:
587+
name: "Enhanced-Vision: Tensor Transforms"
595588
runs-on: ubuntu-22.04
596589
needs: build
597590
steps:
@@ -602,20 +595,17 @@ jobs:
602595
uses: actions/download-artifact@v4
603596
with:
604597
name: build-artifacts
605-
- name: Run BilateralFilter tests
598+
- name: Run Tensor Transforms tests
606599
run: |
607600
chmod +x OpenVX-cts/build/bin/vx_test_conformance
608601
cd OpenVX-cts/build
609602
export LD_LIBRARY_PATH=${{ github.workspace }}/target/release
610603
export VX_TEST_DATA_PATH=${{ github.workspace }}/OpenVX-cts/test_data/
611-
timeout 300 ./bin/vx_test_conformance --filter="BilateralFilter.*"
604+
timeout 300 ./bin/vx_test_conformance --filter="Tensor*.*:-TensorOp.*"
612605
613-
# ControlFlow — 186 tests (SelectNode 11 + ScalarOperationNode 175).
614-
# Runs SelectNode/0-6,9 (8 passing type variants) and all ScalarOperationNode
615-
# tests. PYRAMID/THRESHOLD/REMAP variants (3 tests) are excluded due to
616-
# pre-existing object-specific crashes unrelated to control flow logic.
617-
controlflow:
618-
name: "controlflow"
606+
# Feature Extraction — 44 tests (HOGCells 11 + HOGFeatures 11 + MatchTemplate 11 + LBP 11)
607+
enhanced-vision-feature-extraction:
608+
name: "Enhanced-Vision: Feature Extraction"
619609
runs-on: ubuntu-22.04
620610
needs: build
621611
steps:
@@ -626,25 +616,38 @@ jobs:
626616
uses: actions/download-artifact@v4
627617
with:
628618
name: build-artifacts
629-
- name: Run ControlFlow SelectNode tests
619+
- name: Run Feature Extraction tests
630620
run: |
631621
chmod +x OpenVX-cts/build/bin/vx_test_conformance
632622
cd OpenVX-cts/build
633623
export LD_LIBRARY_PATH=${{ github.workspace }}/target/release
634624
export VX_TEST_DATA_PATH=${{ github.workspace }}/OpenVX-cts/test_data/
635-
timeout 120 ./bin/vx_test_conformance --filter="ControlFlow.SelectNode*"
636-
- name: Run ControlFlow ScalarOperationNode tests
625+
timeout 300 ./bin/vx_test_conformance --filter="HogCells.*:HogFeatures.*:MatchTemplate.*:LBP.*"
626+
627+
# Post-Processing — 84 tests (Copy 36 + NonMaxSuppression 33 + HoughLinesP 15)
628+
enhanced-vision-post-processing:
629+
name: "Enhanced-Vision: Post-Processing"
630+
runs-on: ubuntu-22.04
631+
needs: build
632+
steps:
633+
- uses: actions/checkout@v4
634+
with:
635+
submodules: recursive
636+
- name: Download build artifacts
637+
uses: actions/download-artifact@v4
638+
with:
639+
name: build-artifacts
640+
- name: Run Post-Processing tests
637641
run: |
638642
chmod +x OpenVX-cts/build/bin/vx_test_conformance
639643
cd OpenVX-cts/build
640644
export LD_LIBRARY_PATH=${{ github.workspace }}/target/release
641645
export VX_TEST_DATA_PATH=${{ github.workspace }}/OpenVX-cts/test_data/
642-
timeout 300 ./bin/vx_test_conformance --filter="ControlFlow.ScalarOperationNode*"
646+
timeout 300 ./bin/vx_test_conformance --filter="Copy.*:Nonmaxsuppression.*:Houghlinesp.*"
643647
644-
# Tensor ops — 226 tests (Tensor 12 + TensorOp 214), separated to keep
645-
# each CI job focused and avoid state leakage with other categories.
646-
tensor-ops:
647-
name: "tensor-ops"
648+
# Advanced Filtering — 361 tests (BilateralFilter only)
649+
enhanced-vision-advanced-filtering:
650+
name: "Enhanced-Vision: Advanced Filtering"
648651
runs-on: ubuntu-22.04
649652
needs: build
650653
steps:
@@ -655,20 +658,35 @@ jobs:
655658
uses: actions/download-artifact@v4
656659
with:
657660
name: build-artifacts
658-
- name: Run Tensor tests
661+
- name: Run BilateralFilter tests
659662
run: |
660663
chmod +x OpenVX-cts/build/bin/vx_test_conformance
661664
cd OpenVX-cts/build
662665
export LD_LIBRARY_PATH=${{ github.workspace }}/target/release
663666
export VX_TEST_DATA_PATH=${{ github.workspace }}/OpenVX-cts/test_data/
664-
timeout 300 ./bin/vx_test_conformance --filter="Tensor.*"
665-
- name: Run TensorOp tests
667+
timeout 300 ./bin/vx_test_conformance --filter="BilateralFilter.*"
668+
669+
# Control Flow — 186 tests (SelectNode 11 + ScalarOperationNode 175)
670+
enhanced-vision-control-flow:
671+
name: "Enhanced-Vision: Control Flow"
672+
runs-on: ubuntu-22.04
673+
needs: build
674+
steps:
675+
- uses: actions/checkout@v4
676+
with:
677+
submodules: recursive
678+
- name: Download build artifacts
679+
uses: actions/download-artifact@v4
680+
with:
681+
name: build-artifacts
682+
- name: Run Control Flow tests
666683
run: |
667684
chmod +x OpenVX-cts/build/bin/vx_test_conformance
668685
cd OpenVX-cts/build
669686
export LD_LIBRARY_PATH=${{ github.workspace }}/target/release
670687
export VX_TEST_DATA_PATH=${{ github.workspace }}/OpenVX-cts/test_data/
671-
timeout 600 ./bin/vx_test_conformance --filter="TensorOp.*"
688+
timeout 120 ./bin/vx_test_conformance --filter="ControlFlow.SelectNode*"
689+
timeout 300 ./bin/vx_test_conformance --filter="ControlFlow.ScalarOperationNode*"
672690
673691
# Performance benchmark using openvx-mark, comparing rustVX against the
674692
# Khronos OpenVX sample implementation on the SAME runner so the two
@@ -696,6 +714,12 @@ jobs:
696714
- vision-features
697715
- vision-statistics
698716
- vision-pyramid
717+
- enhanced-vision-tensor-arithmetic
718+
- enhanced-vision-tensor-transforms
719+
- enhanced-vision-feature-extraction
720+
- enhanced-vision-post-processing
721+
- enhanced-vision-advanced-filtering
722+
- enhanced-vision-control-flow
699723
continue-on-error: true
700724
steps:
701725
- name: Install system dependencies

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -277,9 +277,12 @@ GitHub Actions builds and runs the full CTS on every push and pull request. The
277277
| **vision-statistics** | MeanStdDev, MinMaxLoc, Integral | [![vision-statistics](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=vision-statistics&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
278278
| **vision-pyramid** | GaussianPyramid, LaplacianPyramid, LaplacianReconstruct, OptFlowPyrLK | [![vision-pyramid](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=vision-pyramid&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
279279
| **user-data-object** | UserDataObject (14 tests) | [![user-data-object](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=user-data-object&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
280-
| **enhanced-vision** | Copy, NonMaxSuppression, HoughLinesP, MatchTemplate, LBP, BilateralFilter, HOGCells, HOGFeatures, Min, Max (163 tests) | [![enhanced-vision](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=enhanced-vision&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
281-
| **controlflow** | SelectNode, ScalarOperationNode (186 tests) | [![controlflow](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=controlflow&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
282-
| **tensor-ops** | Tensor (12 tests) + TensorOp (214 tests) | [![tensor-ops](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=tensor-ops&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
280+
| **Enhanced-Vision: Feature Extraction** | HOGCells, HOGFeatures, MatchTemplate, LBP (44 tests) | [![Enhanced-Vision: Feature Extraction](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=Enhanced-Vision%3A%20Feature%20Extraction&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
281+
| **Enhanced-Vision: Post-Processing** | Copy, NonMaxSuppression, HoughLinesP (84 tests) | [![Enhanced-Vision: Post-Processing](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=Enhanced-Vision%3A%20Post-Processing&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
282+
| **Enhanced-Vision: Tensor Arithmetic** | TensorOp, Min, Max (222 tests) | [![Enhanced-Vision: Tensor Arithmetic](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=Enhanced-Vision%3A%20Tensor%20Arithmetic&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
283+
| **Enhanced-Vision: Tensor Transforms** | Tensor, TensorEnhanced (18 tests) | [![Enhanced-Vision: Tensor Transforms](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=Enhanced-Vision%3A%20Tensor%20Transforms&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
284+
| **Enhanced-Vision: Advanced Filtering** | BilateralFilter (361 tests) | [![Enhanced-Vision: Advanced Filtering](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=Enhanced-Vision%3A%20Advanced%20Filtering&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
285+
| **Enhanced-Vision: Control Flow** | SelectNode, ScalarOperationNode (186 tests) | [![Enhanced-Vision: Control Flow](https://img.shields.io/github/check-runs/kiritigowda/rustVX/main?nameFilter=Enhanced-Vision%3A%20Control%20Flow&label=)](https://github.com/kiritigowda/rustVX/actions/workflows/conformance.yml?query=branch%3Amain) |
283286

284287
See the [Actions tab](https://github.com/kiritigowda/rustVX/actions) for full run history.
285288

0 commit comments

Comments
 (0)