feat: automate image builds with different libtpu version daily and enhance JobSet DAG validations - #246
feat: automate image builds with different libtpu version daily and enhance JobSet DAG validations#246yuna-tzeng wants to merge 19 commits into
Conversation
| resources, including the JobSet and the temporary node pools. | ||
| """, | ||
| ) as dag: | ||
| docker_images = { |
There was a problem hiding this comment.
since we are adding one additional test
please provide the total execution time, for reviewing the dagrun_timeout
There was a problem hiding this comment.
for the one you provide, I'd say that's pretty close to 30, might need to set a longer timeout
as for the other ones, please double check
There was a problem hiding this comment.
Most libtpu DAGs I checked finish within 30 minutes.
I don't have the resources to test the node pool creation flow right now, so I’m letting it run in the test env for a few days to gather more timing data.
If you're worried about the 30-minute limit, I think we can go with 40 minutes instead.
The node pool creation time is the biggest variable here.
There was a problem hiding this comment.
update tpu_info_format_validation_dags and tpu_info_metrics_dag DAG timeout to 45
b81c30b to
a12e062
Compare
721afcd to
8eb5556
Compare
94e6e2b to
a54d4c8
Compare
| TPU_OBS_LIBTPU_NIGHTLY = "us-west1-docker.pkg.dev/cienet-cmcs/tpu-obs-cloud-build/libtpu-nightly:latest" | ||
| TPU_OBS_LIBTPU_STABLE = "us-west1-docker.pkg.dev/cienet-cmcs/tpu-obs-cloud-build/libtpu-stable:latest" |
There was a problem hiding this comment.
| TPU_OBS_LIBTPU_NIGHTLY = "us-west1-docker.pkg.dev/cienet-cmcs/tpu-obs-cloud-build/libtpu-nightly:latest" | |
| TPU_OBS_LIBTPU_STABLE = "us-west1-docker.pkg.dev/cienet-cmcs/tpu-obs-cloud-build/libtpu-stable:latest" | |
| LIBTPU_NIGHTLY = ( | |
| "us-west1-docker.pkg.dev/cienet-cmcs/tpu-obs-cloud-build/libtpu-nightly:" | |
| "latest" | |
| ) | |
| LIBTPU_STABLE = ( | |
| "us-west1-docker.pkg.dev/cienet-cmcs/tpu-obs-cloud-build/libtpu-stable:" | |
| "latest" | |
| ) |
| resources, including the JobSet and the temporary node pools. | ||
| """, | ||
| ) as dag: | ||
| docker_images = { |
| # TODO(b/481177412): Re-enable and validate latency metrics. | ||
| # Current Monitoring API aggregation differs from tpu-info, making it | ||
| # unsuitable as a Source of Truth. Investigation for a valid verification | ||
| # method is ongoing. | ||
| # BufferTransferLatencyStrategy(), | ||
| # HostToDeviceTransferLatenciesStrategy(), | ||
| # DeviceToHostTransferLatenciesStrategy(), | ||
| # CollectiveEndToEndLatencyLatenciesStrategy(), | ||
| BufferTransferLatencyStrategy(), | ||
| HostToDeviceTransferLatenciesStrategy(), | ||
| DeviceToHostTransferLatenciesStrategy(), | ||
| CollectiveEndToEndLatencyLatenciesStrategy(), |
There was a problem hiding this comment.
question, does Google aware of we disabled those tests in automation?
There was a problem hiding this comment.
No, I don't think they looked that closely into our DAG
There was a problem hiding this comment.
I uncommented this section because Victor mentioned recently that there were updates in the latest tpu-info, I want to validate it with automation.
https://b.corp.google.com/issues/481177412#comment5
I provided him with a manual test report comparing the differences between versions 0.10.0 and 0.11.0.
https://docs.google.com/document/d/1hF8yziLPsc7gcCgp9v5pcopkEOus_K4v_451N7rglbU/edit?pli=1&tab=t.0
However, the P99 metrics still show some discrepancies, which I also brought up to Victor during our meeting last week and he will take a look.
83622e9 to
1b87ff6
Compare
a529792 to
83f8b37
Compare
1b87ff6 to
dbdc16b
Compare
- Add TPU_OBS_LIBTPU_ image to vm_resource for environment testing. - Update tpu_info_utils logic to support parsing the latest tpu-info output format. - Add a new DAG to validate compatibility across different TPU images.
…testing Updated the tpu-info format validation DAG to include new network and latency metrics, and refactored the workflow to test multiple libtpu images. Changes: - Added new expected tables to `verify_table_amount`: - "TPU Inbound Buffer Transfer Latency" - "TPU gRPC TCP Minimum RTT" - "TPU gRPC TCP Delivery Rate" - Note: "Host Compute Latency Status" is currently commented out as the metric is broken even in manual testing. - Refactored DAG to run sequential validations for both 'stable' and 'nightly' libtpu Docker images daily. - Optimized node pool usage by creating the infrastructure once and running multiple workloads before cleanup.
Explicitly specify the stable Docker image when building jobsets in: - jobset_ttr_kill_process.py - jobset_ttr_node_pool_resize.py - jobset_ttr_pod_delete_exist.py - jobset_ttr_pod_delete.py - jobset_ttr_rollback.py - jobset_uptime_validation.py This ensures we are using a known stable image for these validation tests.
dbdc16b to
8a83f06
Compare
4af284a to
a9fa8fb
Compare
f8824db to
09c9e42
Compare
d242c8d to
f76e189
Compare
d43f051 to
a577785
Compare
ccd7f71 to
b588728
Compare
54f9a78 to
8e4ea82
Compare

Description
This PR introduces an automated pipeline for building and pushing libtpu images and significantly enhances the validation process within our TPU observability DAGs.
Automated libtpu CI/CD (Cloud Build)
Implemented a Cloud Build pipeline to automate the daily building and pushing of libtpu images to GCP.
Introduced a dual-track image strategy:
Stable: Reliable builds for production consistency.
Nightly: Latest builds to catch regressions early.
Enhanced DAG Validation Logic
Refactored tpu_info_format_validation_dag and related JobSet DAGs to sequentially validate both stable and nightly images within a single execution cycle.
Infrastructure Optimization: Updated the workflow to create the TPU node pool once and reuse it for multiple image validations, reducing overall test duration and resource overhead.
Expanded tpu-info table verification to include:
TPU Inbound Buffer Transfer Latency
TPU gRPC TCP Minimum RTT
TPU gRPC TCP Delivery Rate
Tests
Airflow/Composer
yuna-ml-auto(under GCP project:cloud-ml-auto-solutions)2.13.1Required file in GCS bucket ml-auto-solutions-dag-configs/tpu_observability
Checklist
Before submitting this PR, please make sure (put X in square brackets):