diff --git a/.github/workflows/build-single-tinygrad-model.yaml b/.github/workflows/build-single-tinygrad-model.yaml index cf2d870802..f10f1b71a3 100644 --- a/.github/workflows/build-single-tinygrad-model.yaml +++ b/.github/workflows/build-single-tinygrad-model.yaml @@ -12,11 +12,11 @@ on: required: false type: string recompiled_dir: - description: 'Existing recompiled directory number (e.g. 1 for recompiled1)' + description: 'Existing recompiled directory number (e.g. 3 for recompiled3)' required: true type: string json_version: - description: 'driving_models version number to update (e.g. 18 for driving_models_v18.json)' + description: 'driving_models version number to update (e.g. 5 for driving_models_v5.json)' required: true type: string artifact_suffix: @@ -63,11 +63,12 @@ on: default: 'None' options: - None - - Master Models - - Release Models - - 2025 World Models - - 2026 World Models + - Simple Plan Models + - Space Lab Models + - TR Models + - DTR Models - Custom Merge Models + - FOF series models - Other custom_model_folder: description: 'Custom model folder name (if "Other" selected)' diff --git a/.github/workflows/sunnypilot-build-model.yaml b/.github/workflows/sunnypilot-build-model.yaml index 2c435e58a0..acb75af55e 100644 --- a/.github/workflows/sunnypilot-build-model.yaml +++ b/.github/workflows/sunnypilot-build-model.yaml @@ -30,11 +30,6 @@ on: required: false type: string default: '' - target_hardware: - description: 'Hardware target to compile for (qcom or usbgpu)' - required: false - type: string - default: 'qcom' workflow_dispatch: inputs: upstream_branch: @@ -51,14 +46,6 @@ on: required: false type: boolean default: true - target_hardware: - description: 'Hardware target to compile for' - required: true - type: choice - options: - - qcom - - usbgpu - default: 'qcom' run-name: Build model [${{ inputs.custom_name || inputs.upstream_branch }}] from ref [${{ inputs.upstream_branch }}] @@ -174,30 +161,19 @@ jobs: name: models-${{ env.REF }}${{ inputs.artifact_suffix }} path: ${{ env.MODELS_DIR }} - run: | - rm -f ${{ env.MODELS_DIR }}/{dmonitoring_model,big_driving_policy,big_driving_vision,big_driving_supercombo}.onnx + rm -f ${{ env.MODELS_DIR }}/{dmonitoring_model,big_driving_policy,big_driving_vision}.onnx - name: Build Model run: | source /etc/profile export UV_PROJECT_ENVIRONMENT=${HOME}/venv export VIRTUAL_ENV=$UV_PROJECT_ENVIRONMENT - source ${UV_PROJECT_ENVIRONMENT}/bin/activate export PYTHONPATH="${PYTHONPATH}:${{ env.TINYGRAD_PATH }}:${{ github.workspace }}" COMPILE_MODELD="${{ github.workspace }}/openpilot/sunnypilot/modeld_v2/compile_modeld.py" MODEL_SIZE=$(python3 -c "from openpilot.common.transformations.model import MEDMODEL_INPUT_SIZE as s; print(f'{s[0]}x{s[1]}')") CAMERA_RES=$(python3 -c "from openpilot.common.transformations.camera import _ar_ox_fisheye as a, _os_fisheye as o; print(f'{a.width}x{a.height} {o.width}x{o.height}')") - - if [ "${{ inputs.target_hardware }}" == "usbgpu" ]; then - echo "USBGPU build" - export USBGPU=1 - TG_FLAGS="DEV=AMD USBGPU=1 IMAGE=1 FLOAT16=1 NOLOCALS=1 JIT_BATCH_SIZE=0 OPENPILOT_HACKS=1" - OUTPUT_PKL="${{ env.MODELS_DIR }}/big_driving_tinygrad.pkl" - else - echo "QCOM build" - TG_FLAGS="DEV=QCOM IMAGE=1 FLOAT16=1 NOLOCALS=1 JIT_BATCH_SIZE=0 OPENPILOT_HACKS=1" - OUTPUT_PKL="${{ env.MODELS_DIR }}/driving_tinygrad.pkl" - fi + TG_FLAGS="DEV=QCOM IMAGE=1 FLOAT16=1 NOLOCALS=1 JIT_BATCH_SIZE=0 OPENPILOT_HACKS=1" # Generate metadata for all ONNX files find "${{ env.MODELS_DIR }}" -maxdepth 1 -name '*.onnx' | while IFS= read -r onnx_file; do @@ -210,13 +186,7 @@ jobs: POLICY_ONNX="${{ env.MODELS_DIR }}/driving_policy.onnx" OFF_POLICY_ONNX="${{ env.MODELS_DIR }}/driving_off_policy.onnx" ON_POLICY_ONNX="${{ env.MODELS_DIR }}/driving_on_policy.onnx" - SUPERCOMBO_ONNX="" - for f in "${{ env.MODELS_DIR }}/supercombo.onnx" "${{ env.MODELS_DIR }}/driving_supercombo.onnx"; do - if [ -f "$f" ]; then - SUPERCOMBO_ONNX="$f" - break - fi - done + SUPERCOMBO_ONNX="${{ env.MODELS_DIR }}/supercombo.onnx" MODEL_TYPE="" ONNX_ARGS="" OUTPUT_NAME="" if [ -f "$VISION_ONNX" ]; then @@ -237,15 +207,24 @@ jobs: fi if [ -n "$MODEL_TYPE" ]; then - echo "Detected: $MODEL_TYPE -> $OUTPUT_PKL" + echo "Detected: $MODEL_TYPE -> driving_tinygrad.pkl" env ${TG_FLAGS} python3 "$COMPILE_MODELD" \ --model-type $MODEL_TYPE \ --model-size $MODEL_SIZE \ --camera-resolutions $CAMERA_RES \ $ONNX_ARGS \ - --output "$OUTPUT_PKL" + --output "${{ env.MODELS_DIR }}/driving_tinygrad.pkl" fi + - name: Validate Model Outputs + run: | + source /etc/profile + export UV_PROJECT_ENVIRONMENT=${HOME}/venv + export VIRTUAL_ENV=$UV_PROJECT_ENVIRONMENT + python3 "${{ github.workspace }}/release/ci/model_generator.py" \ + --validate-only \ + --model-dir "${{ env.MODELS_DIR }}" + - name: Prepare Output run: | sudo rm -rf ${{ env.OUTPUT_DIR }}