in [MetalWorkspace::CopyDataFromTo](https://github.com/apache/tvm/blob/main/src/runtime/metal/metal_device_api.mm#L228) three situation is handled: 1. Copy from Metal to Metal 2. Copy from CPU to Metal 3. Copy from Metal to CPU I.e. in your case one more extra copy will be done and it will be much easier currently just to pass NDArray working with CPU context. Could you pass `m_cpuInput` to `set_input("INPUT", m_cpuInput);` and verify the result?
Another difference - I looked in my code and figured out that I have not used `TVMArrayCopyFromTo`, but used function of NDArray. Like ``` tvm::runtime::NDArray output = getOutput_(0); output.CopyTo(y_); ``` where output will be NDArray working with Metal context and y_ - NDArray allocated for CPU context --- [Visit Topic](https://discuss.tvm.apache.org/t/irrespective-of-input-same-output-ios-tvm-model/10765/10) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/15af9363700f3866a60accb1c76307a22d4ff2265cb8620910dad9f27cd21511).