Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 61 additions & 19 deletions script/app-mlperf-inference-nvidia/customize.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ def preprocess(i):
'data',
'open-images-v6-mlperf',
'calibration',
'train')
'calibration')
if not os.path.exists(target_data_path_dir):
cmds.append(f"mkdir -p {target_data_path_dir}")
target_data_path = os.path.join(target_data_path_dir, 'data')
Expand All @@ -261,11 +261,18 @@ def preprocess(i):
model_path = os.path.join(
target_model_path_dir,
'retinanet-fpn-torch2.1-postprocessed.onnx')
alt_model_versions = ["2.2", "2.6"]
alt_model_path = os.path.join(
target_model_path_dir,
'retinanet-fpn-torch2.2-postprocessed.onnx')
if not os.path.exists(model_path) and os.path.exists(alt_model_path):
cmds.append(f"ln -s {alt_model_path} {model_path}")
if not os.path.exists(model_path):
for alt_model_version in alt_model_versions:
alt_model_path = os.path.join(
target_model_path_dir,
f'retinanet-fpn-torch{alt_model_version}-postprocessed.onnx')
if os.path.exists(alt_model_path):
cmds.append(f"ln -s {alt_model_path} {model_path}")
break

model_name = "retinanet"

Expand Down Expand Up @@ -359,20 +366,51 @@ def preprocess(i):
else:
cmds.append(f"make download_model BENCHMARKS='{model_name}'")
elif "stable-diffusion" in env['MLC_MODEL']:
folders = ["clip1", "clip2", "unetxl", "vae"]
for folder in folders:
onnx_model_path = os.path.join(
env['MLPERF_SCRATCH_PATH'],
'models',
'SDXL',
'onnx_models',
folder,
'model.onnx')
if not os.path.exists(onnx_model_path):
if env.get('MLC_MLPERF_INFERENCE_CODE_VERSION') == 'v5.0':
# Define folder mappings for each model type
model_folders = {
'onnx_models': ["clip1", "clip2", "unetxl", "vae"],
'modelopt_models': ["unetxl.fp8", "vae.int8"]
}

model_found = True

# Check all required models across both directories
for model_type, folders in model_folders.items():
for folder in folders:
onnx_model_path = os.path.join(
env['MLPERF_SCRATCH_PATH'],
'models',
'SDXL',
model_type,
folder,
'model.onnx'
)
if not os.path.exists(onnx_model_path):
model_found = False
break
if not model_found:
break
if not model_found:
env['MLC_REQUIRE_SDXL_MODEL_DOWNLOAD'] = 'yes'
cmds.append(
f"make download_model BENCHMARKS='{model_name}'")
break
else:
folders = ["clip1", "clip2", "unetxl", "vae"]
for folder in folders:
onnx_model_path = os.path.join(
env['MLPERF_SCRATCH_PATH'],
'models',
'SDXL',
'onnx_models',
folder,
'model.onnx')
if not os.path.exists(onnx_model_path):
env['MLC_REQUIRE_SDXL_MODEL_DOWNLOAD'] = 'yes'
cmds.append(
f"make download_model BENCHMARKS='{model_name}'")
break

if scenario.lower() == "singlestream":
ammo_model_path = os.path.join(
env['MLPERF_SCRATCH_PATH'],
Expand Down Expand Up @@ -524,11 +562,13 @@ def preprocess(i):

gpu_batch_size = env.get('MLC_MLPERF_NVIDIA_HARNESS_GPU_BATCH_SIZE')
if gpu_batch_size:
run_config += f" --gpu_batch_size={gpu_batch_size}"
run_config += f" --gpu_batch_size={gpu_batch_size}".replace(
"##", ",")

dla_batch_size = env.get('MLC_MLPERF_NVIDIA_HARNESS_DLA_BATCH_SIZE')
if dla_batch_size:
run_config += f" --dla_batch_size={dla_batch_size}"
run_config += f" --dla_batch_size={dla_batch_size}".replace(
"##", ",")

input_format = env.get('MLC_MLPERF_NVIDIA_HARNESS_INPUT_FORMAT')
if input_format:
Expand Down Expand Up @@ -712,11 +752,13 @@ def preprocess(i):
if '+LD_LIBRARY_PATH' not in env:
env['+LD_LIBRARY_PATH'] = []

hpcx_paths = []
if os.path.exists("/opt/hpcx/ucx/lib"):
hpcx_paths.append("/opt/hpcx/ucx/lib")
if os.path.exists("/opt/hpcx/ucc/lib"):
env['+LD_LIBRARY_PATH'].insert(0, "/opt/hpcx/ucc/lib")
hpcx_paths.append("/opt/hpcx/ucc/lib")

if os.path.exists("/opt/hpcx/ucx/lib"):
env['+LD_LIBRARY_PATH'].insert(0, "/opt/hpcx/ucx/lib")
env['+LD_LIBRARY_PATH'] = hpcx_paths + env['+LD_LIBRARY_PATH']

# print(env)

Expand Down
Loading
Loading