Skip to content

Commit 6bf98a2

Browse files
committed
Merge branch 'main' of github.com:AI-Hypercomputer/maxtext into shuningjin-ckpt-structure
2 parents 0143f05 + 093ab89 commit 6bf98a2

332 files changed

Lines changed: 13837 additions & 3529 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.git
2+
maxtext_venv

.github/CODEOWNERS

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,34 @@
1-
* @gobbleturk @khatwanimohit @bvandermoon @vipannalla @RissyRan @richjames0 @gagika @shralex @SurbhiJainUSC @hengtaoguo @A9isha @aireenmei @NuojCheng @jiangjy1982 @suexu1025 @NicoGrande @jesselu-google
1+
* @gobbleturk @khatwanimohit @bvandermoon @vipannalla @RissyRan @richjames0 @gagika @shralex @SurbhiJainUSC @hengtaoguo @A9isha @aireenmei @NuojCheng @jiangjy1982 @suexu1025 @NicoGrande @jesselu-google @dipannita08 @igorts-git
22

33
# Model bring-up
4-
src/MaxText/assets @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @gagika @shralex @richjames0 @NicoGrande
5-
src/MaxText/configs/models @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @gagika @shralex @richjames0 @NicoGrande @suexu1025 @jesselu-google
4+
src/maxtext/assets @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @gagika @shralex @richjames0 @NicoGrande
5+
src/maxtext/configs/models @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @gagika @shralex @richjames0 @NicoGrande @jesselu-google @NuojCheng
66
src/maxtext/checkpoint_conversion @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @hengtaoguo @gagika @shralex @richjames0 @NicoGrande
7-
src/MaxText/layers @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @gagika @shralex @richjames0 @NicoGrande @suexu1025 @jesselu-google
7+
src/maxtext/layers @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @gagika @shralex @richjames0 @NicoGrande @jesselu-google @NuojCheng
8+
src/maxtext/models @parambole @shuningjin @RissyRan @suexu1025 @jiangjy1982 @gobbleturk @bvandermoon @gagika @shralex @richjames0 @NicoGrande @jesselu-google @NuojCheng
89

910
# Features
1011
src/maxtext/experimental/rl @A9isha @khatwanimohit @xuefgu @gagika @richjames0 @shralex @NicoGrande
11-
src/MaxText/input_pipeline @aireenmei @SurbhiJainUSC @richjames0 @shralex @NicoGrande
12-
src/MaxText/kernels/megablox @RissyRan @michelle-yooh @gagika @richjames0 @shralex @suexu1025 @jesselu-google
13-
src/MaxText/kernels/ragged_attention.py @patemotter @vipannalla @richjames0 @shralex
14-
src/MaxText/layers/pipeline.py @gobbleturk @richjames0 @shralex
15-
src/MaxText/layers/moe.py @RissyRan @michelle-yooh @gagika @richjames0 @shralex @suexu1025 @jesselu-google
16-
src/MaxText/layers/multi_token_prediction.py @parambole @RissyRan @gagika @richjames0 @shralex
17-
src/MaxText/elastic_train.py @lukebaumann @shauryagup @richjames0 @shralex
18-
src/MaxText/layers/quantizations.py @khatwanimohit @jshin1394 @liudangyi @richjames0 @shralex
12+
src/maxtext/input_pipeline @aireenmei @SurbhiJainUSC @richjames0 @shralex @NicoGrande
13+
src/maxtext/kernels/megablox @RissyRan @michelle-yooh @gagika @richjames0 @shralex @suexu1025 @jesselu-google
14+
src/maxtext/kernels/ragged_attention.py @patemotter @vipannalla @richjames0 @shralex
15+
src/maxtext/layers/pipeline.py @gobbleturk @richjames0 @shralex @NuojCheng
16+
src/maxtext/layers/moe.py @RissyRan @michelle-yooh @gagika @richjames0 @shralex @suexu1025 @jesselu-google
17+
src/maxtext/layers/multi_token_prediction.py @parambole @RissyRan @gagika @richjames0 @shralex
18+
src/maxtext/layers/quantizations.py @khatwanimohit @jshin1394 @liudangyi @richjames0 @shralex
1919

2020
# Inference
21-
src/maxtext/tests/inference @vipannalla @mitalisi @gpolovets1 @mailvijayasingh @jrplatin @patemotter @lumosis @richjames0
21+
tests/inference/ @vipannalla @mitalisi @gpolovets1 @mailvijayasingh @jrplatin @patemotter @lumosis @richjames0
2222
src/maxtext/inference @vipannalla @mitalisi @gpolovets1 @mailvijayasingh @jrplatin @patemotter @lumosis @richjames0
23-
src/maxtext/inference_mlperf @vipannalla @mitalisi @gpolovets1 @mailvijayasingh @jrplatin @patemotter @lumosis @richjames0
2423

2524
# Dockerfiles and dependencies
26-
*.Dockerfile @bvandermoon @parambole @richjames0 @shralex
27-
*.txt @bvandermoon @parambole @richjames0 @shralex
25+
src/dependencies/ @bvandermoon @parambole @richjames0 @shralex
2826

2927
# Docs
30-
*.md @jacoguzo @bvandermoon @richjames0 @shralex @gobbleturk @RissyRan @gagika @A9isha @jiangjy1982 @vipannalla
28+
docs/ @jacoguzo @bvandermoon @richjames0 @shralex @gobbleturk @RissyRan @gagika @A9isha @jiangjy1982 @vipannalla
3129

3230
# Workflow files
33-
.github/workflows @gobbleturk @khatwanimohit @shralex @parambole @bvandermoon @richjames0
31+
.github/workflows/ @gobbleturk @khatwanimohit @shralex @parambole @bvandermoon @richjames0
3432

3533
# Benchmarking/Recipes
36-
benchmarks @SujeethJinesh @bvandermoon @richjames0 @shralex @vipannalla @mitalisi @RissyRan @shauryagup @NuojCheng @gobbleturk @khatwanimohit @Obliviour @notabee @suexu1025
34+
benchmarks/ @SujeethJinesh @bvandermoon @richjames0 @shralex @vipannalla @mitalisi @RissyRan @shauryagup @NuojCheng @gobbleturk @khatwanimohit @Obliviour @notabee @suexu1025

.github/workflows/UploadDockerImages.yml

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ jobs:
6565
- device: tpu
6666
build_mode: stable
6767
image_name: maxtext_jax_stable
68-
dockerfile: ./dependencies/dockerfiles/maxtext_tpu_dependencies.Dockerfile
68+
dockerfile: ./src/dependencies/dockerfiles/maxtext_tpu_dependencies.Dockerfile
6969
- device: tpu
7070
build_mode: nightly
7171
image_name: maxtext_jax_nightly
72-
dockerfile: ./dependencies/dockerfiles/maxtext_tpu_dependencies.Dockerfile
72+
dockerfile: ./src/dependencies/dockerfiles/maxtext_tpu_dependencies.Dockerfile
7373
uses: ./.github/workflows/build_and_push_docker_image.yml
7474
with:
7575
image_name: ${{ matrix.image_name }}
@@ -79,31 +79,18 @@ jobs:
7979
maxtext_sha: ${{ needs.setup.outputs.maxtext_sha }}
8080
image_date: ${{ needs.setup.outputs.image_date }}
8181

82-
tpu-post-training:
83-
name: ${{ matrix.image_name }}
84-
needs: [setup, tpu-pre-training]
85-
strategy:
86-
fail-fast: false
87-
matrix:
88-
include:
89-
- device: tpu
90-
build_mode: post-training
91-
image_name: maxtext_post_training_stable
92-
dockerfile: ./dependencies/dockerfiles/maxtext_post_training_dependencies.Dockerfile
93-
- device: tpu
94-
build_mode: post-training
95-
image_name: maxtext_post_training_nightly
96-
dockerfile: ./dependencies/dockerfiles/maxtext_post_training_local_dependencies.Dockerfile
82+
tpu-post-training-nightly:
83+
name: tpu-post-training-nightly
84+
needs: [setup]
9785
uses: ./.github/workflows/build_and_push_docker_image.yml
9886
with:
99-
image_name: ${{ matrix.image_name }}
100-
device: ${{ matrix.device }}
101-
build_mode: ${{ matrix.build_mode }}
102-
dockerfile: ${{ matrix.dockerfile }}
87+
image_name: maxtext_post_training_nightly
88+
device: tpu
89+
build_mode: nightly
90+
workflow: post-training
91+
dockerfile: ./src/dependencies/dockerfiles/maxtext_tpu_dependencies.Dockerfile
10392
maxtext_sha: ${{ needs.setup.outputs.maxtext_sha }}
10493
image_date: ${{ needs.setup.outputs.image_date }}
105-
base_image: gcr.io/tpu-prod-env-multipod/maxtext_jax_stable:${{ needs.setup.outputs.image_date }}
106-
is_post_training: true
10794

