Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TST, BUILD: Add a native x86 baseline build running on ubuntu-20.04 #17960

Merged
merged 2 commits into from
Dec 9, 2020

Conversation

seiko2plus
Copy link
Member

@seiko2plus seiko2plus commented Dec 8, 2020

Add a native x86 baseline build running on ubuntu-20.04

to build and test NumPy against the maximum supported CPU features
by the compiler and the running machine

native baseline build will allow us to test pull-requests like #17958,
that doesn't use runtime dispatching.

  to build and test NumPy against the maximum supported CPU features
  by the compiler and the running machine
@seiko2plus
Copy link
Member Author

/cc, @mattip

@mattip
Copy link
Member

mattip commented Dec 9, 2020

This new run on ubuntu 20.04 uses the system python3.8 and cpu features

NumPy CPU features: SSE SSE2 SSE3 SSSE3 SSE41 POPCNT SSE42 AVX F16C FMA3 AVX2 AVX512F \
AVX512CD AVX512_SKX

This is different from the github actions python3.8 run which is using cpu features and dispatching

NumPy CPU features: SSE SSE2 SSE3 SSSE3* SSE41* POPCNT* SSE42* AVX* F16C* FMA3* AVX2* AVX512F* \
AVX512CD* AVX512_KNL? AVX512_KNM? AVX512_SKX* AVX512_CNL?

Is there any concern that as azure changes its hardware we might see a different set of baseline features chosen? Thinking about it more, I guess if they change hardware, we could also have problems with dispatching, so this is no more "dangerous" than the current setup.

Copy link
Member

@mattip mattip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only concern I have is the hidden cost of adding an additional CI run, we may want to limit our use of CI resources at some point.

@seiko2plus
Copy link
Member Author

Is there any concern that as azure changes its hardware we might see a different set of baseline features chosen?

Yes, that can normaly happens for example if the running machine only supports AVX2 FMA3 the output will be:

NumPy CPU features: SSE SSE2 SSE3 SSSE3 SSE41 POPCNT SSE42 AVX F16C FMA3 AVX2

Thinking about it more, I guess if they change hardware, we could also have problems with dispatching

No we don't, --cpu-baseline=native is based on the compiler native operation which only enables the CPU features
that supported by the local machine, please take a look at x86-Options for more clearfication.

The only concern I have is the hidden cost of adding an additional CI run, we may want to limit our use of CI resources at some point.

But we still need to add another build for baseline_avx2 since its seems most of builders run on avx512 machine.

@mattip mattip merged commit 707a5da into numpy:master Dec 9, 2020
@mattip
Copy link
Member

mattip commented Dec 9, 2020

Thanks @seiko2plus

@rgommers rgommers added the component: SIMD Issues in SIMD (fast instruction sets) code or machinery label Jul 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
05 - Testing component: SIMD Issues in SIMD (fast instruction sets) code or machinery
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants