| # Licensed to the Apache Software Foundation (ASF) under one or more | |
| # contributor license agreements. See the NOTICE file distributed with | |
| # this work for additional information regarding copyright ownership. | |
| # The ASF licenses this file to You under the Apache License, Version 2.0 | |
| # (the "License"); you may not use this file except in compliance with | |
| # the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| name: Inference Python Benchmarks Dataflow | |
| on: | |
| schedule: | |
| - cron: '50 3 * * *' | |
| workflow_dispatch: | |
| # Setting explicit permissions for the action | |
| permissions: | |
| actions: write | |
| pull-requests: read | |
| checks: read | |
| contents: read | |
| deployments: read | |
| id-token: none | |
| issues: read | |
| discussions: read | |
| packages: read | |
| pages: read | |
| repository-projects: read | |
| security-events: read | |
| statuses: read | |
| # This allows a subsequently queued workflow run to interrupt previous runs | |
| concurrency: | |
| group: '${{ github.workflow }} @ ${{ github.event.pull_request.number || github.sha || github.head_ref || github.ref }}-${{ github.event.schedule || github.event.sender.login }}' | |
| cancel-in-progress: true | |
| env: | |
| DEVELOCITY_ACCESS_KEY: ${{ secrets.BEAM_DEVELOCITY_ACCESS_KEY }} | |
| INFLUXDB_USER: ${{ secrets.INFLUXDB_USER }} | |
| INFLUXDB_USER_PASSWORD: ${{ secrets.INFLUXDB_USER_PASSWORD }} | |
| jobs: | |
| beam_Inference_Python_Benchmarks_Dataflow: | |
| if: | | |
| github.event_name == 'workflow_dispatch' || | |
| (github.event_name == 'schedule' && github.repository == 'apache/beam') | |
| runs-on: [self-hosted, ubuntu-24.04, main] | |
| timeout-minutes: 3000 | |
| name: ${{ matrix.job_name }} | |
| strategy: | |
| matrix: | |
| job_name: ["beam_Inference_Python_Benchmarks_Dataflow"] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup repository | |
| uses: ./.github/actions/setup-action | |
| - name: Setup Python environment | |
| uses: ./.github/actions/setup-environment-action | |
| with: | |
| java-version: default | |
| python-version: '3.11' | |
| - name: Package Python SDK using Gradle | |
| run: ./gradlew :sdks:python:sdist -PpythonVersion=3.11 | |
| - name: Configure Docker for Artifact Registry | |
| run: gcloud auth configure-docker us-docker.pkg.dev | |
| - name: Prepare test arguments | |
| uses: ./.github/actions/test-arguments-action | |
| with: | |
| test-type: load | |
| test-language: python | |
| argument-file-paths: | | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Vision_Classification_Resnet_101.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Imagenet_Classification_Resnet_152.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Language_Modeling_Bert_Base_Uncased.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Language_Modeling_Bert_Large_Uncased.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Imagenet_Classification_Resnet_152_Tesla_T4_GPU.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Sentiment_Streaming_DistilBert_Base_Uncased.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Sentiment_Batch_DistilBert_Base_Uncased.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_VLLM_Gemma_Batch.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Table_Row_Inference_Batch.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Table_Row_Inference_Stream.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Image_Classification_Rightfit.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Image_Object_Detection.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_Pytorch_Image_Captioning.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_MLTransform_Generate_Vocab_Batch.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_MLTransform_One_Hot_Encoding_Batch.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_MLTransform_Image_Embedding_GPU_Batch.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_MLTransform_Text_Embedding_Batch.txt | |
| ${{ github.workspace }}/.github/workflows/load-tests-pipeline-options/beam_Inference_Python_Benchmarks_Dataflow_MLTransform_Image_Embedding_CPU_Batch.txt | |
| # The env variables are created and populated in the test-arguments-action as "<github.job>_test_arguments_<argument_file_paths_index>" | |
| - name: get current time | |
| run: echo "NOW_UTC=$(date '+%m%d%H%M%S' --utc)" >> $GITHUB_ENV | |
| - name: Build VLLM Development Image | |
| id: build_vllm_image | |
| uses: ./.github/actions/build-push-docker-action | |
| with: | |
| dockerfile_path: 'sdks/python/apache_beam/ml/inference/test_resources/vllm.dockerfile' | |
| image_name: 'us-docker.pkg.dev/apache-beam-testing/beam-temp/beam-vllm-gpu-base' | |
| image_tag: ${{ github.sha }} | |
| - name: Run VLLM Gemma Batch Test | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.vllm_gemma_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PsdkLocationOverride=false \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/vllm_tests_requirements.txt '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_8 }} --mode=batch --job_name=benchmark-tests-vllm-with-gemma-2b-it-batch-${{env.NOW_UTC}} --sdk_container_image=${{ steps.build_vllm_image.outputs.image_url }}' | |
| - name: run Pytorch Sentiment Streaming using Hugging Face distilbert-base-uncased model | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_sentiment_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/torch_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_6 }} --mode=streaming --job_name=benchmark-tests-pytorch-sentiment-distilbert-base-uncased-streaming-${{env.NOW_UTC}} --output_table=apache-beam-testing.beam_run_inference.result_sentiment_distilbert_base_uncased' \ | |
| - name: run Pytorch Sentiment Batch using Hugging Face distilbert-base-uncased model | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_sentiment_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/torch_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_7 }} --mode=batch --job_name=benchmark-tests-pytorch-sentiment-distilbert-base-uncased-batch-${{env.NOW_UTC}} --output_table=apache-beam-testing.beam_run_inference.result_sentiment_distilbert_base_uncased' \ | |
| - name: run Pytorch Vision Classification with Resnet 101 | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_classification_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/torch_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_1 }} --job_name=benchmark-tests-pytorch-imagenet-python-101-${{env.NOW_UTC}} --output=gs://temp-storage-for-end-to-end-tests/torch/result_resnet101-${{env.NOW_UTC}}.txt' \ | |
| - name: run Pytorch Imagenet Classification with Resnet 152 | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_classification_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/torch_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_2 }} --job_name=benchmark-tests-pytorch-imagenet-python-152-${{env.NOW_UTC}} --output=gs://temp-storage-for-end-to-end-tests/torch/result_resnet152-${{env.NOW_UTC}}.txt' \ | |
| - name: run Pytorch Language Modeling using Hugging Face bert-base-uncased model | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_language_modeling_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/torch_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_3 }} --job_name=benchmark-tests-pytorch-language-modeling-bert-base-uncased-${{env.NOW_UTC}} --output=gs://temp-storage-for-end-to-end-tests/torch/result_bert_base_uncased-${{env.NOW_UTC}}.txt' \ | |
| - name: run Pytorch Langauge Modeling using Hugging Face bert-large-uncased model | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_language_modeling_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/torch_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_4 }} --job_name=benchmark-tests-pytorch-language-modeling-bert-large-uncased-${{env.NOW_UTC}} --output=gs://temp-storage-for-end-to-end-tests/torch/result_bert_large_uncased-${{env.NOW_UTC}}.txt' \ | |
| - name: run Pytorch Imagenet Classification with Resnet 152 with Tesla T4 GPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_classification_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/torch_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_5 }} --job_name=benchmark-tests-pytorch-imagenet-python-gpu-${{env.NOW_UTC}} --output=gs://temp-storage-for-end-to-end-tests/torch/result_resnet152_gpu-${{env.NOW_UTC}}.txt' \ | |
| - name: run Table Row Inference Sklearn Batch | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.table_row_inference_benchmark \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/table_row_inference_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_9 }} --autoscaling_algorithm=NONE --metrics_table=result_table_row_inference_batch --influx_measurement=result_table_row_inference_batch --mode=batch --input_file=gs://apache-beam-ml/testing/inputs/table_rows_100k_benchmark.jsonl --input_expand_factor=100 --output_table=apache-beam-testing:beam_run_inference.result_table_row_inference_batch_outputs --job_name=benchmark-tests-table-row-inference-batch-${{env.NOW_UTC}}' \ | |
| - name: run Table Row Inference Sklearn Stream | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.table_row_inference_benchmark \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/table_row_inference_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_10 }} --autoscaling_algorithm=THROUGHPUT_BASED --max_num_workers=20 --metrics_table=result_table_row_inference_stream --influx_measurement=result_table_row_inference_stream --mode=streaming --input_subscription=projects/apache-beam-testing/subscriptions/table_row_inference_benchmark --window_size_sec=60 --trigger_interval_sec=30 --timeout_ms=900000 --output_table=apache-beam-testing:beam_run_inference.result_table_row_inference_stream_outputs --job_name=benchmark-tests-table-row-inference-stream-${{env.NOW_UTC}}' \ | |
| - name: run PyTorch Image Object Detection Faster R-CNN ResNet-50 Batch CPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_object_detection_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_object_detection_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_12 }} --device=CPU --mode=batch --job_name=benchmark-tests-pytorch-image-object-detection-batch-${{env.NOW_UTC}} --metrics_table=torch_inference_image_object_detection_batch_cpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_object_detection_batch_cpu' \ | |
| - name: run PyTorch Image Captioning BLIP + CLIP Batch CPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_captioning_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_captioning_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_13 }} --device=CPU --mode=batch --job_name=benchmark-tests-pytorch-image-captioning-batch-${{env.NOW_UTC}} --metrics_table=torch_inference_image_captioning_batch_cpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_captioning_batch_cpu' | |
| - name: run PyTorch Image Object Detection Faster R-CNN ResNet-50 Batch GPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_object_detection_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_object_detection_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_12 }} --device=GPU --worker_accelerator=type=nvidia-tesla-t4,count=1,install-nvidia-driver=true --mode=batch --job_name=benchmark-tests-pytorch-image-object-detection-batch-${{env.NOW_UTC}} --metrics_table=torch_inference_image_object_detection_batch_gpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_object_detection_batch_gpu' \ | |
| - name: run PyTorch Image Captioning BLIP + CLIP Batch GPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_captioning_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_captioning_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_13 }} --device=GPU --worker_accelerator=type=nvidia-tesla-t4,count=1,install-nvidia-driver=true --mode=batch --job_name=benchmark-tests-pytorch-image-captioning-batch-${{env.NOW_UTC}} --metrics_table=torch_inference_image_captioning_batch_gpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_captioning_batch_gpu' \ | |
| - name: run PyTorch Image Object Detection Faster R-CNN ResNet-50 Streaming CPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_object_detection_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_object_detection_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_12 }} --device=CPU --mode=streaming --job_name=benchmark-tests-pytorch-image-object-detection-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_image_object_detection_streaming_cpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_object_detection_streaming_cpu' \ | |
| - name: run PyTorch Image Captioning BLIP + CLIP Streaming CPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_captioning_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_captioning_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_13 }} --device=CPU --mode=streaming --job_name=benchmark-tests-pytorch-image-captioning-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_image_captioning_streaming_cpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_captioning_streaming_cpu' | |
| - name: run PyTorch Image Object Detection Faster R-CNN ResNet-50 Streaming GPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_object_detection_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_object_detection_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_12 }} --device=GPU --worker_accelerator=type=nvidia-tesla-t4,count=1,install-nvidia-driver=true --mode=streaming --job_name=benchmark-tests-pytorch-image-object-detection-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_image_object_detection_streaming_gpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_object_detection_streaming_gpu' \ | |
| - name: run PyTorch Image Captioning BLIP + CLIP Streaming GPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_image_captioning_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_image_captioning_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_13 }} --device=GPU --worker_accelerator=type=nvidia-tesla-t4,count=1,install-nvidia-driver=true --mode=streaming --job_name=benchmark-tests-pytorch-image-captioning-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_image_captioning_streaming_gpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_image_captioning_streaming_gpu' \ | |
| - name: run PyTorch Image Classification EfficientNet-B0 Streaming (Right-fitting) CPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_imagenet_rightfit_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_rightfit_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_11 }} --device=CPU --experiments=enable_streaming_rightfitting --mode=streaming --job_name=benchmark-tests-pytorch-imagenet-rightfit-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_imagenet_stream_rightfit_cpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_imagenet_stream_rightfit_cpu' \ | |
| - name: run PyTorch Image Classification EfficientNet-B0 Streaming (Right-fitting Exactly-once) CPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_imagenet_rightfit_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_rightfit_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_11 }} --device=CPU --experiments=enable_streaming_rightfitting --mode=streaming --job_name=benchmark-tests-pytorch-imagenet-rightfit-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_imagenet_stream_rightfit_once_cpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_imagenet_stream_rightfit_once_cpu' \ | |
| - name: run PyTorch Image Classification EfficientNet-B0 Streaming (Right-fitting) GPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_imagenet_rightfit_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_rightfit_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_11 }} --device=GPU --experiments=enable_streaming_rightfitting,worker_accelerator=type:nvidia-tesla-t4;count:1;install-nvidia-driver:5xx --mode=streaming --job_name=benchmark-tests-pytorch-imagenet-rightfit-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_imagenet_stream_rightfit_gpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_imagenet_stream_rightfit_gpu' \ | |
| - name: run PyTorch Image Classification EfficientNet-B0 Streaming (Right-fitting Exactly-once) GPU | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.pytorch_imagenet_rightfit_benchmarks \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/inference/pytorch_rightfit_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_11 }} --device=GPU --experiments=enable_streaming_rightfitting,worker_accelerator=type:nvidia-tesla-t4;count:1;install-nvidia-driver:5xx --mode=streaming --job_name=benchmark-tests-pytorch-imagenet-rightfit-streaming-${{env.NOW_UTC}} --metrics_table=torch_inference_imagenet_stream_rightfit_once_gpu --output_table=apache-beam-testing.beam_run_inference.result_torch_inference_imagenet_stream_rightfit_once_gpu' \ | |
| - name: run MLTransform Generate Vocab Batch | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.mltransform_generate_vocab_benchmark \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/examples/ml_transform/mltransform_generate_vocab_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_14 }} --job_name=benchmark-tests-mltransform-generate-vocab-batch-${{env.NOW_UTC}} --artifact_location=gs://temp-storage-for-perf-tests/mltransform/vocab_artifacts_${{env.NOW_UTC}} --output_vocab=gs://temp-storage-for-perf-tests/mltransform/vocab_outputs/mltransform_generate_vocab_batch_${{env.NOW_UTC}}' | |
| - name: run MLTransform One-Hot Encoding Batch | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.mltransform_one_hot_encoding_benchmark \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/examples/ml_transform/mltransform_one_hot_encoding_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_15 }} --autoscaling_algorithm=NONE --metrics_table=mltransform_one_hot_encoding_batch --influx_measurement=mltransform_one_hot_encoding_batch --job_name=benchmark-tests-mltransform-one-hot-encoding-batch-${{env.NOW_UTC}} --output_file=gs://temp-storage-for-end-to-end-tests/mltransform/one_hot_output_${{env.NOW_UTC}} --artifact_location=gs://temp-storage-for-end-to-end-tests/mltransform/artifacts_${{env.NOW_UTC}}' | |
| - name: run MLTransform Image Embedding GPU Batch | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.mltransform_image_embedding_benchmark \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/transforms/mltransform_embedding_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_16 }} --artifact_location=gs://temp-storage-for-perf-tests/loadtests/mltransform_image_embedding_gpu/artifacts-${{env.NOW_UTC}} --job_name=benchmark-tests-mltransform-image-embedding-gpu-batch-${{env.NOW_UTC}}' | |
| - name: run MLTransform Text Embedding Batch | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.mltransform_text_embedding_benchmark \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/transforms/mltransform_embedding_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_17 }} --output=gs://temp-storage-for-perf-tests/loadtests/mltransform_text_embedding/results-${{env.NOW_UTC}} --artifact_location=gs://temp-storage-for-perf-tests/loadtests/mltransform_text_embedding/artifacts-${{env.NOW_UTC}} --job_name=benchmark-tests-mltransform-text-embedding-batch-${{env.NOW_UTC}}' | |
| - name: run MLTransform Image Embedding CPU Batch | |
| uses: ./.github/actions/gradle-command-self-hosted-action | |
| timeout-minutes: 180 | |
| with: | |
| gradle-command: :sdks:python:apache_beam:testing:load_tests:run | |
| arguments: | | |
| -PloadTest.mainClass=apache_beam.testing.benchmarks.inference.mltransform_image_embedding_benchmark \ | |
| -Prunner=DataflowRunner \ | |
| -PpythonVersion=3.11 \ | |
| -PloadTest.requirementsTxtFile=apache_beam/ml/transforms/mltransform_embedding_tests_requirements.txt \ | |
| '-PloadTest.args=${{ env.beam_Inference_Python_Benchmarks_Dataflow_test_arguments_18 }} --artifact_location=gs://temp-storage-for-perf-tests/loadtests/mltransform_image_embedding_cpu/artifacts-${{env.NOW_UTC}} --job_name=benchmark-tests-mltransform-image-embedding-cpu-batch-${{env.NOW_UTC}}' |