10895
gpu-pre-training:
10996
name: ${{ matrix.image_name }}
@@ -115,11 +102,11 @@ jobs:
115102
- device: gpu
116103
build_mode: stable
117104
image_name: maxtext_gpu_jax_stable
118-
dockerfile: ./dependencies/dockerfiles/maxtext_gpu_dependencies.Dockerfile
105+
dockerfile: ./src/dependencies/dockerfiles/maxtext_gpu_dependencies.Dockerfile
119106
- device: gpu
120107
build_mode: nightly
121108
image_name: maxtext_gpu_jax_nightly
122-
dockerfile: ./dependencies/dockerfiles/maxtext_gpu_dependencies.Dockerfile
109+
dockerfile: ./src/dependencies/dockerfiles/maxtext_gpu_dependencies.Dockerfile
123110
uses: ./.github/workflows/build_and_push_docker_image.yml
124111
with:
125112
image_name: ${{ matrix.image_name }}

.github/workflows/build_and_push_docker_image.yml

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ on:
3535
required: true
3636
type: string
3737
image_date:
38-
required: true
38+
required: false
3939
type: string
40-
base_image:
40+
workflow:
4141
required: false
4242
type: string
43-
default: ''
44-
is_post_training:
43+
default: 'pre-training'
44+
version_name:
4545
required: false
46-
type: boolean
47-
default: false
46+
type: string
47+
default: ''
4848

4949
permissions:
5050
contents: read
@@ -115,43 +115,50 @@ jobs:
115115
push: true
116116
context: .
117117
file: ${{ inputs.dockerfile }}
118-
tags: gcr.io/tpu-prod-env-multipod/${{ inputs.image_name }}:latest
118+
tags: gcr.io/tpu-prod-env-multipod/${{ inputs.image_name }}:${{ github.run_id }}
119119
cache-from: type=gha
120120
outputs: type=image,compression=zstd,force-compression=true
121121
build-args: |
122122
DEVICE=${{ inputs.device }}
123123
MODE=${{ inputs.build_mode }}
124+
WORKFLOW=${{ inputs.workflow }}
124125
JAX_VERSION=NONE
125126
LIBTPU_VERSION=NONE
126127
INCLUDE_TEST_ASSETS=true
127-
${{ inputs.base_image != '' && format('BASEIMAGE={0}', inputs.base_image) || '' }}
128128
129129
- name: Add tags to Docker image
130130
if: steps.check.outputs.should_run == 'true'
131131
shell: bash
132132
run: |
133133
SOURCE_IMAGE="gcr.io/tpu-prod-env-multipod/${INPUTS_IMAGE_NAME}"
134134
135-
# Add date tag
136-
gcloud container images add-tag "$SOURCE_IMAGE:latest" "$SOURCE_IMAGE:${INPUTS_IMAGE_DATE}" --quiet
135+
if [[ $INPUTS_VERSION_NAME ]]; then
136+
echo "Tagging docker images corresponding to PyPI release..."
137+
gcloud container images add-tag "$SOURCE_IMAGE:${{ github.run_id }}" "$SOURCE_IMAGE:${INPUTS_VERSION_NAME}" --quiet
138+
else
139+
echo "Tagging docker images corresponding to nightly release..."
137140
138-
# Convert date to YYYYMMDD format
139-
clean_date=$(echo "${INPUTS_IMAGE_DATE}" | sed 's/[-:]//g' | cut -c1-8)
141+
# Add date tag
142+
gcloud container images add-tag "$SOURCE_IMAGE:${{ github.run_id }}" "$SOURCE_IMAGE:${INPUTS_IMAGE_DATE}" --quiet
140143
141-
# Add MaxText tag
142-
maxtext_hash=$(git rev-parse --short HEAD)
143-
gcloud container images add-tag "$SOURCE_IMAGE:latest" "$SOURCE_IMAGE:maxtext_${maxtext_hash}_${clean_date}" --quiet
144+
# Convert date to YYYYMMDD format
145+
clean_date=$(echo "${INPUTS_IMAGE_DATE}" | sed 's/[-:]//g' | cut -c1-8)
144146
147+
# Add MaxText tag
148+
maxtext_hash=$(git rev-parse --short HEAD)
149+
gcloud container images add-tag "$SOURCE_IMAGE:${{ github.run_id }}" "$SOURCE_IMAGE:maxtext_${maxtext_hash}_${clean_date}" --quiet
145150
146151
# Add post-training dependencies tags
147-
if [ "${{ inputs.is_post_training }}" == "true" ]; then
152+
if [ "${{ inputs.workflow }}" == "post-training" ]; then
148153
for dir in tunix vllm tpu-inference; do
149154
if [ -d "./$dir" ]; then
150155
dir_hash=$(git -C "$dir" rev-parse --short HEAD)
151-
gcloud container images add-tag "$SOURCE_IMAGE:latest" "$SOURCE_IMAGE:${dir}_${dir_hash}_${clean_date}" --quiet
152-
fi
153-
done
156+
gcloud container images add-tag "$SOURCE_IMAGE:${{ github.run_id }}" "$SOURCE_IMAGE:${dir}_${dir_hash}_${clean_date}" --quiet
157+
fi
158+
done
159+
fi
154160
fi
155161
env:
156162
INPUTS_IMAGE_NAME: ${{ inputs.image_name }}
157163
INPUTS_IMAGE_DATE: ${{ inputs.image_date }}
164+
INPUTS_VERSION_NAME: ${{ inputs.version_name }}

.github/workflows/build_and_test_maxtext.yml

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ jobs:
133133
device_name: X64
134134
cloud_runner: linux-x86-n2-16
135135
image_type: ${{ matrix.image_type }}
136-
pytest_marker: 'cpu_only'
136+
pytest_marker: 'cpu_only and not post_training'
137137
xla_python_client_mem_fraction: 0.75
138138
tf_force_gpu_allow_growth: false
139139
container_resource_option: "--privileged"
@@ -155,7 +155,7 @@ jobs:
155155
device_name: v6e-4
156156
image_type: ${{ matrix.image_type }}
157157
cloud_runner: linux-x86-ct6e-180-4tpu
158-
pytest_marker: 'not cpu_only and not gpu_only and not integration_test'
158+
pytest_marker: 'not cpu_only and not gpu_only and not integration_test and not post_training'
159159
xla_python_client_mem_fraction: 0.75
160160
tf_force_gpu_allow_growth: false
161161
container_resource_option: "--privileged"
@@ -175,7 +175,7 @@ jobs:
175175
device_name: v6e-4
176176
image_type: ${{ matrix.image_type }}
177177
cloud_runner: linux-x86-ct6e-180-4tpu
178-
pytest_marker: 'not cpu_only and not gpu_only and integration_test'
178+
pytest_marker: 'not cpu_only and not gpu_only and integration_test and not post_training'
179179
xla_python_client_mem_fraction: 0.75
180180
tf_force_gpu_allow_growth: false
181181
container_resource_option: "--privileged"
@@ -195,7 +195,7 @@ jobs:
195195
device_name: v6e-4
196196
image_type: ${{ matrix.image_type }}
197197
cloud_runner: linux-x86-ct6e-180-4tpu
198-
pytest_marker: 'not cpu_only and not gpu_only and not integration_test'
198+
pytest_marker: 'not cpu_only and not gpu_only and not integration_test and not post_training'
199199
xla_python_client_mem_fraction: 0.75
200200
tf_force_gpu_allow_growth: false
201201
container_resource_option: "--privileged"
@@ -215,7 +215,7 @@ jobs:
215215
device_name: v6e-4
216216
image_type: ${{ matrix.image_type }}
217217
cloud_runner: linux-x86-ct6e-180-4tpu
218-
pytest_marker: 'not cpu_only and not gpu_only and integration_test'
218+
pytest_marker: 'not cpu_only and not gpu_only and integration_test and not post_training'
219219
xla_python_client_mem_fraction: 0.75
220220
tf_force_gpu_allow_growth: false
221221
container_resource_option: "--privileged"
@@ -236,13 +236,57 @@ jobs:
236236
device_name: a100-40gb-4
237237
image_type: ${{ matrix.image_type }}
238238
cloud_runner: linux-x86-a2-48-a100-4gpu
239-
pytest_marker: 'not cpu_only and not tpu_only and not integration_test'
239+
pytest_marker: 'not cpu_only and not tpu_only and not integration_test and not post_training'
240240
xla_python_client_mem_fraction: 0.65
241241
tf_force_gpu_allow_growth: true
242242
container_resource_option: "--shm-size 2g --runtime=nvidia --gpus all --privileged"
243243
is_scheduled_run: ${{ github.event_name == 'schedule' }}
244244
maxtext_sha: ${{ needs.build_and_upload_maxtext_package.outputs.maxtext_sha }}
245245

