Skip to content

Commit 838f709

Browse files
authored
Fix docker working with MLC (#143)
* Fixes for docker deps * Fix update_meta_if_env working for docker * Added backup url for R50 model * Update test-mlperf-inference-resnet50.yml * Fix README text in script module
1 parent 6d0e8b1 commit 838f709

File tree

5 files changed

+40
-33
lines changed

5 files changed

+40
-33
lines changed

.github/workflows/test-mlperf-inference-resnet50.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: MLPerf inference ResNet50
22

33
on:
4-
pull_request:
4+
pull_request_target:
55
branches: [ "main", "dev" ]
66
paths:
77
- '.github/workflows/test-mlperf-inference-resnet50.yml'
@@ -72,14 +72,8 @@ jobs:
7272
git config --global user.email "mlcommons-bot@users.noreply.github.com"
7373
git clone -b auto-update https://github.com/mlcommons/mlperf_inference_test_submissions_v5.0 tmp
7474
cd tmp
75-
RE=$PAT
76-
echo $RE
77-
echo $PAT
78-
lop=$RE
79-
echo $lop
80-
echo ${{ env.PAT }}
8175
echo "hello" >> README.md
8276
git commit -a -m "Test commit"
83-
git push https://${PAT}@github.com/mlcommons/mlperf_inference_test_submissions_v5.0 HEAD:${{ github.ref_name }}
77+
git push https://git:${PAT}@github.com/mlcommons/mlperf_inference_test_submissions_v5.0 HEAD:${{ github.ref_name }}
8478
8579
# mlcr --tags=push,github,mlperf,inference,submission --env.MLC_GITHUB_PAT=pat --repo_url=https://github.com/mlcommons/mlperf_inference_test_submissions_v5.0 --repo_branch=auto-update --commit_message="Results from R50 GH action on ${{ matrix.os }}" --quiet

automation/script/docker.py

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ def dockerfile(self_module, input_params):
3131
return {'return': 1, 'error': 'No scripts were found'}
3232

3333
# Step 3: Process Dockerfile-related configurations
34-
environment_vars = input_params.get('env', {})
34+
env = input_params.get('env', {})
3535
state_data = input_params.get('state', {})
3636
constant_vars = input_params.get('const', {})
3737
constant_state = input_params.get('const_state', {})
38-
dockerfile_environment_vars = input_params.get('dockerfile_env', {})
38+
dockerfile_env = input_params.get('dockerfile_env', {})
3939
tag_values = input_params.get('tags', '').split(",")
4040
variation_tags = [tag[1:] for tag in tag_values if tag.startswith("_")]
4141

@@ -55,13 +55,13 @@ def dockerfile(self_module, input_params):
5555
'script_variation_tags': variation_tags
5656
}
5757
docker_settings = metadata.get('docker', {})
58-
docker_settings['dockerfile_env'] = dockerfile_environment_vars
58+
docker_settings['dockerfile_env'] = dockerfile_env
5959
state_data['docker'] = docker_settings
6060
add_deps_recursive = input_params.get('add_deps_recursive', {})
6161

