Operator not available in Core ATen opset
@manuelcandales is already working on this.
Since Jul 14, 2025.
- Dominant language
- Python
- Stars
- 5k
- Forks
- 1.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 581
Description
Missing torch.ops.aten.uniform.default operator
I'm working on deploying a Neural Network built with ESPnet on a GPU utilizing a Vulkan backend. To achieve this, I am using Executorch.
I am loading my model with the following:
from espnet.asr.pytorch_backend.asr_init import load_trained_model
I am also wrapping my model in a class to provide the nn.Module that Executorch needs. After that, I can export the model successfully:
aten_program = export(wrapped_model, (dummy_input, ))
But the execution flow fails when I try to lower the model with
from executorch.exir import to_edge_transform_and_lower
This is the error message I see:
torch._export.verifier.SpecViolationError:
Operator torch._ops.aten.uniform.default is not in Core ATen opset (https://pytorch.org/docs/stable/torch.compiler_ir.html#core-aten-ir)."
There are a few things to try:
- You can proceed with
to_edge(compile_config=EdgeCompileConfig(_core_aten_ops_exception_list=[torch.ops.aten.uniform.default])).
Please make sure that the backend(s) you are planning to lower to is able to handle aten.uniform.default, or you have a corresponding kernel linked to your runtime. - Sometimes inference and training gives slightly different op set. Try adding
with torch.no_grad():context manager if you are export for inference only. - If the error persists after 2, this is likely caused by torch.export() + core ATen decomposition producing unexpected operators for your model.
If you believe this operator should be included into core ATen opset, please create an issue in https://github.com/pytorch/pytorch/issues and addmodule: core atentag.
You can find attached all the messages thrown during execution, including the traceback.
The problem is related with either a missing decomposition or missing operator on the Core ATen. Is it possible for you to implement it?
Alternatives
The program executes successfully using option 1 provided above, but I am not sure if the backend can handle the missing operator:
edge_program = to_edge_transform_and_lower( aten_program, partitioner=[VulkanPartitioner()]), compile_config=EdgeCompileConfig(_core_aten_ops_exception_list=[torch.ops.aten.uniform.default] )
Additional context
This is the virtual environment:
Package Version
aiohappyeyeballs 2.6.1
aiohttp 3.11.18
aiosignal 1.3.2
antlr4-python3-runtime 4.9.3
asteroid-filterbanks 0.4.0
async-timeout 5.0.1
attrs 25.3.0
audioread 3.0.1
certifi 2025.1.31
cffi 1.17.1
chainer 7.8.1
charset-normalizer 3.4.1
ci-sdr 0.0.2
click 8.1.8
ConfigArgParse 1.7
ctc_segmentation 1.7.4
Cython 3.0.12
decorator 5.2.1
Distance 0.1.3
editdistance 0.8.1
einops 0.8.1
espnet 202412
espnet-tts-frontend 0.0.3
exceptiongroup 1.3.0
execnet 2.1.1
executorch 0.6.0
expecttest 0.3.0
fast-bss-eval 0.1.3
filelock 3.18.0
flash_attn 2.8.0.post2
flatbuffers 25.2.10
frozenlist 1.6.0
fsspec 2025.3.2
g2p-en 2.1.0
h5py 3.13.0
humanfriendly 10.0
hydra-core 1.3.2
hypothesis 6.135.22
idna 3.10
importlib-metadata 4.13.0
inflect 7.5.0
iniconfig 2.1.0
jaconv 0.4.0
jamo 0.4.1
Jinja2 3.1.6
joblib 1.4.2
kaldiio 2.18.1
librosa 0.9.2
lightning 2.5.1
lightning-utilities 0.14.3
llvmlite 0.43.0
MarkupSafe 3.0.2
more-itertools 10.7.0
mpmath 1.3.0
multidict 6.4.3
networkx 3.4.2
nltk 3.9.1
numba 0.60.0
numpy 1.23.5
nvidia-cublas-cu12 12.6.4.1
nvidia-cuda-cupti-cu12 12.6.80
nvidia-cuda-nvrtc-cu12 12.6.77
nvidia-cuda-runtime-cu12 12.6.77
nvidia-cudnn-cu12 9.5.1.17
nvidia-cufft-cu12 11.3.0.4
nvidia-cufile-cu12 1.11.1.6
nvidia-curand-cu12 10.3.7.77
nvidia-cusolver-cu12 11.7.1.2
nvidia-cusparse-cu12 12.5.4.2
nvidia-cusparselt-cu12 0.6.3
nvidia-nccl-cu12 2.26.2
nvidia-nvjitlink-cu12 12.6.85
nvidia-nvtx-cu12 12.6.77
omegaconf 2.3.0
onnx 1.18.0
opt_einsum 3.4.0
packaging 24.2
pandas 2.3.0
parameterized 0.9.0
pillow 11.3.0
pip 22.0.2
platformdirs 4.3.7
pluggy 1.6.0
pooch 1.8.2
propcache 0.3.1
protobuf 6.30.2
pycparser 2.22
Pygments 2.19.2
pypinyin 0.44.0
pytest 8.4.1
pytest-rerunfailures 15.1
pytest-xdist 3.8.0
python-dateutil 2.9.0.post0
pytorch-lightning 2.5.1
pytz 2025.2
pyworld 0.3.5
PyYAML 6.0.2
regex 2024.11.6
requests 2.32.3
resampy 0.4.3
ruamel.yaml 0.18.14
ruamel.yaml.clib 0.2.12
scikit-learn 1.6.1
scipy 1.15.2
sentencepiece 0.1.97
setuptools 59.6.0
six 1.17.0
sortedcontainers 2.4.0
soundfile 0.13.1
sympy 1.13.3
tabulate 0.9.0
threadpoolctl 3.6.0
tomli 2.2.1
torch 2.7.0
torch-complex 0.4.4
torchao 0.10.0
torchaudio 2.7.0
torchmetrics 1.7.1
torchvision 0.22.0
tqdm 4.67.1
triton 3.3.0
typeguard 4.4.2
typing_extensions 4.13.2
tzdata 2025.2
Unidecode 1.4.0
urllib3 2.4.0
wheel 0.45.1
yarl 1.20.0
zipp 3.21.0
cc @larryliu0820 @manuelcandales
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.