IMatch on Mac with Apple processor

Started by medgeek, January 24, 2024, 09:48:23 PM

Previous topic - Next topic

medgeek

What is the latest on running IMatch on Apple silicon using Parallels? I understand IMatch requires AVX support. I found this post from a few weeks ago on the Parallels forum:

QuoteHi all, if you experience AVX/AVX2-related errors and your application doesn't run in Windows on Arm, please report application names and versions at https://forum.parallels.com/threads/avx-avx2-instructions.355351/, like GuyK2 did.
 
 It can be that some of these apps are not properly detecting the capabilities of the Windows 11 emulation and can actually run just fine there. Feel free to reach out to the developers of these applications too. Parallels team will try to reach out using our channels.
 

The post vaguely implies (but doesn't definitively state) that there is support for AVX in Parallels. Has anyone had success running IMatch on Apple silicon?

mopperle

One of many reasons why I moved away from Apple. And if I need to run Windows software why should I use Apple hardware.

Mario

Google for

does parallels support AVX

to get some answers.

As far as I know, Apple Silicon does not support any of the standard vector processing technologies like AVX, AVX2 and more advanced technologies Intel and AMD have introduced over the last decade. Apples M1/M2 RISC architecture uses their own vectorization technology, which is not compatible with the Intel/AMD world.

Apple really wanted to burn some bridges by moving to their own processor architecture.
 "Though shall only run Apple-christened software on your Apple devices" and all that ;)

Parallels is a hypervisor, it runs on the bare meta. I doubt they will be able to simulate or emulate AVX, AVX2, AVX-512 and other common high-speed vectorization technologies on M1/M2. Virtual machine software like VirtualBox or VMWare are unable to simulate AVX as far as I know. It would not make much sense, I guess. "Simulating" processor features which are used to speed up AI and vector math by implementing specialized instructions in hardware would do no good.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

medgeek

Quote from: Mario on January 25, 2024, 11:25:33 AMGoogle for
does parallels support AVX to get some answers.
That's exactly what I did and that's how I found the quote in the original post on the Parallels forum. As I mentioned, it seems to imply that Parallels does support AVX, so I thought I'd ask if anyone here has tried it recently and had success.

I'm aware it didn't work about 2 months ago and I read the entire discussion in this thread:

https://www.photools.com/community/index.php/topic,13808

Thanks.


Mario

Maybe send a question to their support? This will provide the definitive answer.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Carlo Didier

Quote from: medgeek on January 24, 2024, 09:48:23 PMThe post vaguely implies (but doesn't definitively state) that there is support for AVX in Parallels. Has anyone had success running IMatch on Apple silicon?
I would rather think it suggests that some Windows software might either not really need AVX, but ask for it because of the way it was compiled, or not fall back to an alternative mode if possible. Usual Apple lingo to blame others for their own shortcomings  :)

Mario

If you compile your application to use AVX, it will not run on a system which does not have AVX as a processor feature. You have to maintain two separate builds, one without AVX and one with. Extra maintenance dept and cost.

And your software will run slow as molasses without AVX.
For example, without AVX, the face recognition in IMatch takes 10 times as long. Per image!

You can work around this, probably, by moving all code that uses AVX into a separate DLL that is dynamically loaded at runtime. Then the software could run on non AVX processors by not loading the DLL and falling back to much slower non-AVX optimized code. But who would want that?

Everything has to implemented, tested and maintained twice.
Given that AVX is standard in the Intel and AMD world for about a decade, it's just not worth the extra cost and maintenance dept.

AVX is the most basic vector optimization technology used for Intel and AMD CPUs.
Apple now implements their own chip designs and decided not to implement features that allows hypervisors like Parallels or VMs like VMWare/VirtualBox to emulate/simulate AVX. Because that is not in Apple's interest, I guess.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook