You can make a difference in the Apple Support Community!

When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

AVX2 instruction set support - iMac PRO 2017 - intel Xeon W-2140B

An interesting problem regarding AVX2 support on the 2017 iMac PRO with the 8core Xeon W-2140B.


I run a science image processing application natively in OS Monterey that has received a major update and now requires AVX2 support to implement revised Ai modules.


Running the command in Terminal "sysctl -a | grep cpu.feat" returns the supported instruction set list that only contains support for AVX1.0, AVX2 is not listed.


According to public Intel documents the 8 core Xeon W with the Skylake W core does support AVX2 but the specifications for the apple specific version of this CPU are propriety and apparently a secret.


Now the interesting issue arises if I run a Windows 10 virtual machine on the iMac PRO and in the Windows environment run the Microsoft equivalent of "sysctl - | grep cpu.feat" to query CPU instruction set support.


If I run Microsoft Sysinternals Coreinfo64 inside the Windows 10 virtual machine it reports that AVX2 is present and supported.


Comparing the two supported CPU instruction set lists, from Terminal in the native iMacPRO, and from the Windows VM running on the iMacPRO the two lists are virtually identical except for the issue around AVX2. According to Terminal AVX2 is not supported, according to the Windows VM AVX2 is supported.


Does anybody know why this disparity exists and more importantly does the intel Xeon W-2140B CPU fitted to the 2017 iMac Pro support AVX2 or not.


If I decide to upgrade the current Mac OS native science application to the newest version that requires AVX2 support I would need to buy a non-refundable upgrade license, at a high cost, alternatively I could buy a multi-OS upgrade license at an even higher cost and run the application in the Windows VM which reports AVX2 is supported. Either way I am looking at an outlay of several thousand US$ with no guarantee that the new version will run either natively or inside a Windows VM.


Can anybody confirm definitely whether or not AVX2 is supported on the Intel Xeon W-2140B fitted to the 2017 iMac PRO and if so why does "sysctl -a | grep cpu.feat" in Terminal not return AVX2 as a supported instruction set.


Many thanks for reading.


William.

iMac Pro, macOS 12.0

Posted on Nov 22, 2021 2:42 AM

Reply
Question marked as Top-ranking reply

Posted on Nov 29, 2021 4:16 AM

I managed to answer my own question after some searching through various Mac developer threads.


Specifically, the AVX2 instruction set is supported on the 8 Core Intel Xeon W-1240B processor fitted to the 2017 iMac Pro.


If anyone stumbles upon this topic while trying to determine which CPU instructions sets are supported on a Mac it appears that the commonly quoted query string, typed in Terminal: sysctl -a | grep cpu.feat does not return a complete list of supported instruction sets, there is a second tranche of CPU instructions that are only revealed when a different query string is typed in Terminal.


Either the string: sysctl -a | grep machdep.cpu or: sysctl machdep.cpu typed in Terminal returns a complete list of CPU instruction set support.

In both cases AVX2 is listed under a "leaf7" subset of instructions that are not revealed when using the more common sysctl -a | grep cpu.feat query.


This explains why querying CPU instruction set support from a Windows 10 virtual machine running in Parallels Desktop on a 2017 iMac Pro reported that AVX2 instructions were supported while typing the query string sysctl -a | grep cpu.feat directly in Terminal on the Mac reported that AVX2 was missing and therefore assumed not supported.


Bottom line, if using Terminal to query which CPU instructions are supported on a Mac with an Intel CPU use the string:

sysctl -a | grep machdep.cpu -or- sysctl machdep.cpu to return a complete list of all supported CPU instruction sets.


William.

1 reply
Question marked as Top-ranking reply

Nov 29, 2021 4:16 AM in response to Will_G_Astro

I managed to answer my own question after some searching through various Mac developer threads.


Specifically, the AVX2 instruction set is supported on the 8 Core Intel Xeon W-1240B processor fitted to the 2017 iMac Pro.


If anyone stumbles upon this topic while trying to determine which CPU instructions sets are supported on a Mac it appears that the commonly quoted query string, typed in Terminal: sysctl -a | grep cpu.feat does not return a complete list of supported instruction sets, there is a second tranche of CPU instructions that are only revealed when a different query string is typed in Terminal.


Either the string: sysctl -a | grep machdep.cpu or: sysctl machdep.cpu typed in Terminal returns a complete list of CPU instruction set support.

In both cases AVX2 is listed under a "leaf7" subset of instructions that are not revealed when using the more common sysctl -a | grep cpu.feat query.


This explains why querying CPU instruction set support from a Windows 10 virtual machine running in Parallels Desktop on a 2017 iMac Pro reported that AVX2 instructions were supported while typing the query string sysctl -a | grep cpu.feat directly in Terminal on the Mac reported that AVX2 was missing and therefore assumed not supported.


Bottom line, if using Terminal to query which CPU instructions are supported on a Mac with an Intel CPU use the string:

sysctl -a | grep machdep.cpu -or- sysctl machdep.cpu to return a complete list of all supported CPU instruction sets.


William.

AVX2 instruction set support - iMac PRO 2017 - intel Xeon W-2140B

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.