Skip to content

[CoreML] Add support for int64#24462

Merged
carzh merged 7 commits intomainfrom
carzh/coreml-int64
Apr 30, 2025
Merged

[CoreML] Add support for int64#24462
carzh merged 7 commits intomainfrom
carzh/coreml-int64

Conversation

@carzh
Copy link
Contributor

@carzh carzh commented Apr 17, 2025

Description

Add int64 as a supported datatype for moving nodes to the CoreML EP.

We already convert constants automatically from int64 to int32 for CoreML by calling narrow.

Adding the conversion for outputs as well.

Motivation and Context

  • More nodes supported on CoreML

Note on the Unsqueeze op

According to #22975 there is a bug with the Unsqueeze op with scalar inputs on x86.

I was running into a bug for unsqueezes that unsqueezed a scalar input to a tensor of shape [1] since CoreML doesn't support scalar values for MLProgram. I adapted the HandleX86ArchUnsqueeze method but alternatively, can replace with an identity operator or add some additional checks. I went with adapting the HandleX86ArchUnsqueeze method since it seemed like the fastest solution.

@carzh carzh requested review from edgchen1 and skottmckay April 17, 2025 22:44
@carzh carzh merged commit a470da1 into main Apr 30, 2025
91 of 98 checks passed
@carzh carzh deleted the carzh/coreml-int64 branch April 30, 2025 19:01
ankitm3k pushed a commit to intel/onnxruntime that referenced this pull request May 12, 2025
### Description
Add int64 as a supported datatype for moving nodes to the CoreML EP.

We already convert constants automatically from int64 to int32 for
CoreML by calling narrow.

Adding the conversion for outputs as well.

### Motivation and Context
- More nodes supported on CoreML

### Note on the Unsqueeze op
According to microsoft#22975 there is a bug with the Unsqueeze op with scalar
inputs on x86.

I was running into a bug for unsqueezes that unsqueezed a scalar input
to a tensor of shape [1] since CoreML doesn't support scalar values for
MLProgram. I adapted the HandleX86ArchUnsqueeze method but
alternatively, can replace with an identity operator or add some
additional checks. I went with adapting the HandleX86ArchUnsqueeze
method since it seemed like the fastest solution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants