cancel
Showing results for 
Search instead for 
Did you mean: 

Processors

knightyangduke
Journeyman III

Are the dependencies for different SIMD intrinsics on AMD processors

different SIMD version dependencies 

I am currently looking into the SIMD optimization on different CPUs.

For different SIMD instruction sets, e.g. AVX512, AVX2, AVX, SSE4.1, SSE2, SSE Are there any dependencies?

By dependency, I mean the following:

(1) For example, if a CPU supports AVX512, it will need to have AVX and SSE.

     Is this true? If so, is there a place where I can find such dependencies for all different intrinsic set

(2) If I want to enable optimization for AVX512, I will have to enable AVX and SSE

    Is this true? If so, is there a place where I can find such dependencies for all different intrinsic set

 The intrinsic Guide from Intel does not really contain this information, so I assume it is the processor manufacture (Intel or AMD) to determines this in their processors

Is there a documentation about the dependencies of different SIMD intrinsic set for your processors?

If not, can someone provide one?

Thanks.

Ye

6 Replies

You might want to see if the AMD developer site or forum can help.

https://developer.amd.com 

You can try and check at AMD Technical Documentation site: https://www.amd.com/en/support/tech-docs  and see if any of the docs has what you are looking for under Processors.

or open an Online AMD Service Request (Official AMD Support) and see if they can direct you on where to locate your information if it is available to the public from here: https://www.amd.com/en/support/contact-email-form

rwd4ever
Adept III

I never worried about that. I just ask the compiler to create code for whatever CPU, and it will determine what instruction sets it supports. Yes in general if CPU does AVX2 then it does SSE3, SSE2,MMX and so on, except AMD dropped 3DNow at some point.

I cannot simply query the cpu info or depend on the compiler.

I am building an infrastructure in MATLAB that allows people to choose this for their target hardware, which finally determines the compiler flags we need to add for the target compiler.

Since MATLAB runs on a host machine, we cannot get the CPUInfo either.

This is basically why I need some document to refer to.

All publicly available documentation can be found at the link posted above (https://community.amd.com/external-link.jspa?url=https%3A%2F%2Fwww.amd.com%2Fen%2Fsupport%2Ftech-doc... ).

If what you are looking for is not there, then it is not available. 

AMD announced inAugust 2010 that support for 3DNow! would be dropped in future AMD processors, except for two instructions, PREFETCH and PREFETCHW instructions.

Bulldozer, Bobcat and Zen architectures don't support it. However the other avenues and speed improvements likely adequately replace it. 

Not many developers ever supported it to begin with. 

0 Likes