246+
maxtext_post_training_cpu_unit_tests:
247+
needs: build_and_upload_maxtext_package
248+
if: needs.doc_only_check.outputs.run_tests == 'true'
249+
uses: ./.github/workflows/run_tests_against_package.yml
250+
strategy:
251+
fail-fast: false
252+
matrix:
253+
image_type: ["py312"]
254+
with:
255+
device_type: cpu
256+
device_name: X64
257+
cloud_runner: linux-x86-n2-16
258+
image_type: ${{ matrix.image_type }}
259+
pytest_marker: 'cpu_only'
260+
pytest_addopts: 'tests/post_training/unit'
261+
xla_python_client_mem_fraction: 0.75
262+
tf_force_gpu_allow_growth: false
263+
container_resource_option: "--privileged"
264+
is_scheduled_run: ${{ github.event_name == 'schedule' }}
265+
extra_pip_deps_file: 'src/install_maxtext_extra_deps/extra_post_train_base_deps_from_github.txt'
266+
maxtext_sha: ${{ needs.build_and_upload_maxtext_package.outputs.maxtext_sha }}
267+
268+
maxtext_post_training_tpu_unit_tests:
269+
needs: build_and_upload_maxtext_package
270+
if: needs.doc_only_check.outputs.run_tests == 'true'
271+
uses: ./.github/workflows/run_tests_against_package.yml
272+
strategy:
273+
fail-fast: false
274+
matrix:
275+
image_type: ["py312"]
276+
with:
277+
device_type: tpu
278+
device_name: v6e-4
279+
image_type: ${{ matrix.image_type }}
280+
cloud_runner: linux-x86-ct6e-180-4tpu
281+
pytest_marker: 'tpu_only'
282+
pytest_addopts: 'tests/post_training/unit'
283+
xla_python_client_mem_fraction: 0.75
284+
tf_force_gpu_allow_growth: false
285+
container_resource_option: "--privileged"
286+
is_scheduled_run: ${{ github.event_name == 'schedule' }}
287+
extra_pip_deps_file: 'src/install_maxtext_extra_deps/extra_post_train_base_deps_from_github.txt'
288+
maxtext_sha: ${{ needs.build_and_upload_maxtext_package.outputs.maxtext_sha }}
289+
246290
maxtext_gpu_integration_tests:
247291
needs: build_and_upload_maxtext_package
248292
if: needs.doc_only_check.outputs.run_tests == 'true'
@@ -257,7 +301,7 @@ jobs:
257301
device_name: a100-40gb-4
258302
image_type: ${{ matrix.image_type }}
259303
cloud_runner: linux-x86-a2-48-a100-4gpu
260-
pytest_marker: 'not cpu_only and not tpu_only and integration_test'
304+
pytest_marker: 'not cpu_only and not tpu_only and integration_test and not post_training'
261305
xla_python_client_mem_fraction: 0.65
262306
tf_force_gpu_allow_growth: true
263307
container_resource_option: "--shm-size 2g --runtime=nvidia --gpus all --privileged"
@@ -266,7 +310,7 @@ jobs:
266310