6262
# Update state with metadata and variations
6363
update_state_result = self_module.update_state_from_meta(
64-
metadata, environment_vars, state_data, constant_vars, constant_state,
64+
metadata, env, state_data, constant_vars, constant_state,
6565
deps=[],
6666
post_deps=[],
6767
prehook_deps=[],
@@ -77,7 +77,7 @@ def dockerfile(self_module, input_params):
7777
update_variations_result = self_module._update_state_from_variations(
7878
input_params, metadata, variation_tags, metadata.get(
7979
'variations', {}),
80-
environment_vars, state_data, constant_vars, constant_state,
80+
env, state_data, constant_vars, constant_state,
8181
deps=[], # Add your dependencies if needed
8282
post_deps=[], # Add post dependencies if needed
8383
prehook_deps=[], # Add prehook dependencies if needed
@@ -93,24 +93,39 @@ def dockerfile(self_module, input_params):
9393
return update_variations_result
9494

9595
# Set Docker-specific configurations
96-
docker_settings = state_data.get('docker', {})
97-
docker_settings['dockerfile_env'] = dockerfile_environment_vars
98-
dockerfile_environment_vars['MLC_RUN_STATE_DOCKER'] = True
96+
docker_settings = state_data['docker']
97+
docker_settings['dockerfile_env'] = dockerfile_env
98+
dockerfile_env['MLC_RUN_STATE_DOCKER'] = True
9999

100100
if not docker_settings.get('run', True) and not input_params.get(
101101
'docker_run_override', False):
102102
logging.info("Docker 'run' is set to False in meta.json")
103103
continue
104104

105105
# Handle build dependencies
106-
build_dependencies = docker_settings.get('build_deps', [])
107-
if build_dependencies:
108-
deps_result = self_module._run_deps(
109-
build_dependencies, run_state=run_state, verbose=input_params.get(
110-
'v', False)
111-
)
112-
if deps_result['return'] > 0:
113-
return deps_result
106+
show_time = input_params.get('show_time', False)
107+
deps = docker_settings.get('build_deps', [])
108+
if deps:
109+
r = self_module._run_deps(
110+
deps, [], env, {}, {}, {}, {}, '', [], '', False, '', verbose,
111+
show_time, ' ', run_state)
112+
if r['return'] > 0:
113+
return r
114+
115+
update_state_result = self_module.update_state_from_meta(
116+
metadata, env, state_data, constant_vars, constant_state,
117+
deps=[],
118+
post_deps=[],
119+
prehook_deps=[],
120+
posthook_deps=[],
121+
new_env_keys=[],
122+
new_state_keys=[],
123+
run_state=run_state,
124+
i=input_params
125+
)
126+
if update_state_result['return'] > 0:
127+
return update_state_result
128+
docker_settings = state_data['docker']
114129

115130
# Prune temporary environment variables
116131
run_command = copy.deepcopy(run_command_arc)
@@ -154,15 +169,15 @@ def dockerfile(self_module, input_params):
154169

155170
# Push Docker image if specified
156171
if input_params.get('docker_push_image') in [True, 'True', 'yes']:
157-
environment_vars['MLC_DOCKER_PUSH_IMAGE'] = 'yes'
172+
env['MLC_DOCKER_PUSH_IMAGE'] = 'yes'
158173

159174
# Generate Dockerfile
160175
mlc_docker_input = {
161176
'action': 'run', 'automation': 'script', 'tags': 'build,dockerfile',
162177
'fake_run_option': " " if docker_inputs.get('real_run') else " --fake_run",
163178
'comments': comments, 'run_cmd': f"{run_command_string} --quiet",
164-
'script_tags': input_params.get('tags'), 'env': environment_vars,
165-
'dockerfile_env': dockerfile_environment_vars,
179+
'script_tags': input_params.get('tags'), 'env': env,
180+
'dockerfile_env': dockerfile_env,
166181
'quiet': True, 'v': input_params.get('v', False), 'real_run': True
167182
}
168183
mlc_docker_input.update(docker_inputs)

automation/script/module.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3797,10 +3797,6 @@ def _get_readme(self, cmd_parts, run_state):
37973797
pip install mlcflow
37983798
```
37993799
3800-
Check [this readme](https://github.com/mlcommons/ck/blob/master/docs/installation.md)
3801-
with more details about installing MLC and dependencies across different platforms
3802-
(Ubuntu, MacOS, Windows, RHEL, ...).
3803-
38043800
"""
38053801

38063802
current_mlc_repo = run_state['script_repo_alias']

script/app-mlperf-inference/meta.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,8 @@ variations:
351351
MLC_HOST_PLATFORM_FLAVOR:
352352
- x86_64
353353
docker:
354-
base_image: nvcr.io/nvidia/mlperf/mlperf-inference:mlpinf-v4.1-cuda12.4-pytorch24.04-ubuntu22.04-aarch64-GraceHopper-release
354+
base_image_off: nvcr.io/nvidia/mlperf/mlperf-inference:mlpinf-v4.1-cuda12.4-pytorch24.04-ubuntu22.04-aarch64-GraceHopper-release
355+
base_image: nvcr.io/nvidia/mlperf/mlperf-inference:mlpinf-v4.0-cuda12.2-cudnn8.9-aarch64-ubuntu22.04-public
355356
env:
356357
MLC_ENV_NVMITTEN_DOCKER_WHEEL_PATH: '/opt/nvmitten-0.1.3b0-cp310-cp310-linux_aarch64.whl'
357358

script/get-ml-model-resnet50/meta.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ variations:
135135
onnx,opset-8:
136136
env:
137137
MLC_DOWNLOAD_CHECKSUM: a638cf028b5870da29e09ccc2f7182e7
138-
MLC_PACKAGE_URL: https://zenodo.org/record/2592612/files/resnet50_v1.onnx
138+
MLC_PACKAGE_URL: https://armi.in/files/resnet50_v1.onnx
139+
MLC_PACKAGE_URL1: https://zenodo.org/record/2592612/files/resnet50_v1.onnx
139140
onnxruntime:
140141
alias: onnx
141142
opset-11:

0 commit comments

Comments
 (0)