all: build prebuilt binaries with AVX2 / x86_64-v3 starting Jan 1st, 2025 #989

Open
opened 2023-08-15 14:46:21 +00:00 by emidoots · 0 comments
emidoots commented 2023-08-15 14:46:21 +00:00 (Migrated from github.com)

Context

Today we build binaries with -Dcpu=x86_64_v3, which enables AVX and AVX2. However, cheaper laptops from ~2019 use e.g. Celeron 3867U processors which only support SSE4.2.

We've also had users want to be able to use Mach on much older hardware, e.g. Pentium E5700 from 2010.

Anyone can build Dawn from source, though on low-end CPUs it would take quite a while

Supporting all hardware is simply not possible, especially so because graphics hardware is an ever-moving target which enables much more capabilities than just CPU hardware changes do. We need a cut-off date of what we will and won't support in general.

Decision

By default out-of-the-box I expect Mach to work on hardware released in the last 5 years. It may be possible to use on older hardware, but you'll have to potentially go through hoops or be unable to use some features.

This means we should disable AVX/AVX2 support, and build our Dawn binaries with x86_64-v2 instead of x86_64-v3 today.

The Celeron 3867U ~2019 laptop user will be able to use Mach today, but it will only be supported until the end of 2024.

TODO

On January 1st, 2025, we will upgrade from x86_64-v2 to x86_64-v3 and require AVX/AVX2 support.


Some useful links:

## Context Today we build binaries with `-Dcpu=x86_64_v3`, which enables AVX and AVX2. However, cheaper laptops from ~2019 use e.g. Celeron 3867U processors which only support SSE4.2. We've also had users want to be able to use Mach on much older hardware, e.g. Pentium E5700 from 2010. Anyone can build Dawn from source, though on low-end CPUs it would take quite a while Supporting all hardware is simply not possible, especially so because graphics hardware is an ever-moving target which enables much more capabilities than just CPU hardware changes do. We need a cut-off date of what we will and won't support in general. ## Decision By default out-of-the-box I expect Mach to work on hardware released in the last 5 years. It may be possible to use on older hardware, but you'll have to potentially go through hoops or be unable to use some features. This means we should disable AVX/AVX2 support, and build our Dawn binaries with x86_64-v2 instead of x86_64-v3 today. The Celeron 3867U ~2019 laptop user will be able to use Mach today, but it will only be supported until the end of 2024. ## TODO On January 1st, 2025, we will upgrade from x86_64-v2 to x86_64-v3 and require AVX/AVX2 support. --- Some useful links: * https://lists.llvm.org/pipermail/llvm-dev/2020-July/143289.html * https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level#background_of_the_x86_64_microarchitecture_levels *
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hexops/mach#989
No description provided.