267311
all_tests_passed:
268312
name: All Required Tests Passed
269-
needs: [doc_only_check, build_and_upload_maxtext_package, maxtext_cpu_unit_tests, maxtext_tpu_unit_tests, maxtext_tpu_integration_tests, maxtext_tpu_pathways_unit_tests, maxtext_tpu_pathways_integration_tests, maxtext_gpu_unit_tests, maxtext_gpu_integration_tests]
313+
needs: [doc_only_check, build_and_upload_maxtext_package, maxtext_cpu_unit_tests, maxtext_tpu_unit_tests, maxtext_tpu_integration_tests, maxtext_tpu_pathways_unit_tests, maxtext_tpu_pathways_integration_tests, maxtext_gpu_unit_tests, maxtext_gpu_integration_tests, maxtext_post_training_cpu_unit_tests, maxtext_post_training_tpu_unit_tests]
270314
if: always()
271315
runs-on: ubuntu-latest
272316
steps:
@@ -287,6 +331,8 @@ jobs:
287331
echo "TPU pathways integration: ${NEEDS_MAXTEXT_TPU_PATHWAYS_INTEGRATION_TESTS_RESULT}"
288332
echo "GPU tests: ${NEEDS_MAXTEXT_GPU_UNIT_TESTS_RESULT}"
289333
echo "GPU integration: ${NEEDS_MAXTEXT_GPU_INTEGRATION_TESTS_RESULT}"
334+
echo "Post-training CPU tests: ${NEEDS_MAXTEXT_POST_TRAINING_CPU_UNIT_TESTS_RESULT}"
335+
echo "Post-training TPU tests: ${NEEDS_MAXTEXT_POST_TRAINING_TPU_UNIT_TESTS_RESULT}"
290336
291337
# Fail only if any job failed or was cancelled (skipped is OK)
292338
if [ "${{ contains(needs.*.result, 'failure') }}" == "true" ] || [ "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]; then
@@ -305,6 +351,8 @@ jobs:
305351
NEEDS_MAXTEXT_TPU_PATHWAYS_INTEGRATION_TESTS_RESULT: ${{ needs.maxtext_tpu_pathways_integration_tests.result }}
306352
NEEDS_MAXTEXT_GPU_UNIT_TESTS_RESULT: ${{ needs.maxtext_gpu_unit_tests.result }}
307353
NEEDS_MAXTEXT_GPU_INTEGRATION_TESTS_RESULT: ${{ needs.maxtext_gpu_integration_tests.result }}
354+
NEEDS_MAXTEXT_POST_TRAINING_CPU_UNIT_TESTS_RESULT: ${{ needs.maxtext_post_training_cpu_unit_tests.result }}
355+
NEEDS_MAXTEXT_POST_TRAINING_TPU_UNIT_TESTS_RESULT: ${{ needs.maxtext_post_training_tpu_unit_tests.result }}
308356

309357
all_notebooks_passed:
310358
name: All Notebooks Passed
@@ -337,7 +385,7 @@ jobs:
337385

338386
notify_failure:
339387
name: Notify failed build # creates an issue or modifies last open existing issue for failed build
340-
needs: [maxtext_jupyter_notebooks, maxtext_cpu_unit_tests, maxtext_tpu_unit_tests, maxtext_tpu_integration_tests, maxtext_tpu_pathways_unit_tests, maxtext_tpu_pathways_integration_tests, maxtext_gpu_unit_tests, maxtext_gpu_integration_tests]
388+
needs: [maxtext_jupyter_notebooks, maxtext_cpu_unit_tests, maxtext_tpu_unit_tests, maxtext_tpu_integration_tests, maxtext_tpu_pathways_unit_tests, maxtext_tpu_pathways_integration_tests, maxtext_gpu_unit_tests, maxtext_gpu_integration_tests, maxtext_post_training_cpu_unit_tests, maxtext_post_training_tpu_unit_tests]
341389
if: ${{ always() }}
342390
runs-on: ubuntu-latest
343391
permissions:

0 commit comments

Comments
 (0)