Note
Go to the end to download the full example code.
Export with dynamic dimensions in {0,1}¶
The first version of torch.export.export() did not support
any tensor with a dimension equal to 0, 1 if the dimension was expected
to be dynamic. The latest versions offers more options. Let’s check it works.
The experiments consists in exporting the model with different sets of inputs
and checking the exported models works with all set of inputs.
Available input sets¶
import itertools
from tqdm import tqdm
import numpy as np
import pandas
import torch
from onnx_diagnostic import doc
from onnx_diagnostic.helpers import max_diff, string_type
from onnx_diagnostic.helpers.torch_helper import torch_deepcopy
from onnx_diagnostic.torch_models.hghub.model_inputs import get_untrained_model_with_inputs
from onnx_diagnostic.torch_export_patches.patch_inputs import use_dyn_not_str
from onnx_diagnostic.torch_export_patches import (
torch_export_patches,
register_additional_serialization_functions,
)
data = get_untrained_model_with_inputs("arnir0/Tiny-LLM", add_second_input=True)
model, dynamic_shapes = data["model"], data["dynamic_shapes"]
The trained model can be obtained with:
MODEL_NAME = "arnir0/Tiny-LLM"
tokenizer = transformers.AutoTokenizer.from_pretrained(MODEL_NAME)
model = transformers.AutoModelForCausalLM.from_pretrained(MODEL_NAME)
input_sets = {k: v for k, v in data.items() if k.startswith("inputs")}
for k, v in input_sets.items():
print(f"{k:20}: {string_type(v, with_shape=True)}")
inputs : dict(input_ids:T7s2x3,attention_mask:T7s2x33,position_ids:T7s2x3,past_key_values:DynamicCache(key_cache=#1[T1s2x1x30x96], value_cache=#1[T1s2x1x30x96]))
inputs_prompt : dict(input_ids:T7s1x11)
inputs2 : dict(input_ids:T7s3x4,attention_mask:T7s3x35,position_ids:T7s3x4,past_key_values:DynamicCache(key_cache=#1[T1s3x1x31x96], value_cache=#1[T1s3x1x31x96]))
inputs_empty_cache : dict(input_ids:T7s2x3,attention_mask:T7s2x3,position_ids:T7s2x3,past_key_values:DynamicCache(key_cache=#1[T1s2x1x0x96], value_cache=#1[T1s2x1x0x96]))
inputs_batch1 : dict(input_ids:T7s1x3,attention_mask:T7s1x33,position_ids:T7s1x3,past_key_values:DynamicCache(key_cache=#1[T1s1x1x30x96], value_cache=#1[T1s1x1x30x96]))
The dynamic shapes are:
print(f"dynamic_shapes: {string_type(dynamic_shapes)}")
dynamic_shapes: dict(input_ids:{0:DYN(batch),1:DYN(seq_length)},attention_mask:{0:DYN(batch),1:DYN(cache+seq)},position_ids:{0:DYN(batch),1:DYN(seq_length)},past_key_values:#2[{0:DYN(batch),2:DYN(cache_length)},{0:DYN(batch),2:DYN(cache_length)}])
dynamic_shapes = use_dyn_not_str(dynamic_shapes)
print(f"dynamic_shapes: {string_type(dynamic_shapes)}")
dynamic_shapes: dict(input_ids:{0:DYNAMIC,1:DYNAMIC},attention_mask:{0:DYNAMIC,1:DYNAMIC},position_ids:{0:DYNAMIC,1:DYNAMIC},past_key_values:#2[{0:DYNAMIC,2:DYNAMIC},{0:DYNAMIC,2:DYNAMIC}])
Let’s check they all work and compute the expected values. We use deepcopy because caches are usually modified inplace.
expected = {}
for k, v in input_sets.items():
expected[k] = model(**torch_deepcopy(v))
print(f"{k:20}: {string_type(expected[k], with_shape=True)}")
inputs : CausalLMOutputWithPast(logits:T1s2x3x32000,past_key_values:DynamicCache(key_cache=#1[T1s2x1x33x96], value_cache=#1[T1s2x1x33x96]))
inputs_prompt : CausalLMOutputWithPast(logits:T1s1x11x32000,past_key_values:DynamicCache(key_cache=#1[T1s1x1x11x96], value_cache=#1[T1s1x1x11x96]))
inputs2 : CausalLMOutputWithPast(logits:T1s3x4x32000,past_key_values:DynamicCache(key_cache=#1[T1s3x1x35x96], value_cache=#1[T1s3x1x35x96]))
inputs_empty_cache : CausalLMOutputWithPast(logits:T1s2x3x32000,past_key_values:DynamicCache(key_cache=#1[T1s2x1x3x96], value_cache=#1[T1s2x1x3x96]))
inputs_batch1 : CausalLMOutputWithPast(logits:T1s1x3x32000,past_key_values:DynamicCache(key_cache=#1[T1s1x1x33x96], value_cache=#1[T1s1x1x33x96]))
Export with options¶
We try to export with the following options:
cache registration: register cache serialization with
onnx_diagnostic.torch_export_patches.register_additional_serialization_functions()oblivious: an option to remove some the exception raises by the exporter
rt: see
prefer_deferred_runtime_asserts_over_guardsintorch.export.export()cache_patch: patches the model before exporting with
onnx_diagnostic.torch_export_patches.torch_export_patches()
Some function first.
def export_model(
model,
dynamic_shapes,
inputs,
cache=False,
oblivious=False,
rt=False,
cache_patch=False,
strict=False,
):
if cache and not cache_patch:
with register_additional_serialization_functions(patch_transformers=True):
return export_model(
model, dynamic_shapes, inputs, oblivious=oblivious, rt=rt, strict=strict
)
if cache_patch:
with torch_export_patches(
patch_torch=cache_patch in ("all", "torch", True, 1),
patch_transformers=cache_patch in ("all", "transformers", True, 1),
):
return export_model(
model, dynamic_shapes, inputs, oblivious=oblivious, rt=rt, strict=strict
)
if oblivious:
with torch.fx.experimental._config.patch(backed_size_oblivious=True):
return export_model(model, dynamic_shapes, inputs, rt=rt, strict=strict)
return torch.export.export(
model,
(),
inputs,
dynamic_shapes=dynamic_shapes,
strict=strict,
prefer_deferred_runtime_asserts_over_guards=rt,
)
def try_export_model(
model,
dynamic_shapes,
inputs,
cache=False,
oblivious=False,
rt=False,
cache_patch=False,
strict=False,
):
try:
return export_model(
model,
dynamic_shapes,
inputs,
cache=cache,
oblivious=oblivious,
rt=rt,
cache_patch=cache_patch,
strict=strict,
)
except Exception as e:
return e
def validation(ep, input_sets, expected):
mod = ep.module()
for k, v in input_sets.items():
try:
got = mod(**torch_deepcopy(v))
except Exception as e:
yield k, e
continue
yield k, max_diff(expected[k], got, verbose=0)
The main loop¶
results = []
possibilities = [*[[0, 1] for _ in range(5)], list(input_sets)]
possibilities[1] = [0, "all", "torch", "transformers"]
with tqdm(list(itertools.product(*possibilities))) as pbar:
for cache, cache_patch, strict, oblivious, rt, inputs in pbar:
if cache_patch and not cache:
# patches include caches.
continue
kwargs = dict(
cache=cache, cache_patch=cache_patch, strict=strict, oblivious=oblivious, rt=rt
)
legend = "-".join(
(k if isinstance(v, int) else f"{k}:{v}") for k, v in kwargs.items() if v
)
legend = f"{legend}/{inputs}"
pbar.set_description(f"{legend} EXPORT")
# export
ep = try_export_model(
model, dynamic_shapes, torch_deepcopy(input_sets[inputs]), **kwargs
)
if isinstance(ep, Exception):
obs = {
**kwargs,
"export_with": inputs,
"EXPORT": 0,
"ERR-EXPORT": str(ep).split("\n")[0],
}
results.append(obs)
continue
pbar.set_description(f"{legend} VALIDATE")
common = {**kwargs, "export_with": inputs, "EXPORT": 1}
for inp, res in validation(ep, input_sets, expected):
if isinstance(res, Exception):
obs = {
**common,
"run_with": inp,
"ERR-RUN": str(res).split("\n")[0],
"WORKS": 0,
}
else:
obs = {
**common,
"run_with": inp,
"WORKS": int(~np.isnan(res["abs"]) and res["abs"] < 1e-3),
}
results.append(obs)
0%| | 0/320 [00:00<?, ?it/s]
/inputs EXPORT: 0%| | 0/320 [00:00<?, ?it/s]
/inputs VALIDATE: 0%| | 0/320 [00:00<?, ?it/s]
/inputs VALIDATE: 0%| | 1/320 [00:00<04:56, 1.08it/s]
/inputs_prompt EXPORT: 0%| | 1/320 [00:00<04:56, 1.08it/s]
/inputs2 EXPORT: 0%| | 1/320 [00:00<04:56, 1.08it/s]
/inputs2 VALIDATE: 0%| | 1/320 [00:01<04:56, 1.08it/s]
/inputs2 VALIDATE: 1%| | 3/320 [00:01<02:59, 1.76it/s]
/inputs_empty_cache EXPORT: 1%| | 3/320 [00:01<02:59, 1.76it/s]
/inputs_empty_cache EXPORT: 1%|▏ | 4/320 [00:02<03:19, 1.59it/s]
/inputs_batch1 EXPORT: 1%|▏ | 4/320 [00:02<03:19, 1.59it/s]
/inputs_batch1 EXPORT: 2%|▏ | 5/320 [00:03<03:19, 1.58it/s]
rt/inputs EXPORT: 2%|▏ | 5/320 [00:03<03:19, 1.58it/s]
rt/inputs VALIDATE: 2%|▏ | 5/320 [00:04<03:19, 1.58it/s]
rt/inputs VALIDATE: 2%|▏ | 6/320 [00:04<03:48, 1.38it/s]
rt/inputs_prompt EXPORT: 2%|▏ | 6/320 [00:04<03:48, 1.38it/s]
rt/inputs2 EXPORT: 2%|▏ | 6/320 [00:04<03:48, 1.38it/s]
rt/inputs2 VALIDATE: 2%|▏ | 6/320 [00:04<03:48, 1.38it/s]
rt/inputs2 VALIDATE: 2%|▎ | 8/320 [00:04<03:02, 1.71it/s]
rt/inputs_empty_cache EXPORT: 2%|▎ | 8/320 [00:04<03:02, 1.71it/s]
rt/inputs_empty_cache EXPORT: 3%|▎ | 9/320 [00:05<03:16, 1.59it/s]
rt/inputs_batch1 EXPORT: 3%|▎ | 9/320 [00:05<03:16, 1.59it/s]
rt/inputs_batch1 EXPORT: 3%|▎ | 10/320 [00:06<03:13, 1.61it/s]
oblivious/inputs EXPORT: 3%|▎ | 10/320 [00:06<03:13, 1.61it/s]
oblivious/inputs VALIDATE: 3%|▎ | 10/320 [00:07<03:13, 1.61it/s]
oblivious/inputs VALIDATE: 3%|▎ | 11/320 [00:07<03:36, 1.42it/s]
oblivious/inputs_prompt EXPORT: 3%|▎ | 11/320 [00:07<03:36, 1.42it/s]
oblivious/inputs2 EXPORT: 3%|▎ | 11/320 [00:07<03:36, 1.42it/s]
oblivious/inputs2 VALIDATE: 3%|▎ | 11/320 [00:08<03:36, 1.42it/s]
oblivious/inputs2 VALIDATE: 4%|▍ | 13/320 [00:08<03:19, 1.54it/s]
oblivious/inputs_empty_cache EXPORT: 4%|▍ | 13/320 [00:08<03:19, 1.54it/s]
oblivious/inputs_empty_cache VALIDATE: 4%|▍ | 13/320 [00:09<03:19, 1.54it/s]
oblivious/inputs_empty_cache VALIDATE: 4%|▍ | 14/320 [00:09<03:30, 1.45it/s]
oblivious/inputs_batch1 EXPORT: 4%|▍ | 14/320 [00:09<03:30, 1.45it/s]
oblivious/inputs_batch1 VALIDATE: 4%|▍ | 14/320 [00:10<03:30, 1.45it/s]
oblivious/inputs_batch1 VALIDATE: 5%|▍ | 15/320 [00:10<03:39, 1.39it/s]
oblivious-rt/inputs EXPORT: 5%|▍ | 15/320 [00:10<03:39, 1.39it/s]
oblivious-rt/inputs VALIDATE: 5%|▍ | 15/320 [00:10<03:39, 1.39it/s]
oblivious-rt/inputs VALIDATE: 5%|▌ | 16/320 [00:10<03:52, 1.31it/s]
oblivious-rt/inputs_prompt EXPORT: 5%|▌ | 16/320 [00:10<03:52, 1.31it/s]
oblivious-rt/inputs2 EXPORT: 5%|▌ | 16/320 [00:10<03:52, 1.31it/s]
oblivious-rt/inputs2 VALIDATE: 5%|▌ | 16/320 [00:11<03:52, 1.31it/s]
oblivious-rt/inputs2 VALIDATE: 6%|▌ | 18/320 [00:11<03:02, 1.66it/s]
oblivious-rt/inputs_empty_cache EXPORT: 6%|▌ | 18/320 [00:11<03:02, 1.66it/s]
oblivious-rt/inputs_empty_cache VALIDATE: 6%|▌ | 18/320 [00:12<03:02, 1.66it/s]
oblivious-rt/inputs_empty_cache VALIDATE: 6%|▌ | 19/320 [00:12<03:14, 1.55it/s]
oblivious-rt/inputs_batch1 EXPORT: 6%|▌ | 19/320 [00:12<03:14, 1.55it/s]
oblivious-rt/inputs_batch1 VALIDATE: 6%|▌ | 19/320 [00:13<03:14, 1.55it/s]
oblivious-rt/inputs_batch1 VALIDATE: 6%|▋ | 20/320 [00:13<03:21, 1.49it/s]
strict/inputs EXPORT: 6%|▋ | 20/320 [00:13<03:21, 1.49it/s]
strict/inputs EXPORT: 7%|▋ | 21/320 [00:17<07:35, 1.52s/it]
strict/inputs_prompt EXPORT: 7%|▋ | 21/320 [00:17<07:35, 1.52s/it]
strict/inputs2 EXPORT: 7%|▋ | 21/320 [00:17<07:35, 1.52s/it]
strict/inputs2 EXPORT: 7%|▋ | 23/320 [00:18<05:40, 1.15s/it]
strict/inputs_empty_cache EXPORT: 7%|▋ | 23/320 [00:18<05:40, 1.15s/it]
strict/inputs_empty_cache EXPORT: 8%|▊ | 24/320 [00:19<05:43, 1.16s/it]
strict/inputs_batch1 EXPORT: 8%|▊ | 24/320 [00:19<05:43, 1.16s/it]
strict/inputs_batch1 EXPORT: 8%|▊ | 25/320 [00:21<06:30, 1.32s/it]
strict-rt/inputs EXPORT: 8%|▊ | 25/320 [00:21<06:30, 1.32s/it]
strict-rt/inputs EXPORT: 8%|▊ | 26/320 [00:23<07:17, 1.49s/it]
strict-rt/inputs_prompt EXPORT: 8%|▊ | 26/320 [00:23<07:17, 1.49s/it]
strict-rt/inputs2 EXPORT: 8%|▊ | 26/320 [00:23<07:17, 1.49s/it]
strict-rt/inputs2 EXPORT: 9%|▉ | 28/320 [00:25<06:14, 1.28s/it]
strict-rt/inputs_empty_cache EXPORT: 9%|▉ | 28/320 [00:25<06:14, 1.28s/it]
strict-rt/inputs_empty_cache EXPORT: 9%|▉ | 29/320 [00:27<07:31, 1.55s/it]
strict-rt/inputs_batch1 EXPORT: 9%|▉ | 29/320 [00:27<07:31, 1.55s/it]
strict-rt/inputs_batch1 EXPORT: 9%|▉ | 30/320 [00:29<07:42, 1.59s/it]
strict-oblivious/inputs EXPORT: 9%|▉ | 30/320 [00:29<07:42, 1.59s/it]
strict-oblivious/inputs EXPORT: 10%|▉ | 31/320 [00:30<07:11, 1.49s/it]
strict-oblivious/inputs_prompt EXPORT: 10%|▉ | 31/320 [00:30<07:11, 1.49s/it]
strict-oblivious/inputs2 EXPORT: 10%|▉ | 31/320 [00:30<07:11, 1.49s/it]
strict-oblivious/inputs2 EXPORT: 10%|█ | 33/320 [00:32<05:20, 1.12s/it]
strict-oblivious/inputs_empty_cache EXPORT: 10%|█ | 33/320 [00:32<05:20, 1.12s/it]
strict-oblivious/inputs_empty_cache EXPORT: 11%|█ | 34/320 [00:33<05:19, 1.12s/it]
strict-oblivious/inputs_batch1 EXPORT: 11%|█ | 34/320 [00:33<05:19, 1.12s/it]
strict-oblivious/inputs_batch1 EXPORT: 11%|█ | 35/320 [00:35<06:29, 1.37s/it]
strict-oblivious-rt/inputs EXPORT: 11%|█ | 35/320 [00:35<06:29, 1.37s/it]
strict-oblivious-rt/inputs EXPORT: 11%|█▏ | 36/320 [00:37<07:18, 1.54s/it]
strict-oblivious-rt/inputs_prompt EXPORT: 11%|█▏ | 36/320 [00:37<07:18, 1.54s/it]
strict-oblivious-rt/inputs2 EXPORT: 11%|█▏ | 36/320 [00:37<07:18, 1.54s/it]
strict-oblivious-rt/inputs2 EXPORT: 12%|█▏ | 38/320 [00:39<06:48, 1.45s/it]
strict-oblivious-rt/inputs_empty_cache EXPORT: 12%|█▏ | 38/320 [00:39<06:48, 1.45s/it]
strict-oblivious-rt/inputs_empty_cache EXPORT: 12%|█▏ | 39/320 [00:41<07:17, 1.56s/it]
strict-oblivious-rt/inputs_batch1 EXPORT: 12%|█▏ | 39/320 [00:41<07:17, 1.56s/it]
strict-oblivious-rt/inputs_batch1 EXPORT: 12%|█▎ | 40/320 [00:43<07:39, 1.64s/it]
cache/inputs EXPORT: 12%|█▎ | 40/320 [00:43<07:39, 1.64s/it]
cache/inputs VALIDATE: 12%|█▎ | 40/320 [00:44<07:39, 1.64s/it]
cache/inputs VALIDATE: 50%|█████ | 161/320 [00:44<00:07, 22.52it/s]
cache/inputs_prompt EXPORT: 50%|█████ | 161/320 [00:44<00:07, 22.52it/s]
cache/inputs2 EXPORT: 50%|█████ | 161/320 [00:44<00:07, 22.52it/s]
cache/inputs2 VALIDATE: 50%|█████ | 161/320 [00:45<00:07, 22.52it/s]
cache/inputs_empty_cache EXPORT: 50%|█████ | 161/320 [00:45<00:07, 22.52it/s]
cache/inputs_batch1 EXPORT: 50%|█████ | 161/320 [00:46<00:07, 22.52it/s]
cache/inputs_batch1 EXPORT: 52%|█████▏ | 165/320 [00:46<00:10, 15.21it/s]
cache-rt/inputs EXPORT: 52%|█████▏ | 165/320 [00:46<00:10, 15.21it/s]
cache-rt/inputs VALIDATE: 52%|█████▏ | 165/320 [00:47<00:10, 15.21it/s]
cache-rt/inputs_prompt EXPORT: 52%|█████▏ | 165/320 [00:47<00:10, 15.21it/s]
cache-rt/inputs2 EXPORT: 52%|█████▏ | 165/320 [00:47<00:10, 15.21it/s]
cache-rt/inputs2 VALIDATE: 52%|█████▏ | 165/320 [00:48<00:10, 15.21it/s]
cache-rt/inputs2 VALIDATE: 52%|█████▎ | 168/320 [00:48<00:13, 11.24it/s]
cache-rt/inputs_empty_cache EXPORT: 52%|█████▎ | 168/320 [00:48<00:13, 11.24it/s]
cache-rt/inputs_batch1 EXPORT: 52%|█████▎ | 168/320 [00:49<00:13, 11.24it/s]
cache-oblivious/inputs EXPORT: 52%|█████▎ | 168/320 [00:49<00:13, 11.24it/s]
cache-oblivious/inputs VALIDATE: 52%|█████▎ | 168/320 [00:50<00:13, 11.24it/s]
cache-oblivious/inputs VALIDATE: 53%|█████▎ | 171/320 [00:50<00:18, 7.97it/s]
cache-oblivious/inputs_prompt EXPORT: 53%|█████▎ | 171/320 [00:50<00:18, 7.97it/s]
cache-oblivious/inputs2 EXPORT: 53%|█████▎ | 171/320 [00:50<00:18, 7.97it/s]
cache-oblivious/inputs2 VALIDATE: 53%|█████▎ | 171/320 [00:52<00:18, 7.97it/s]
cache-oblivious/inputs2 VALIDATE: 54%|█████▍ | 173/320 [00:52<00:23, 6.25it/s]
cache-oblivious/inputs_empty_cache EXPORT: 54%|█████▍ | 173/320 [00:52<00:23, 6.25it/s]
cache-oblivious/inputs_empty_cache VALIDATE: 54%|█████▍ | 173/320 [00:52<00:23, 6.25it/s]
cache-oblivious/inputs_batch1 EXPORT: 54%|█████▍ | 173/320 [00:52<00:23, 6.25it/s]
cache-oblivious/inputs_batch1 VALIDATE: 54%|█████▍ | 173/320 [00:53<00:23, 6.25it/s]
cache-oblivious/inputs_batch1 VALIDATE: 55%|█████▍ | 175/320 [00:53<00:29, 4.93it/s]
cache-oblivious-rt/inputs EXPORT: 55%|█████▍ | 175/320 [00:53<00:29, 4.93it/s]
cache-oblivious-rt/inputs VALIDATE: 55%|█████▍ | 175/320 [00:54<00:29, 4.93it/s]
cache-oblivious-rt/inputs VALIDATE: 55%|█████▌ | 176/320 [00:54<00:33, 4.31it/s]
cache-oblivious-rt/inputs_prompt EXPORT: 55%|█████▌ | 176/320 [00:54<00:33, 4.31it/s]
cache-oblivious-rt/inputs2 EXPORT: 55%|█████▌ | 176/320 [00:54<00:33, 4.31it/s]
cache-oblivious-rt/inputs2 VALIDATE: 55%|█████▌ | 176/320 [00:55<00:33, 4.31it/s]
cache-oblivious-rt/inputs2 VALIDATE: 56%|█████▌ | 178/320 [00:55<00:35, 4.00it/s]
cache-oblivious-rt/inputs_empty_cache EXPORT: 56%|█████▌ | 178/320 [00:55<00:35, 4.00it/s]
cache-oblivious-rt/inputs_empty_cache VALIDATE: 56%|█████▌ | 178/320 [00:55<00:35, 4.00it/s]
cache-oblivious-rt/inputs_empty_cache VALIDATE: 56%|█████▌ | 179/320 [00:55<00:41, 3.37it/s]
cache-oblivious-rt/inputs_batch1 EXPORT: 56%|█████▌ | 179/320 [00:55<00:41, 3.37it/s]
cache-oblivious-rt/inputs_batch1 VALIDATE: 56%|█████▌ | 179/320 [00:56<00:41, 3.37it/s]
cache-oblivious-rt/inputs_batch1 VALIDATE: 56%|█████▋ | 180/320 [00:56<00:48, 2.91it/s]
cache-strict/inputs EXPORT: 56%|█████▋ | 180/320 [00:56<00:48, 2.91it/s]
cache-strict/inputs EXPORT: 57%|█████▋ | 181/320 [00:57<01:03, 2.18it/s]
cache-strict/inputs_prompt EXPORT: 57%|█████▋ | 181/320 [00:57<01:03, 2.18it/s]
cache-strict/inputs2 EXPORT: 57%|█████▋ | 181/320 [00:57<01:03, 2.18it/s]
cache-strict/inputs2 EXPORT: 57%|█████▋ | 183/320 [00:59<01:07, 2.04it/s]
cache-strict/inputs_empty_cache EXPORT: 57%|█████▋ | 183/320 [00:59<01:07, 2.04it/s]
cache-strict/inputs_empty_cache EXPORT: 57%|█████▊ | 184/320 [01:00<01:19, 1.70it/s]
cache-strict/inputs_batch1 EXPORT: 57%|█████▊ | 184/320 [01:00<01:19, 1.70it/s]
cache-strict/inputs_batch1 EXPORT: 58%|█████▊ | 185/320 [01:01<01:48, 1.25it/s]
cache-strict-rt/inputs EXPORT: 58%|█████▊ | 185/320 [01:01<01:48, 1.25it/s]
cache-strict-rt/inputs EXPORT: 58%|█████▊ | 186/320 [01:04<02:23, 1.07s/it]
cache-strict-rt/inputs_prompt EXPORT: 58%|█████▊ | 186/320 [01:04<02:23, 1.07s/it]
cache-strict-rt/inputs2 EXPORT: 58%|█████▊ | 186/320 [01:04<02:23, 1.07s/it]
cache-strict-rt/inputs2 EXPORT: 59%|█████▉ | 188/320 [01:07<02:46, 1.26s/it]
cache-strict-rt/inputs_empty_cache EXPORT: 59%|█████▉ | 188/320 [01:07<02:46, 1.26s/it]
cache-strict-rt/inputs_empty_cache EXPORT: 59%|█████▉ | 189/320 [01:09<03:14, 1.48s/it]
cache-strict-rt/inputs_batch1 EXPORT: 59%|█████▉ | 189/320 [01:09<03:14, 1.48s/it]
cache-strict-rt/inputs_batch1 EXPORT: 59%|█████▉ | 190/320 [01:11<03:21, 1.55s/it]
cache-strict-oblivious/inputs EXPORT: 59%|█████▉ | 190/320 [01:11<03:21, 1.55s/it]
cache-strict-oblivious/inputs EXPORT: 60%|█████▉ | 191/320 [01:12<03:07, 1.45s/it]
cache-strict-oblivious/inputs_prompt EXPORT: 60%|█████▉ | 191/320 [01:12<03:07, 1.45s/it]
cache-strict-oblivious/inputs2 EXPORT: 60%|█████▉ | 191/320 [01:12<03:07, 1.45s/it]
cache-strict-oblivious/inputs2 EXPORT: 60%|██████ | 193/320 [01:13<02:14, 1.06s/it]
cache-strict-oblivious/inputs_empty_cache EXPORT: 60%|██████ | 193/320 [01:13<02:14, 1.06s/it]
cache-strict-oblivious/inputs_empty_cache EXPORT: 61%|██████ | 194/320 [01:14<02:15, 1.07s/it]
cache-strict-oblivious/inputs_batch1 EXPORT: 61%|██████ | 194/320 [01:14<02:15, 1.07s/it]
cache-strict-oblivious/inputs_batch1 EXPORT: 61%|██████ | 195/320 [01:16<02:38, 1.27s/it]
cache-strict-oblivious-rt/inputs EXPORT: 61%|██████ | 195/320 [01:16<02:38, 1.27s/it]
cache-strict-oblivious-rt/inputs EXPORT: 61%|██████▏ | 196/320 [01:18<03:00, 1.46s/it]
cache-strict-oblivious-rt/inputs_prompt EXPORT: 61%|██████▏ | 196/320 [01:18<03:00, 1.46s/it]
cache-strict-oblivious-rt/inputs2 EXPORT: 61%|██████▏ | 196/320 [01:18<03:00, 1.46s/it]
cache-strict-oblivious-rt/inputs2 EXPORT: 62%|██████▏ | 198/320 [01:21<03:03, 1.50s/it]
cache-strict-oblivious-rt/inputs_empty_cache EXPORT: 62%|██████▏ | 198/320 [01:21<03:03, 1.50s/it]
cache-strict-oblivious-rt/inputs_empty_cache EXPORT: 62%|██████▏ | 199/320 [01:23<03:15, 1.62s/it]
cache-strict-oblivious-rt/inputs_batch1 EXPORT: 62%|██████▏ | 199/320 [01:23<03:15, 1.62s/it]
cache-strict-oblivious-rt/inputs_batch1 EXPORT: 62%|██████▎ | 200/320 [01:25<03:22, 1.69s/it]
cache-cache_patch:all/inputs EXPORT: 62%|██████▎ | 200/320 [01:25<03:22, 1.69s/it]
cache-cache_patch:all/inputs VALIDATE: 62%|██████▎ | 200/320 [01:26<03:22, 1.69s/it]
cache-cache_patch:all/inputs VALIDATE: 63%|██████▎ | 201/320 [01:26<02:57, 1.49s/it]
cache-cache_patch:all/inputs_prompt EXPORT: 63%|██████▎ | 201/320 [01:26<02:57, 1.49s/it]
cache-cache_patch:all/inputs2 EXPORT: 63%|██████▎ | 201/320 [01:26<02:57, 1.49s/it]
cache-cache_patch:all/inputs2 VALIDATE: 63%|██████▎ | 201/320 [01:27<02:57, 1.49s/it]
cache-cache_patch:all/inputs2 VALIDATE: 63%|██████▎ | 203/320 [01:27<01:59, 1.02s/it]
cache-cache_patch:all/inputs_empty_cache EXPORT: 63%|██████▎ | 203/320 [01:27<01:59, 1.02s/it]
cache-cache_patch:all/inputs_empty_cache VALIDATE: 63%|██████▎ | 203/320 [01:27<01:59, 1.02s/it]
cache-cache_patch:all/inputs_empty_cache VALIDATE: 64%|██████▍ | 204/320 [01:27<01:51, 1.04it/s]
cache-cache_patch:all/inputs_batch1 EXPORT: 64%|██████▍ | 204/320 [01:27<01:51, 1.04it/s]
cache-cache_patch:all/inputs_batch1 VALIDATE: 64%|██████▍ | 204/320 [01:28<01:51, 1.04it/s]
cache-cache_patch:all/inputs_batch1 VALIDATE: 64%|██████▍ | 205/320 [01:28<01:40, 1.15it/s]
cache-cache_patch:all-rt/inputs EXPORT: 64%|██████▍ | 205/320 [01:28<01:40, 1.15it/s]
cache-cache_patch:all-rt/inputs VALIDATE: 64%|██████▍ | 205/320 [01:29<01:40, 1.15it/s]
cache-cache_patch:all-rt/inputs VALIDATE: 64%|██████▍ | 206/320 [01:29<01:37, 1.17it/s]
cache-cache_patch:all-rt/inputs_prompt EXPORT: 64%|██████▍ | 206/320 [01:29<01:37, 1.17it/s]
cache-cache_patch:all-rt/inputs2 EXPORT: 64%|██████▍ | 206/320 [01:29<01:37, 1.17it/s]
cache-cache_patch:all-rt/inputs2 VALIDATE: 64%|██████▍ | 206/320 [01:30<01:37, 1.17it/s]
cache-cache_patch:all-rt/inputs2 VALIDATE: 65%|██████▌ | 208/320 [01:30<01:13, 1.52it/s]
cache-cache_patch:all-rt/inputs_empty_cache EXPORT: 65%|██████▌ | 208/320 [01:30<01:13, 1.52it/s]
cache-cache_patch:all-rt/inputs_empty_cache VALIDATE: 65%|██████▌ | 208/320 [01:30<01:13, 1.52it/s]
cache-cache_patch:all-rt/inputs_empty_cache VALIDATE: 65%|██████▌ | 209/320 [01:30<01:15, 1.47it/s]
cache-cache_patch:all-rt/inputs_batch1 EXPORT: 65%|██████▌ | 209/320 [01:30<01:15, 1.47it/s]
cache-cache_patch:all-rt/inputs_batch1 VALIDATE: 65%|██████▌ | 209/320 [01:31<01:15, 1.47it/s]
cache-cache_patch:all-rt/inputs_batch1 VALIDATE: 66%|██████▌ | 210/320 [01:31<01:13, 1.51it/s]
cache-cache_patch:all-oblivious/inputs EXPORT: 66%|██████▌ | 210/320 [01:31<01:13, 1.51it/s]
cache-cache_patch:all-oblivious/inputs VALIDATE: 66%|██████▌ | 210/320 [01:32<01:13, 1.51it/s]
cache-cache_patch:all-oblivious/inputs VALIDATE: 66%|██████▌ | 211/320 [01:32<01:25, 1.28it/s]
cache-cache_patch:all-oblivious/inputs_prompt EXPORT: 66%|██████▌ | 211/320 [01:32<01:25, 1.28it/s]
cache-cache_patch:all-oblivious/inputs2 EXPORT: 66%|██████▌ | 211/320 [01:32<01:25, 1.28it/s]
cache-cache_patch:all-oblivious/inputs2 VALIDATE: 66%|██████▌ | 211/320 [01:33<01:25, 1.28it/s]
cache-cache_patch:all-oblivious/inputs2 VALIDATE: 67%|██████▋ | 213/320 [01:33<01:10, 1.52it/s]
cache-cache_patch:all-oblivious/inputs_empty_cache EXPORT: 67%|██████▋ | 213/320 [01:33<01:10, 1.52it/s]
cache-cache_patch:all-oblivious/inputs_empty_cache VALIDATE: 67%|██████▋ | 213/320 [01:34<01:10, 1.52it/s]
cache-cache_patch:all-oblivious/inputs_empty_cache VALIDATE: 67%|██████▋ | 214/320 [01:34<01:12, 1.46it/s]
cache-cache_patch:all-oblivious/inputs_batch1 EXPORT: 67%|██████▋ | 214/320 [01:34<01:12, 1.46it/s]
cache-cache_patch:all-oblivious/inputs_batch1 VALIDATE: 67%|██████▋ | 214/320 [01:35<01:12, 1.46it/s]
cache-cache_patch:all-oblivious/inputs_batch1 VALIDATE: 67%|██████▋ | 215/320 [01:35<01:21, 1.29it/s]
cache-cache_patch:all-oblivious-rt/inputs EXPORT: 67%|██████▋ | 215/320 [01:35<01:21, 1.29it/s]
cache-cache_patch:all-oblivious-rt/inputs VALIDATE: 67%|██████▋ | 215/320 [01:37<01:21, 1.29it/s]
cache-cache_patch:all-oblivious-rt/inputs VALIDATE: 68%|██████▊ | 216/320 [01:37<01:57, 1.13s/it]
cache-cache_patch:all-oblivious-rt/inputs_prompt EXPORT: 68%|██████▊ | 216/320 [01:37<01:57, 1.13s/it]
cache-cache_patch:all-oblivious-rt/inputs2 EXPORT: 68%|██████▊ | 216/320 [01:37<01:57, 1.13s/it]
cache-cache_patch:all-oblivious-rt/inputs2 VALIDATE: 68%|██████▊ | 216/320 [01:38<01:57, 1.13s/it]
cache-cache_patch:all-oblivious-rt/inputs2 VALIDATE: 68%|██████▊ | 218/320 [01:38<01:25, 1.19it/s]
cache-cache_patch:all-oblivious-rt/inputs_empty_cache EXPORT: 68%|██████▊ | 218/320 [01:38<01:25, 1.19it/s]
cache-cache_patch:all-oblivious-rt/inputs_empty_cache VALIDATE: 68%|██████▊ | 218/320 [01:39<01:25, 1.19it/s]
cache-cache_patch:all-oblivious-rt/inputs_empty_cache VALIDATE: 68%|██████▊ | 219/320 [01:39<01:26, 1.17it/s]
cache-cache_patch:all-oblivious-rt/inputs_batch1 EXPORT: 68%|██████▊ | 219/320 [01:39<01:26, 1.17it/s]
cache-cache_patch:all-oblivious-rt/inputs_batch1 VALIDATE: 68%|██████▊ | 219/320 [01:40<01:26, 1.17it/s]
cache-cache_patch:all-oblivious-rt/inputs_batch1 VALIDATE: 69%|██████▉ | 220/320 [01:40<01:25, 1.17it/s]
cache-cache_patch:all-strict/inputs EXPORT: 69%|██████▉ | 220/320 [01:40<01:25, 1.17it/s]
cache-cache_patch:all-strict/inputs EXPORT: 69%|██████▉ | 221/320 [01:41<01:22, 1.19it/s]
cache-cache_patch:all-strict/inputs_prompt EXPORT: 69%|██████▉ | 221/320 [01:41<01:22, 1.19it/s]
cache-cache_patch:all-strict/inputs2 EXPORT: 69%|██████▉ | 221/320 [01:41<01:22, 1.19it/s]
cache-cache_patch:all-strict/inputs2 EXPORT: 70%|██████▉ | 223/320 [01:41<01:02, 1.55it/s]
cache-cache_patch:all-strict/inputs_empty_cache EXPORT: 70%|██████▉ | 223/320 [01:41<01:02, 1.55it/s]
cache-cache_patch:all-strict/inputs_empty_cache EXPORT: 70%|███████ | 224/320 [01:42<01:02, 1.55it/s]
cache-cache_patch:all-strict/inputs_batch1 EXPORT: 70%|███████ | 224/320 [01:42<01:02, 1.55it/s]
cache-cache_patch:all-strict/inputs_batch1 EXPORT: 70%|███████ | 225/320 [01:43<00:59, 1.59it/s]
cache-cache_patch:all-strict-rt/inputs EXPORT: 70%|███████ | 225/320 [01:43<00:59, 1.59it/s]
cache-cache_patch:all-strict-rt/inputs EXPORT: 71%|███████ | 226/320 [01:43<01:00, 1.55it/s]
cache-cache_patch:all-strict-rt/inputs_prompt EXPORT: 71%|███████ | 226/320 [01:43<01:00, 1.55it/s]
cache-cache_patch:all-strict-rt/inputs2 EXPORT: 71%|███████ | 226/320 [01:43<01:00, 1.55it/s]
cache-cache_patch:all-strict-rt/inputs2 EXPORT: 71%|███████▏ | 228/320 [01:44<00:47, 1.95it/s]
cache-cache_patch:all-strict-rt/inputs_empty_cache EXPORT: 71%|███████▏ | 228/320 [01:44<00:47, 1.95it/s]
cache-cache_patch:all-strict-rt/inputs_empty_cache EXPORT: 72%|███████▏ | 229/320 [01:45<00:49, 1.83it/s]
cache-cache_patch:all-strict-rt/inputs_batch1 EXPORT: 72%|███████▏ | 229/320 [01:45<00:49, 1.83it/s]
cache-cache_patch:all-strict-rt/inputs_batch1 EXPORT: 72%|███████▏ | 230/320 [01:45<00:50, 1.79it/s]
cache-cache_patch:all-strict-oblivious/inputs EXPORT: 72%|███████▏ | 230/320 [01:45<00:50, 1.79it/s]
cache-cache_patch:all-strict-oblivious/inputs EXPORT: 72%|███████▏ | 231/320 [01:46<00:55, 1.59it/s]
cache-cache_patch:all-strict-oblivious/inputs_prompt EXPORT: 72%|███████▏ | 231/320 [01:46<00:55, 1.59it/s]
cache-cache_patch:all-strict-oblivious/inputs2 EXPORT: 72%|███████▏ | 231/320 [01:46<00:55, 1.59it/s]
cache-cache_patch:all-strict-oblivious/inputs2 EXPORT: 73%|███████▎ | 233/320 [01:47<00:45, 1.91it/s]
cache-cache_patch:all-strict-oblivious/inputs_empty_cache EXPORT: 73%|███████▎ | 233/320 [01:47<00:45, 1.91it/s]
cache-cache_patch:all-strict-oblivious/inputs_empty_cache EXPORT: 73%|███████▎ | 234/320 [01:48<00:50, 1.69it/s]
cache-cache_patch:all-strict-oblivious/inputs_batch1 EXPORT: 73%|███████▎ | 234/320 [01:48<00:50, 1.69it/s]
cache-cache_patch:all-strict-oblivious/inputs_batch1 EXPORT: 73%|███████▎ | 235/320 [01:48<00:53, 1.59it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs EXPORT: 73%|███████▎ | 235/320 [01:48<00:53, 1.59it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs EXPORT: 74%|███████▍ | 236/320 [01:49<00:54, 1.53it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs_prompt EXPORT: 74%|███████▍ | 236/320 [01:49<00:54, 1.53it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs2 EXPORT: 74%|███████▍ | 236/320 [01:49<00:54, 1.53it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs2 EXPORT: 74%|███████▍ | 238/320 [01:50<00:42, 1.94it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs_empty_cache EXPORT: 74%|███████▍ | 238/320 [01:50<00:42, 1.94it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs_empty_cache EXPORT: 75%|███████▍ | 239/320 [01:51<01:04, 1.26it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs_batch1 EXPORT: 75%|███████▍ | 239/320 [01:51<01:04, 1.26it/s]
cache-cache_patch:all-strict-oblivious-rt/inputs_batch1 EXPORT: 75%|███████▌ | 240/320 [01:52<01:01, 1.30it/s]
cache-cache_patch:torch/inputs EXPORT: 75%|███████▌ | 240/320 [01:52<01:01, 1.30it/s]
cache-cache_patch:torch/inputs VALIDATE: 75%|███████▌ | 240/320 [01:53<01:01, 1.30it/s]
cache-cache_patch:torch/inputs VALIDATE: 75%|███████▌ | 241/320 [01:53<01:06, 1.19it/s]
cache-cache_patch:torch/inputs_prompt EXPORT: 75%|███████▌ | 241/320 [01:53<01:06, 1.19it/s]
cache-cache_patch:torch/inputs2 EXPORT: 75%|███████▌ | 241/320 [01:53<01:06, 1.19it/s]
cache-cache_patch:torch/inputs2 VALIDATE: 75%|███████▌ | 241/320 [01:54<01:06, 1.19it/s]
cache-cache_patch:torch/inputs2 VALIDATE: 76%|███████▌ | 243/320 [01:54<00:51, 1.51it/s]
cache-cache_patch:torch/inputs_empty_cache EXPORT: 76%|███████▌ | 243/320 [01:54<00:51, 1.51it/s]
cache-cache_patch:torch/inputs_empty_cache VALIDATE: 76%|███████▌ | 243/320 [01:55<00:51, 1.51it/s]
cache-cache_patch:torch/inputs_empty_cache VALIDATE: 76%|███████▋ | 244/320 [01:55<00:53, 1.43it/s]
cache-cache_patch:torch/inputs_batch1 EXPORT: 76%|███████▋ | 244/320 [01:55<00:53, 1.43it/s]
cache-cache_patch:torch/inputs_batch1 VALIDATE: 76%|███████▋ | 244/320 [01:55<00:53, 1.43it/s]
cache-cache_patch:torch/inputs_batch1 VALIDATE: 77%|███████▋ | 245/320 [01:55<00:52, 1.44it/s]
cache-cache_patch:torch-rt/inputs EXPORT: 77%|███████▋ | 245/320 [01:55<00:52, 1.44it/s]
cache-cache_patch:torch-rt/inputs VALIDATE: 77%|███████▋ | 245/320 [01:56<00:52, 1.44it/s]
cache-cache_patch:torch-rt/inputs VALIDATE: 77%|███████▋ | 246/320 [01:56<00:54, 1.35it/s]
cache-cache_patch:torch-rt/inputs_prompt EXPORT: 77%|███████▋ | 246/320 [01:56<00:54, 1.35it/s]
cache-cache_patch:torch-rt/inputs2 EXPORT: 77%|███████▋ | 246/320 [01:56<00:54, 1.35it/s]
cache-cache_patch:torch-rt/inputs2 VALIDATE: 77%|███████▋ | 246/320 [01:57<00:54, 1.35it/s]
cache-cache_patch:torch-rt/inputs2 VALIDATE: 78%|███████▊ | 248/320 [01:57<00:44, 1.63it/s]
cache-cache_patch:torch-rt/inputs_empty_cache EXPORT: 78%|███████▊ | 248/320 [01:57<00:44, 1.63it/s]
cache-cache_patch:torch-rt/inputs_empty_cache VALIDATE: 78%|███████▊ | 248/320 [01:58<00:44, 1.63it/s]
cache-cache_patch:torch-rt/inputs_empty_cache VALIDATE: 78%|███████▊ | 249/320 [01:58<00:46, 1.52it/s]
cache-cache_patch:torch-rt/inputs_batch1 EXPORT: 78%|███████▊ | 249/320 [01:58<00:46, 1.52it/s]
cache-cache_patch:torch-rt/inputs_batch1 VALIDATE: 78%|███████▊ | 249/320 [01:59<00:46, 1.52it/s]
cache-cache_patch:torch-rt/inputs_batch1 VALIDATE: 78%|███████▊ | 250/320 [01:59<00:45, 1.52it/s]
cache-cache_patch:torch-oblivious/inputs EXPORT: 78%|███████▊ | 250/320 [01:59<00:45, 1.52it/s]
cache-cache_patch:torch-oblivious/inputs VALIDATE: 78%|███████▊ | 250/320 [02:00<00:45, 1.52it/s]
cache-cache_patch:torch-oblivious/inputs VALIDATE: 78%|███████▊ | 251/320 [02:00<00:50, 1.36it/s]
cache-cache_patch:torch-oblivious/inputs_prompt EXPORT: 78%|███████▊ | 251/320 [02:00<00:50, 1.36it/s]
cache-cache_patch:torch-oblivious/inputs2 EXPORT: 78%|███████▊ | 251/320 [02:00<00:50, 1.36it/s]
cache-cache_patch:torch-oblivious/inputs2 VALIDATE: 78%|███████▊ | 251/320 [02:00<00:50, 1.36it/s]
cache-cache_patch:torch-oblivious/inputs2 VALIDATE: 79%|███████▉ | 253/320 [02:01<00:41, 1.62it/s]
cache-cache_patch:torch-oblivious/inputs_empty_cache EXPORT: 79%|███████▉ | 253/320 [02:01<00:41, 1.62it/s]
cache-cache_patch:torch-oblivious/inputs_empty_cache VALIDATE: 79%|███████▉ | 253/320 [02:01<00:41, 1.62it/s]
cache-cache_patch:torch-oblivious/inputs_empty_cache VALIDATE: 79%|███████▉ | 254/320 [02:02<00:46, 1.42it/s]
cache-cache_patch:torch-oblivious/inputs_batch1 EXPORT: 79%|███████▉ | 254/320 [02:02<00:46, 1.42it/s]
cache-cache_patch:torch-oblivious/inputs_batch1 VALIDATE: 79%|███████▉ | 254/320 [02:02<00:46, 1.42it/s]
cache-cache_patch:torch-oblivious/inputs_batch1 VALIDATE: 80%|███████▉ | 255/320 [02:02<00:48, 1.33it/s]
cache-cache_patch:torch-oblivious-rt/inputs EXPORT: 80%|███████▉ | 255/320 [02:02<00:48, 1.33it/s]
cache-cache_patch:torch-oblivious-rt/inputs VALIDATE: 80%|███████▉ | 255/320 [02:03<00:48, 1.33it/s]
cache-cache_patch:torch-oblivious-rt/inputs VALIDATE: 80%|████████ | 256/320 [02:03<00:50, 1.26it/s]
cache-cache_patch:torch-oblivious-rt/inputs_prompt EXPORT: 80%|████████ | 256/320 [02:03<00:50, 1.26it/s]
cache-cache_patch:torch-oblivious-rt/inputs2 EXPORT: 80%|████████ | 256/320 [02:03<00:50, 1.26it/s]
cache-cache_patch:torch-oblivious-rt/inputs2 VALIDATE: 80%|████████ | 256/320 [02:04<00:50, 1.26it/s]
cache-cache_patch:torch-oblivious-rt/inputs2 VALIDATE: 81%|████████ | 258/320 [02:04<00:40, 1.55it/s]
cache-cache_patch:torch-oblivious-rt/inputs_empty_cache EXPORT: 81%|████████ | 258/320 [02:04<00:40, 1.55it/s]
cache-cache_patch:torch-oblivious-rt/inputs_empty_cache VALIDATE: 81%|████████ | 258/320 [02:05<00:40, 1.55it/s]
cache-cache_patch:torch-oblivious-rt/inputs_empty_cache VALIDATE: 81%|████████ | 259/320 [02:05<00:42, 1.43it/s]
cache-cache_patch:torch-oblivious-rt/inputs_batch1 EXPORT: 81%|████████ | 259/320 [02:05<00:42, 1.43it/s]
cache-cache_patch:torch-oblivious-rt/inputs_batch1 VALIDATE: 81%|████████ | 259/320 [02:06<00:42, 1.43it/s]
cache-cache_patch:torch-oblivious-rt/inputs_batch1 VALIDATE: 81%|████████▏ | 260/320 [02:06<00:44, 1.34it/s]
cache-cache_patch:torch-strict/inputs EXPORT: 81%|████████▏ | 260/320 [02:06<00:44, 1.34it/s]
cache-cache_patch:torch-strict/inputs EXPORT: 82%|████████▏ | 261/320 [02:07<00:50, 1.17it/s]
cache-cache_patch:torch-strict/inputs_prompt EXPORT: 82%|████████▏ | 261/320 [02:07<00:50, 1.17it/s]
cache-cache_patch:torch-strict/inputs2 EXPORT: 82%|████████▏ | 261/320 [02:07<00:50, 1.17it/s]
cache-cache_patch:torch-strict/inputs2 EXPORT: 82%|████████▏ | 263/320 [02:08<00:42, 1.36it/s]
cache-cache_patch:torch-strict/inputs_empty_cache EXPORT: 82%|████████▏ | 263/320 [02:08<00:42, 1.36it/s]
cache-cache_patch:torch-strict/inputs_empty_cache EXPORT: 82%|████████▎ | 264/320 [02:11<01:02, 1.12s/it]
cache-cache_patch:torch-strict/inputs_batch1 EXPORT: 82%|████████▎ | 264/320 [02:11<01:02, 1.12s/it]
cache-cache_patch:torch-strict/inputs_batch1 EXPORT: 83%|████████▎ | 265/320 [02:12<01:10, 1.29s/it]
cache-cache_patch:torch-strict-rt/inputs EXPORT: 83%|████████▎ | 265/320 [02:12<01:10, 1.29s/it]
cache-cache_patch:torch-strict-rt/inputs EXPORT: 83%|████████▎ | 266/320 [02:15<01:20, 1.48s/it]
cache-cache_patch:torch-strict-rt/inputs_prompt EXPORT: 83%|████████▎ | 266/320 [02:15<01:20, 1.48s/it]
cache-cache_patch:torch-strict-rt/inputs2 EXPORT: 83%|████████▎ | 266/320 [02:15<01:20, 1.48s/it]
cache-cache_patch:torch-strict-rt/inputs2 EXPORT: 84%|████████▍ | 268/320 [02:16<01:06, 1.27s/it]
cache-cache_patch:torch-strict-rt/inputs_empty_cache EXPORT: 84%|████████▍ | 268/320 [02:16<01:06, 1.27s/it]
cache-cache_patch:torch-strict-rt/inputs_empty_cache EXPORT: 84%|████████▍ | 269/320 [02:19<01:15, 1.47s/it]
cache-cache_patch:torch-strict-rt/inputs_batch1 EXPORT: 84%|████████▍ | 269/320 [02:19<01:15, 1.47s/it]
cache-cache_patch:torch-strict-rt/inputs_batch1 EXPORT: 84%|████████▍ | 270/320 [02:20<01:17, 1.54s/it]
cache-cache_patch:torch-strict-oblivious/inputs EXPORT: 84%|████████▍ | 270/320 [02:20<01:17, 1.54s/it]
cache-cache_patch:torch-strict-oblivious/inputs EXPORT: 85%|████████▍ | 271/320 [02:22<01:13, 1.50s/it]
cache-cache_patch:torch-strict-oblivious/inputs_prompt EXPORT: 85%|████████▍ | 271/320 [02:22<01:13, 1.50s/it]
cache-cache_patch:torch-strict-oblivious/inputs2 EXPORT: 85%|████████▍ | 271/320 [02:22<01:13, 1.50s/it]
cache-cache_patch:torch-strict-oblivious/inputs2 EXPORT: 85%|████████▌ | 273/320 [02:23<00:53, 1.15s/it]
cache-cache_patch:torch-strict-oblivious/inputs_empty_cache EXPORT: 85%|████████▌ | 273/320 [02:23<00:53, 1.15s/it]
cache-cache_patch:torch-strict-oblivious/inputs_empty_cache EXPORT: 86%|████████▌ | 274/320 [02:24<00:53, 1.17s/it]
cache-cache_patch:torch-strict-oblivious/inputs_batch1 EXPORT: 86%|████████▌ | 274/320 [02:24<00:53, 1.17s/it]
cache-cache_patch:torch-strict-oblivious/inputs_batch1 EXPORT: 86%|████████▌ | 275/320 [02:26<01:02, 1.40s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs EXPORT: 86%|████████▌ | 275/320 [02:26<01:02, 1.40s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs EXPORT: 86%|████████▋ | 276/320 [02:29<01:10, 1.60s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs_prompt EXPORT: 86%|████████▋ | 276/320 [02:29<01:10, 1.60s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs2 EXPORT: 86%|████████▋ | 276/320 [02:29<01:10, 1.60s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs2 EXPORT: 87%|████████▋ | 278/320 [02:31<00:58, 1.39s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs_empty_cache EXPORT: 87%|████████▋ | 278/320 [02:31<00:58, 1.39s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs_empty_cache EXPORT: 87%|████████▋ | 279/320 [02:35<01:19, 1.93s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs_batch1 EXPORT: 87%|████████▋ | 279/320 [02:35<01:19, 1.93s/it]
cache-cache_patch:torch-strict-oblivious-rt/inputs_batch1 EXPORT: 88%|████████▊ | 280/320 [02:37<01:18, 1.95s/it]
cache-cache_patch:transformers/inputs EXPORT: 88%|████████▊ | 280/320 [02:37<01:18, 1.95s/it]
cache-cache_patch:transformers/inputs VALIDATE: 88%|████████▊ | 280/320 [02:37<01:18, 1.95s/it]
cache-cache_patch:transformers/inputs VALIDATE: 88%|████████▊ | 281/320 [02:38<01:07, 1.72s/it]
cache-cache_patch:transformers/inputs_prompt EXPORT: 88%|████████▊ | 281/320 [02:38<01:07, 1.72s/it]
cache-cache_patch:transformers/inputs2 EXPORT: 88%|████████▊ | 281/320 [02:38<01:07, 1.72s/it]
cache-cache_patch:transformers/inputs2 VALIDATE: 88%|████████▊ | 281/320 [02:38<01:07, 1.72s/it]
cache-cache_patch:transformers/inputs2 VALIDATE: 88%|████████▊ | 283/320 [02:39<00:44, 1.19s/it]
cache-cache_patch:transformers/inputs_empty_cache EXPORT: 88%|████████▊ | 283/320 [02:39<00:44, 1.19s/it]
cache-cache_patch:transformers/inputs_empty_cache EXPORT: 89%|████████▉ | 284/320 [02:39<00:39, 1.09s/it]
cache-cache_patch:transformers/inputs_batch1 EXPORT: 89%|████████▉ | 284/320 [02:39<00:39, 1.09s/it]
cache-cache_patch:transformers/inputs_batch1 EXPORT: 89%|████████▉ | 285/320 [02:40<00:34, 1.02it/s]
cache-cache_patch:transformers-rt/inputs EXPORT: 89%|████████▉ | 285/320 [02:40<00:34, 1.02it/s]
cache-cache_patch:transformers-rt/inputs VALIDATE: 89%|████████▉ | 285/320 [02:41<00:34, 1.02it/s]
cache-cache_patch:transformers-rt/inputs VALIDATE: 89%|████████▉ | 286/320 [02:41<00:33, 1.03it/s]
cache-cache_patch:transformers-rt/inputs_prompt EXPORT: 89%|████████▉ | 286/320 [02:41<00:33, 1.03it/s]
cache-cache_patch:transformers-rt/inputs2 EXPORT: 89%|████████▉ | 286/320 [02:41<00:33, 1.03it/s]
cache-cache_patch:transformers-rt/inputs2 VALIDATE: 89%|████████▉ | 286/320 [02:42<00:33, 1.03it/s]
cache-cache_patch:transformers-rt/inputs2 VALIDATE: 90%|█████████ | 288/320 [02:42<00:23, 1.35it/s]
cache-cache_patch:transformers-rt/inputs_empty_cache EXPORT: 90%|█████████ | 288/320 [02:42<00:23, 1.35it/s]
cache-cache_patch:transformers-rt/inputs_empty_cache EXPORT: 90%|█████████ | 289/320 [02:43<00:23, 1.31it/s]
cache-cache_patch:transformers-rt/inputs_batch1 EXPORT: 90%|█████████ | 289/320 [02:43<00:23, 1.31it/s]
cache-cache_patch:transformers-rt/inputs_batch1 EXPORT: 91%|█████████ | 290/320 [02:43<00:22, 1.36it/s]
cache-cache_patch:transformers-oblivious/inputs EXPORT: 91%|█████████ | 290/320 [02:43<00:22, 1.36it/s]
cache-cache_patch:transformers-oblivious/inputs VALIDATE: 91%|█████████ | 290/320 [02:44<00:22, 1.36it/s]
cache-cache_patch:transformers-oblivious/inputs VALIDATE: 91%|█████████ | 291/320 [02:44<00:22, 1.31it/s]
cache-cache_patch:transformers-oblivious/inputs_prompt EXPORT: 91%|█████████ | 291/320 [02:44<00:22, 1.31it/s]
cache-cache_patch:transformers-oblivious/inputs2 EXPORT: 91%|█████████ | 291/320 [02:44<00:22, 1.31it/s]
cache-cache_patch:transformers-oblivious/inputs2 VALIDATE: 91%|█████████ | 291/320 [02:45<00:22, 1.31it/s]
cache-cache_patch:transformers-oblivious/inputs2 VALIDATE: 92%|█████████▏| 293/320 [02:45<00:16, 1.63it/s]
cache-cache_patch:transformers-oblivious/inputs_empty_cache EXPORT: 92%|█████████▏| 293/320 [02:45<00:16, 1.63it/s]
cache-cache_patch:transformers-oblivious/inputs_empty_cache VALIDATE: 92%|█████████▏| 293/320 [02:46<00:16, 1.63it/s]
cache-cache_patch:transformers-oblivious/inputs_empty_cache VALIDATE: 92%|█████████▏| 294/320 [02:46<00:17, 1.50it/s]
cache-cache_patch:transformers-oblivious/inputs_batch1 EXPORT: 92%|█████████▏| 294/320 [02:46<00:17, 1.50it/s]
cache-cache_patch:transformers-oblivious/inputs_batch1 VALIDATE: 92%|█████████▏| 294/320 [02:47<00:17, 1.50it/s]
cache-cache_patch:transformers-oblivious/inputs_batch1 VALIDATE: 92%|█████████▏| 295/320 [02:47<00:17, 1.40it/s]
cache-cache_patch:transformers-oblivious-rt/inputs EXPORT: 92%|█████████▏| 295/320 [02:47<00:17, 1.40it/s]
cache-cache_patch:transformers-oblivious-rt/inputs VALIDATE: 92%|█████████▏| 295/320 [02:47<00:17, 1.40it/s]
cache-cache_patch:transformers-oblivious-rt/inputs VALIDATE: 92%|█████████▎| 296/320 [02:47<00:17, 1.34it/s]
cache-cache_patch:transformers-oblivious-rt/inputs_prompt EXPORT: 92%|█████████▎| 296/320 [02:47<00:17, 1.34it/s]
cache-cache_patch:transformers-oblivious-rt/inputs2 EXPORT: 92%|█████████▎| 296/320 [02:47<00:17, 1.34it/s]
cache-cache_patch:transformers-oblivious-rt/inputs2 VALIDATE: 92%|█████████▎| 296/320 [02:48<00:17, 1.34it/s]
cache-cache_patch:transformers-oblivious-rt/inputs2 VALIDATE: 93%|█████████▎| 298/320 [02:48<00:13, 1.61it/s]
cache-cache_patch:transformers-oblivious-rt/inputs_empty_cache EXPORT: 93%|█████████▎| 298/320 [02:48<00:13, 1.61it/s]
cache-cache_patch:transformers-oblivious-rt/inputs_empty_cache VALIDATE: 93%|█████████▎| 298/320 [02:49<00:13, 1.61it/s]
cache-cache_patch:transformers-oblivious-rt/inputs_empty_cache VALIDATE: 93%|█████████▎| 299/320 [02:49<00:14, 1.46it/s]
cache-cache_patch:transformers-oblivious-rt/inputs_batch1 EXPORT: 93%|█████████▎| 299/320 [02:49<00:14, 1.46it/s]
cache-cache_patch:transformers-oblivious-rt/inputs_batch1 VALIDATE: 93%|█████████▎| 299/320 [02:50<00:14, 1.46it/s]
cache-cache_patch:transformers-oblivious-rt/inputs_batch1 VALIDATE: 94%|█████████▍| 300/320 [02:50<00:14, 1.37it/s]
cache-cache_patch:transformers-strict/inputs EXPORT: 94%|█████████▍| 300/320 [02:50<00:14, 1.37it/s]
cache-cache_patch:transformers-strict/inputs EXPORT: 94%|█████████▍| 301/320 [02:51<00:14, 1.31it/s]
cache-cache_patch:transformers-strict/inputs_prompt EXPORT: 94%|█████████▍| 301/320 [02:51<00:14, 1.31it/s]
cache-cache_patch:transformers-strict/inputs2 EXPORT: 94%|█████████▍| 301/320 [02:51<00:14, 1.31it/s]
cache-cache_patch:transformers-strict/inputs2 EXPORT: 95%|█████████▍| 303/320 [02:52<00:10, 1.67it/s]
cache-cache_patch:transformers-strict/inputs_empty_cache EXPORT: 95%|█████████▍| 303/320 [02:52<00:10, 1.67it/s]
cache-cache_patch:transformers-strict/inputs_empty_cache EXPORT: 95%|█████████▌| 304/320 [02:52<00:09, 1.62it/s]
cache-cache_patch:transformers-strict/inputs_batch1 EXPORT: 95%|█████████▌| 304/320 [02:52<00:09, 1.62it/s]
cache-cache_patch:transformers-strict/inputs_batch1 EXPORT: 95%|█████████▌| 305/320 [02:53<00:09, 1.62it/s]
cache-cache_patch:transformers-strict-rt/inputs EXPORT: 95%|█████████▌| 305/320 [02:53<00:09, 1.62it/s]
cache-cache_patch:transformers-strict-rt/inputs EXPORT: 96%|█████████▌| 306/320 [02:54<00:08, 1.56it/s]
cache-cache_patch:transformers-strict-rt/inputs_prompt EXPORT: 96%|█████████▌| 306/320 [02:54<00:08, 1.56it/s]
cache-cache_patch:transformers-strict-rt/inputs2 EXPORT: 96%|█████████▌| 306/320 [02:54<00:08, 1.56it/s]
cache-cache_patch:transformers-strict-rt/inputs2 EXPORT: 96%|█████████▋| 308/320 [02:55<00:06, 1.88it/s]
cache-cache_patch:transformers-strict-rt/inputs_empty_cache EXPORT: 96%|█████████▋| 308/320 [02:55<00:06, 1.88it/s]
cache-cache_patch:transformers-strict-rt/inputs_empty_cache EXPORT: 97%|█████████▋| 309/320 [02:57<00:10, 1.02it/s]
cache-cache_patch:transformers-strict-rt/inputs_batch1 EXPORT: 97%|█████████▋| 309/320 [02:57<00:10, 1.02it/s]
cache-cache_patch:transformers-strict-rt/inputs_batch1 EXPORT: 97%|█████████▋| 310/320 [02:58<00:08, 1.14it/s]
cache-cache_patch:transformers-strict-oblivious/inputs EXPORT: 97%|█████████▋| 310/320 [02:58<00:08, 1.14it/s]
cache-cache_patch:transformers-strict-oblivious/inputs EXPORT: 97%|█████████▋| 311/320 [02:58<00:07, 1.19it/s]
cache-cache_patch:transformers-strict-oblivious/inputs_prompt EXPORT: 97%|█████████▋| 311/320 [02:58<00:07, 1.19it/s]
cache-cache_patch:transformers-strict-oblivious/inputs2 EXPORT: 97%|█████████▋| 311/320 [02:58<00:07, 1.19it/s]
cache-cache_patch:transformers-strict-oblivious/inputs2 EXPORT: 98%|█████████▊| 313/320 [02:59<00:04, 1.54it/s]
cache-cache_patch:transformers-strict-oblivious/inputs_empty_cache EXPORT: 98%|█████████▊| 313/320 [02:59<00:04, 1.54it/s]
cache-cache_patch:transformers-strict-oblivious/inputs_empty_cache EXPORT: 98%|█████████▊| 314/320 [03:00<00:03, 1.53it/s]
cache-cache_patch:transformers-strict-oblivious/inputs_batch1 EXPORT: 98%|█████████▊| 314/320 [03:00<00:03, 1.53it/s]
cache-cache_patch:transformers-strict-oblivious/inputs_batch1 EXPORT: 98%|█████████▊| 315/320 [03:00<00:03, 1.65it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs EXPORT: 98%|█████████▊| 315/320 [03:00<00:03, 1.65it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs EXPORT: 99%|█████████▉| 316/320 [03:01<00:02, 1.56it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs_prompt EXPORT: 99%|█████████▉| 316/320 [03:01<00:02, 1.56it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs2 EXPORT: 99%|█████████▉| 316/320 [03:01<00:02, 1.56it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs2 EXPORT: 99%|█████████▉| 318/320 [03:02<00:01, 1.91it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs_empty_cache EXPORT: 99%|█████████▉| 318/320 [03:02<00:01, 1.91it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs_empty_cache EXPORT: 100%|█████████▉| 319/320 [03:03<00:00, 1.68it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs_batch1 EXPORT: 100%|█████████▉| 319/320 [03:03<00:00, 1.68it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs_batch1 EXPORT: 100%|██████████| 320/320 [03:03<00:00, 1.59it/s]
cache-cache_patch:transformers-strict-oblivious-rt/inputs_batch1 EXPORT: 100%|██████████| 320/320 [03:03<00:00, 1.74it/s]
Let’s save the results.
df = pandas.DataFrame(results)
df.to_excel("plot_export_tiny_llm_dim01.xlsx")
df
no_export = df[df.EXPORT == 0]
no_export.to_excel("plot_export_tiny_llm_dim01.no_export.xlsx")
no_export
The validation failures.
If you have any error, then look at example Export Tiny-LLM with patches.
doc.plot_legend("Tiny-LLM\nexport with\ndimension in {0,1}", "torch.export.export", "tomato")

Total running time of the script: (3 minutes 4.058 seconds)
Related examples
Export with dynamic dimensions in {0,1} into ONNX (custom)