OpenVX 1.3.2 - Release updates (#73) #20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: OpenVX Conformance Tests | |
| # Two-stage pipeline modelled on the rustVX CI: | |
| # Stage 1 (build) -- build the sample implementation once (Debug + Release, | |
| # full feature set) and build the Conformance Test Suite | |
| # against the Debug build. Both build jobs must pass. The | |
| # Debug build + CTS binary + test data are uploaded as a | |
| # single self-contained artifact. | |
| # Stage 2 (test) -- many granular jobs, each downloads the artifact and runs | |
| # one filtered slice of the conformance suite. No rebuilds. | |
| # Runs on pull requests and on every branch. | |
| on: | |
| push: | |
| branches: | |
| - '**' | |
| pull_request: | |
| branches: | |
| - '**' | |
| env: | |
| OPENVX_DIR: ${{ github.workspace }}/install/Linux/x64/Debug | |
| VX_TEST_DATA_PATH: ${{ github.workspace }}/cts/test_data/ | |
| # Full feature set built into a single library so one build serves every test. | |
| OPENVX_FEATURES: >- | |
| -DOPENVX_CONFORMANCE_VISION=ON | |
| -DOPENVX_USE_ENHANCED_VISION=ON | |
| -DOPENVX_CONFORMANCE_NEURAL_NETWORKS=ON | |
| -DOPENVX_CONFORMANCE_NNEF_IMPORT=ON | |
| -DOPENVX_USE_NN=ON | |
| -DOPENVX_USE_IX=ON | |
| -DOPENVX_USE_U1=ON | |
| -DOPENVX_USE_USER_DATA_OBJECT=ON | |
| -DOPENVX_USE_PIPELINING=ON | |
| -DOPENVX_USE_STREAMING=ON | |
| jobs: | |
| # ================================================================ | |
| # Stage 1 — Build sample (Debug) + Conformance Test Suite | |
| # ================================================================ | |
| build: | |
| name: Build · OpenVX (Debug) + CTS | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| lfs: true | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update -qq | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq cmake make git git-lfs python3 gcc g++ | |
| - name: Verify LFS files | |
| run: git lfs ls-files | head -5 || true | |
| - name: Build & install sample (Debug) | |
| run: | | |
| mkdir -p build/Linux/x64/Debug && cd build/Linux/x64/Debug | |
| cmake "$GITHUB_WORKSPACE" \ | |
| -DCMAKE_BUILD_TYPE=Debug \ | |
| -DCMAKE_INSTALL_PREFIX="$OPENVX_DIR" \ | |
| -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_LIBDIR=bin \ | |
| -DBUILD_X64=1 \ | |
| $OPENVX_FEATURES | |
| make install -j$(nproc) | |
| - name: Build Conformance Test Suite | |
| run: | | |
| rm -rf "$GITHUB_WORKSPACE/build-cts" && mkdir -p "$GITHUB_WORKSPACE/build-cts" && cd "$GITHUB_WORKSPACE/build-cts" | |
| cmake \ | |
| -DOPENVX_INCLUDES="$OPENVX_DIR/include" \ | |
| -DOPENVX_LIBRARIES="$OPENVX_DIR/bin/libopenvx.so;$OPENVX_DIR/bin/libvxu.so;$OPENVX_DIR/bin/libnnef-lib.a;pthread;dl;m;rt;stdc++" \ | |
| -DCMAKE_C_FLAGS="-I$GITHUB_WORKSPACE/kernels/NNEF-Tools/parser/cpp/include" \ | |
| $OPENVX_FEATURES \ | |
| "$GITHUB_WORKSPACE/cts/" | |
| cmake --build . -j$(nproc) | |
| - name: Upload conformance artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| # Self-contained: CTS binary + built test modules (build-cts), | |
| # the installed OpenVX libraries, and the test data. | |
| path: | | |
| build-cts/ | |
| install/Linux/x64/Debug/ | |
| cts/test_data/ | |
| retention-days: 1 | |
| # ================================================================ | |
| # Stage 1 — Build sample (Release) — build gate only | |
| # ================================================================ | |
| build-release: | |
| name: Build · OpenVX (Release) | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| lfs: true | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update -qq | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq cmake make git git-lfs python3 gcc g++ | |
| - name: Build & install sample (Release) | |
| run: | | |
| mkdir -p build/Linux/x64/Release && cd build/Linux/x64/Release | |
| cmake "$GITHUB_WORKSPACE" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install/Linux/x64/Release" \ | |
| -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_LIBDIR=bin \ | |
| -DBUILD_X64=1 \ | |
| $OPENVX_FEATURES | |
| make install -j$(nproc) | |
| - name: Upload Release install artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: openvx-release | |
| path: install/Linux/x64/Release | |
| retention-days: 1 | |
| # ================================================================ | |
| # Stage 2 — Conformance test slices (need both Stage 1 builds) | |
| # ================================================================ | |
| baseline: | |
| name: Conformance · Framework · Baseline & smoke | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run baseline tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="GraphBase.*:Logging.*:SmokeTestBase.*:SmokeTest.*:TargetBase.*:Target.*" | |
| graph: | |
| name: Conformance · Framework · Graph | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run graph tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="Graph.*:GraphEnhanced.*:GraphCallback.*:GraphDelay.*:GraphDelayTensor.*:GraphROI.*:UserNode.*:-GraphPipeline.*:-GraphStreaming.*" | |
| data-objects: | |
| name: Conformance · Data objects | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run data object tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="Scalar.*:Array.*:ObjectArray.*:Matrix.*:Convolution.*:Distribution.*:LUT.*:Histogram.*" | |
| user-data-object: | |
| name: "Conformance · Extension · User Data Object" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run User Data Object tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 120 ./bin/vx_test_conformance --filter="UserDataObject.*" | |
| user-kernels: | |
| name: Conformance · Framework · User kernels | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run user kernel tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="UserNode.*:UserKernel.*" | |
| import-export: | |
| name: "Conformance · Extension · Import/Export (IX)" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Import/Export tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="Graph/ExportImport*:*IX*:ExtensionObject.*" | |
| # ================================================================ | |
| # Pipelining (implemented on ToT) — split into fast + stress slices. | |
| # Tests run against the unoptimized Debug C-model, which is much slower | |
| # than an optimized build, so the heavy loop_count cases are isolated | |
| # into their own job to run in parallel with the light ones. | |
| # ================================================================ | |
| pipelining-fast: | |
| name: "Conformance · Extension · Pipelining (fast)" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run pipelining fast tests (loop_count 0 / 1) | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 1800 ./bin/vx_test_conformance --filter="GraphPipeline.*:-*loop_count=100*:-*loop_count=1000*" | |
| pipelining-stress: | |
| name: "Conformance · Extension · Pipelining (stress)" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| # Heavy loop_count=100/1000 cases (incl. a 2048x1024 image) on the Debug | |
| # C-model need generous headroom. | |
| timeout-minutes: 90 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run pipelining stress tests (loop_count 100 / 1000) | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 4800 ./bin/vx_test_conformance --filter="*loop_count=100*:*loop_count=1000*" | |
| # ================================================================ | |
| # Streaming — functional on ToT; expected to pass. | |
| # ================================================================ | |
| streaming: | |
| name: "Conformance · Extension · Streaming" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run streaming tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 900 ./bin/vx_test_conformance --filter="GraphStreaming.*" | |
| # ================================================================ | |
| # Neural Networks — full feature set is expected to pass now that | |
| # Git LFS brings in the missing test weights. | |
| # ================================================================ | |
| neural-networks: | |
| name: Conformance · Neural Networks · Core | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Neural Network tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 1200 ./bin/vx_test_conformance --filter="TensorNetworks.*:*NN*:VxKernelOfNNAndNNEF.*:VxParameterOfNNAndNNEF.*:MetaFormatOfNNAndNNEF.*:UserKernelsOfNNAndNNEF.*" | |
| nnef-import: | |
| name: "Conformance · Neural Networks · NNEF import" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run NNEF import tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="*NNEF*" | |
| # ================================================================ | |
| # Vision — functional groups (mirrors rustVX) | |
| # ================================================================ | |
| vision-color: | |
| name: "Conformance · Vision · Color & channel" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run color / channel tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="ColorConvert.*:ChannelExtract.*:ChannelCombine.*:vxConvertDepth.*:vxuConvertDepth.*" | |
| vision-filters: | |
| name: "Conformance · Vision · Filters & morphology" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run filter / morphology tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="Box3x3.*:Gaussian3x3.*:Median3x3.*:Dilate3x3.*:Erode3x3.*:Sobel3x3.*:Magnitude.*:Phase.*:NonLinearFilter.*:Convolve.*:EqualizeHistogram.*" | |
| vision-arithmetic: | |
| name: "Conformance · Vision · Arithmetic & bitwise" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run arithmetic / bitwise tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="vxAddSub.*:vxuAddSub.*:vxMultiply.*:vxuMultiply.*:vxBinOp8u.*:vxuBinOp8u.*:vxBinOp16s.*:vxuBinOp16s.*:vxBinOp1u.*:vxuBinOp1u.*:vxNot.*:vxuNot.*:WeightedAverage.*:Threshold.*" | |
| vision-geometric: | |
| name: "Conformance · Vision · Geometric" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run geometric transform tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="Scale.*:WarpAffine.*:WarpPerspective.*:Remap.*:HalfScaleGaussian.*" | |
| vision-features: | |
| name: "Conformance · Vision · Features & edges" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run feature / edge detection tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="HarrisCorners.*:FastCorners.*:vxCanny.*:vxuCanny.*" | |
| vision-statistics: | |
| name: "Conformance · Vision · Statistics" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run statistics tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="MeanStdDev.*:MinMaxLoc.*:Integral.*" | |
| vision-image-ops: | |
| name: "Conformance · Vision · Image ops" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run image operation tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="Image.*:vxCopyImagePatch.*:vxMapImagePatch.*:vxCreateImageFromChannel.*:vxCopyRemapPatch.*:vxMapRemapPatch.*" | |
| vision-pyramid: | |
| name: "Conformance · Vision · Pyramid & optical flow" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run pyramid / optical flow tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="GaussianPyramid.*:LaplacianPyramid.*:LaplacianReconstruct.*:OptFlowPyrLK.*" | |
| # ================================================================ | |
| # Enhanced Vision — functional groups (mirrors rustVX) | |
| # ================================================================ | |
| enhanced-vision-tensor-arithmetic: | |
| name: "Conformance · Enhanced Vision · Tensor arithmetic" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Tensor Arithmetic tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="TensorOp.*:Min.*:Max.*" | |
| enhanced-vision-tensor-transforms: | |
| name: "Conformance · Enhanced Vision · Tensor transforms" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Tensor Transforms tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="Tensor*.*:-TensorOp.*" | |
| enhanced-vision-feature-extraction: | |
| name: "Conformance · Enhanced Vision · Feature extraction" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Feature Extraction tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="HogCells.*:HogFeatures.*:MatchTemplate.*:LBP.*" | |
| enhanced-vision-post-processing: | |
| name: "Conformance · Enhanced Vision · Post-processing" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Post-Processing tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="Copy.*:Nonmaxsuppression.*:Houghlinesp.*" | |
| enhanced-vision-advanced-filtering: | |
| name: "Conformance · Enhanced Vision · Advanced filtering" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Advanced Filtering tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 300 ./bin/vx_test_conformance --filter="BilateralFilter.*" | |
| enhanced-vision-control-flow: | |
| name: "Conformance · Enhanced Vision · Control flow" | |
| needs: [build, build-release] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Download conformance artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: openvx-conformance | |
| - name: Run Control Flow tests | |
| run: | | |
| cd build-cts && chmod +x bin/vx_test_conformance | |
| LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \ | |
| timeout 600 ./bin/vx_test_conformance --filter="ControlFlow.*" |