]> git.sesse.net Git - stockfish/commitdiff
Deprecate the x86-64-modern arch
authorJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sun, 16 Jul 2023 14:25:03 +0000 (16:25 +0200)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sun, 16 Jul 2023 15:47:25 +0000 (17:47 +0200)
Explicitly describe the architecture as deprecated,
it remains available as its current alias x86-64-sse41-popcnt

CPUs that support just this instruction set are now years old,
any few years old Intel or AMD CPU supports x86-64-avx2. However,
naming things 'modern' doesn't age well, so instead use explicit names.

Adjust CI accordingly. Wiki, fishtest, downloader done as well.

closes https://github.com/official-stockfish/Stockfish/pull/4691

No functional change.

.github/workflows/stockfish_binaries.yml
.github/workflows/stockfish_sanitizers.yml
.github/workflows/stockfish_test.yml
README.md
src/Makefile

index f856d403af4dd35c99439cf78499d72f9d0dcbda..cd90507ec4e4b82a81f7f014194230965b8c8a1b 100644 (file)
@@ -44,7 +44,7 @@ jobs:
         binaries:
           - x86-32
           - x86-64
-          - x86-64-modern
+          - x86-64-sse41-popcnt
           - x86-64-avx2
           - x86-64-bmi2
           - x86-64-avxvnni
index ebfd809c2950f64848417f8a217b56700c887550..305b8557bfbfa2ce20110ab4f75c8b4324f07f4e 100644 (file)
@@ -62,5 +62,5 @@ jobs:
         run: |
           export CXXFLAGS="-O1 -fno-inline"
           make clean
-          make -j2 ARCH=x86-64-modern ${{ matrix.sanitizers.make_option }} debug=yes optimize=no build > /dev/null
+          make -j2 ARCH=x86-64-sse41-popcnt ${{ matrix.sanitizers.make_option }} debug=yes optimize=no build > /dev/null
           ../tests/instrumented.sh --${{ matrix.sanitizers.instrumented_option }}
index cd80e22385321e246e916e1926cc642a9becc8f9..c2ed7a4b94d34faf7719a46969ff36d3999f0c99 100644 (file)
@@ -177,12 +177,12 @@ jobs:
 
       # x86-64 tests
 
-      - name: Test debug x86-64-modern build
+      - name: Test debug x86-64-sse41-popcnt build
         if: matrix.config.run_64bit_tests
         run: |
           export CXXFLAGS="-Werror -D_GLIBCXX_DEBUG"
           make clean
-          make -j2 ARCH=x86-64-modern optimize=no debug=yes build
+          make -j2 ARCH=x86-64-sse41-popcnt optimize=no debug=yes build
           ../tests/signature.sh $benchref
 
       - name: Test x86-64-bmi2 build
@@ -199,6 +199,7 @@ jobs:
           make -j2 ARCH=x86-64-avx2 build
           ../tests/signature.sh $benchref
 
+      # Test a deprecated arch
       - name: Test x86-64-modern build
         if: matrix.config.run_64bit_tests
         run: |
@@ -206,6 +207,13 @@ jobs:
           make -j2 ARCH=x86-64-modern build
           ../tests/signature.sh $benchref
 
+      - name: Test x86-64-sse41-popcnt build
+        if: matrix.config.run_64bit_tests
+        run: |
+          make clean
+          make -j2 ARCH=x86-64-sse41-popcnt build
+          ../tests/signature.sh $benchref
+
       - name: Test x86-64-ssse3 build
         if: matrix.config.run_64bit_tests
         run: |
@@ -271,6 +279,6 @@ jobs:
         if: matrix.config.run_64bit_tests
         run: |
           make clean
-          make -j2 ARCH=x86-64-modern build
+          make -j2 ARCH=x86-64-sse41-popcnt build
           ../tests/perft.sh
           ../tests/reprosearch.sh
index 1f462d315af2f076dc51762201ee206c97ec9b09..e0e3da394f576eb13e335e27fe5db91deb1fa232 100644 (file)
--- a/README.md
+++ b/README.md
@@ -80,11 +80,11 @@ big-endian machines such as Power PC, and other platforms.
 On Unix-like systems, it should be easy to compile Stockfish directly from the
 source code with the included Makefile in the folder `src`. In general, it is
 recommended to run `make help` to see a list of make targets with corresponding
-descriptions.
+descriptions. An example suitable for most Intel and AMD chips:
 
 ```
 cd src
-make -j build ARCH=x86-64-modern
+make -j profile-build ARCH=x86-64-avx2
 ```
 
 Detailed compilation instructions for all platforms can be found in our
index 966ac2a7a606d0bcd5adc8756f2ecf203b0b55a0..f66d84d5547fe396b458604de939c7204cfa8931 100644 (file)
@@ -104,7 +104,7 @@ VPATH = syzygy:nnue:nnue/features
 ### 2.1. General and architecture defaults
 
 ifeq ($(ARCH),)
-   ARCH = x86-64-modern
+   ARCH = x86-64-avx2
    help_skip_sanity = yes
 endif
 # explicitly check for the list of supported architectures (as listed with make help),
@@ -189,6 +189,8 @@ ifeq ($(findstring -sse41,$(ARCH)),-sse41)
 endif
 
 ifeq ($(findstring -modern,$(ARCH)),-modern)
+        $(warning *** ARCH=$(ARCH) is deprecated, defaulting to ARCH=x86-64-sse41-popcnt. Execute `make help` for a list of available architectures. ***)
+        $(shell sleep 5)
        popcnt = yes
        sse = yes
        sse2 = yes
@@ -781,7 +783,7 @@ help:
        @echo "x86-64-bmi2             > x86 64-bit with bmi2 support"
        @echo "x86-64-avx2             > x86 64-bit with avx2 support"
        @echo "x86-64-sse41-popcnt     > x86 64-bit with sse41 and popcnt support"
-       @echo "x86-64-modern           > common modern CPU, currently x86-64-sse41-popcnt"
+       @echo "x86-64-modern           > deprecated, currently x86-64-sse41-popcnt"
        @echo "x86-64-ssse3            > x86 64-bit with ssse3 support"
        @echo "x86-64-sse3-popcnt      > x86 64-bit with sse3 and popcnt support"
        @echo "x86-64                  > x86 64-bit generic (with sse2 support)"
@@ -811,13 +813,13 @@ help:
        @echo "Simple examples. If you don't know what to do, you likely want to run one of: "
        @echo ""
        @echo "make -j profile-build ARCH=x86-64-avx2    # typically a fast compile for common systems "
-       @echo "make -j profile-build ARCH=x86-64-modern  # A more portable compile for 64-bit systems "
+       @echo "make -j profile-build ARCH=x86-64-sse41-popcnt  # A more portable compile for 64-bit systems "
        @echo "make -j profile-build ARCH=x86-64         # A portable compile for 64-bit systems "
        @echo ""
        @echo "Advanced examples, for experienced users: "
        @echo ""
-       @echo "make -j profile-build ARCH=x86-64-bmi2"
-       @echo "make -j profile-build ARCH=x86-64-bmi2 COMP=gcc COMPCXX=g++-9.0"
+       @echo "make -j profile-build ARCH=x86-64-avxvnni"
+       @echo "make -j profile-build ARCH=x86-64-avxvnni COMP=gcc COMPCXX=g++-12.0"
        @echo "make -j build ARCH=x86-64-ssse3 COMP=clang"
        @echo ""
        @echo "-------------------------------"