diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ccde57d8d2dd6f70fa3625ca528c6a3f91c0bd6c..80e336751ad46db0b0ebbecf7574eab0797c576d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,11 @@ stages: - build_docker - - build_and_run + - build + - run .common: variables: - DOCKER_IMAGE: cme-hero-public + DOCKER_IMAGE: registry.gitlab.arm.com/kleidi/kleidi-examples/ai-camera-pipelines build_base_docker: variables: @@ -19,50 +20,57 @@ build_base_docker: command: ["--tls=false"] extends: - .common + before_script: + - echo "$CI_REGISTRY_PASSWORD" | docker login "$CI_REGISTRY" --username "$CI_REGISTRY_USER" --password-stdin script: - cd docker - - docker login -u acv-ci@arm.com -p ${ARTIFACTORY_DOCKER_TOKEN} ${ARTIFACTORY_DOCKER_REGISTRY} - - export DOCKER_IMAGE=${ARTIFACTORY_DOCKER_REGISTRY}/${DOCKER_IMAGE} - - docker build --build-arg DOCKERHUB_MIRROR=${DOCKERHUB_MIRROR} --pull --cache-from $DOCKER_IMAGE -t $DOCKER_IMAGE --push . + - | + if docker pull "$DOCKER_IMAGE":latest; then + CACHE_FROM="--cache-from $DOCKER_IMAGE:latest" + else + echo "No cache image found, building fresh." + CACHE_FROM="" + fi + - docker build --build-arg DOCKERHUB_MIRROR=${DOCKERHUB_MIRROR} --pull $CACHE_FROM -t $DOCKER_IMAGE --push . stage: build_docker tags: - m7g.medium -build_arm_nn: +build_armnn: extends: - .common - stage: build_and_run - image: $ARTIFACTORY_DOCKER_REGISTRY/$DOCKER_IMAGE + stage: build + image: $DOCKER_IMAGE + variables: + ARMNN_BUILD_DIR: "/tmp/a" script: + - mkdir -p "$ARMNN_BUILD_DIR" + - pushd $ARMNN_BUILD_DIR - git clone https://github.com/ARM-software/armnn.git - cd armnn - - git checkout v24.11 + - git checkout $ARMNN_GIT_TAG - cd build-tool/scripts/ - ./setup-armnn.sh --target-arch=aarch64 --all 1> /dev/null - | - if [ "$ENABLE_SME2" -eq 1 ]; then - ARMNN_ACL_OPTION='--acl-scons-params="arch=armv8.6-a-sve2-sme2"' + if [ "$ENABLE_SME2" = "1" ]; then + export ARMNN_ACL_OPTION='--acl-scons-params="arch=armv8.6-a-sve2-sme2"' else - ARMNN_ACL_OPTION='' + export ARMNN_ACL_OPTION='' fi - ./build-armnn.sh --target-arch=aarch64 --all --neon-backend $ARMNN_ACL_OPTION 1> /dev/null - - tar -xzf armnn_aarch64.tar.gz - - cd ../../../ + - ./build-armnn.sh --target-arch=aarch64 --all --neon-backend $ARMNN_ACL_OPTION 1> /dev/null + - tar -xzf armnn_aarch64_build.tar.gz + - popd - mkdir build - cd build - - cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install -DARMNN_BUILD_DIR=$PWD/../armnn/build-tool/scripts/aarch64_build -DENABLE_SME2=$ENABLE_SME2 -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake .. + - cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install -DARMNN_BUILD_DIR=$ARMNN_BUILD_DIR/armnn/build-tool/scripts/aarch64_build -DENABLE_SME2=$ENABLE_SME2 -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake .. - cmake --build . - cmake --install . - - cd ../install - - ./bin/cinematic_mode ./resources/test_input2.ppm test_output2_cinematic.ppm resources/depth_and_saliency_v3_2_assortedv2_w_augment_mobilenetv2_int8_only_ptq.tflite - - ./bin/cinematic_mode_benchmark 10 resources/depth_and_saliency_v3_2_assortedv2_w_augment_mobilenetv2_int8_only_ptq.tflite - - ./bin/low_light_image_enhancement resources/test_input2.ppm test_output2_lime.ppm resources/HDRNetLIME_lr_coeffs_v1_1_0_mixed_low_light_perceptual_l2_loss_int8_only_ptq.tflite - - ./bin/low_light_image_enhancement_benchmark 10 resources/HDRNetLIME_lr_coeffs_v1_1_0_mixed_low_light_perceptual_l2_loss_int8_only_ptq.tflite tags: - - m7g.8xlarge + - m7g.4xlarge parallel: matrix: - - ENABLE_SME2: ["0", "1"] + - ENABLE_SME2: ["0"] + ARMNN_GIT_TAG : ["v25.02"] artifacts: paths: - install @@ -70,8 +78,8 @@ build_arm_nn: build_tflite: extends: - .common - stage: build_and_run - image: $ARTIFACTORY_DOCKER_REGISTRY/$DOCKER_IMAGE + stage: build + image: $DOCKER_IMAGE script: - git clone https://github.com/google/flatbuffers.git - cd flatbuffers @@ -84,20 +92,43 @@ build_tflite: - cd ../.. - mkdir build - cd build - - cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install -DARMNN_TFLITE_PARSER=0 -DTENSORFLOW_GIT_TAG=$TENSORFLOW_GIT_TAG -DTFLITE_HOST_TOOLS_DIR=../flatbuffers/install/bin -DENABLE_SME2=$ENABLE_SME2 -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake .. + - cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install -DARMNN_TFLITE_PARSER=0 -DTENSORFLOW_GIT_TAG=$TENSORFLOW_GIT_TAG -DTFLITE_HOST_TOOLS_DIR=../flatbuffers/install/bin -DENABLE_SME2=$ENABLE_SME2 -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. - cmake --build . - cmake --install . - - cd ../install - - ./bin/cinematic_mode ./resources/test_input2.ppm test_output2.ppm resources/depth_and_saliency_v3_2_assortedv2_w_augment_mobilenetv2_int8_only_ptq.tflite - - ./bin/cinematic_mode_benchmark 10 resources/depth_and_saliency_v3_2_assortedv2_w_augment_mobilenetv2_int8_only_ptq.tflite - - ./bin/low_light_image_enhancement resources/test_input2.ppm test_output2_lime.ppm resources/HDRNetLIME_lr_coeffs_v1_1_0_mixed_low_light_perceptual_l2_loss_int8_only_ptq.tflite - - ./bin/low_light_image_enhancement_benchmark 10 resources/HDRNetLIME_lr_coeffs_v1_1_0_mixed_low_light_perceptual_l2_loss_int8_only_ptq.tflite tags: - - m7g.8xlarge + - m7g.4xlarge parallel: matrix: - - ENABLE_SME2: ["0", "1"] - TENSORFLOW_GIT_TAG: ["v2.18.0", "ddceb963c1599f803b5c4beca42b802de5134b44"] + - ENABLE_SME2: ["1"] + TENSORFLOW_GIT_TAG: ["v2.19.0"] artifacts: paths: - install + +.run: + extends: + - .common + stage: run + image: $DOCKER_IMAGE + script: + - cd install + - ./bin/cinematic_mode ./resources/test_input2.ppm test_output2.ppm resources/depth_and_saliency_v3_2_assortedv2_w_augment_mobilenetv2_int8_only_ptq.tflite + - taskset -c 0 ./bin/cinematic_mode_benchmark 10 resources/depth_and_saliency_v3_2_assortedv2_w_augment_mobilenetv2_int8_only_ptq.tflite + - ./bin/low_light_image_enhancement resources/test_input2.ppm test_output2_lime.ppm resources/HDRNetLIME_lr_coeffs_v1_1_0_mixed_low_light_perceptual_l2_loss_int8_only_ptq.tflite + - taskset -c 0 ./bin/low_light_image_enhancement_benchmark 10 resources/HDRNetLIME_lr_coeffs_v1_1_0_mixed_low_light_perceptual_l2_loss_int8_only_ptq.tflite + tags: + - m7g.medium + +run_tflite: + extends: + - .run + needs: + - job: build_tflite + artifacts: true + +run_armnn: + extends: + - .run + needs: + - job: build_armnn + artifacts: true \ No newline at end of file