mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 09:47:46 +00:00
Deprecate the x86-64-modern arch
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.
This commit is contained in:
@@ -44,7 +44,7 @@ jobs:
|
|||||||
binaries:
|
binaries:
|
||||||
- x86-32
|
- x86-32
|
||||||
- x86-64
|
- x86-64
|
||||||
- x86-64-modern
|
- x86-64-sse41-popcnt
|
||||||
- x86-64-avx2
|
- x86-64-avx2
|
||||||
- x86-64-bmi2
|
- x86-64-bmi2
|
||||||
- x86-64-avxvnni
|
- x86-64-avxvnni
|
||||||
|
|||||||
@@ -62,5 +62,5 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
export CXXFLAGS="-O1 -fno-inline"
|
export CXXFLAGS="-O1 -fno-inline"
|
||||||
make clean
|
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 }}
|
../tests/instrumented.sh --${{ matrix.sanitizers.instrumented_option }}
|
||||||
|
|||||||
@@ -177,12 +177,12 @@ jobs:
|
|||||||
|
|
||||||
# x86-64 tests
|
# x86-64 tests
|
||||||
|
|
||||||
- name: Test debug x86-64-modern build
|
- name: Test debug x86-64-sse41-popcnt build
|
||||||
if: matrix.config.run_64bit_tests
|
if: matrix.config.run_64bit_tests
|
||||||
run: |
|
run: |
|
||||||
export CXXFLAGS="-Werror -D_GLIBCXX_DEBUG"
|
export CXXFLAGS="-Werror -D_GLIBCXX_DEBUG"
|
||||||
make clean
|
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
|
../tests/signature.sh $benchref
|
||||||
|
|
||||||
- name: Test x86-64-bmi2 build
|
- name: Test x86-64-bmi2 build
|
||||||
@@ -199,6 +199,7 @@ jobs:
|
|||||||
make -j2 ARCH=x86-64-avx2 build
|
make -j2 ARCH=x86-64-avx2 build
|
||||||
../tests/signature.sh $benchref
|
../tests/signature.sh $benchref
|
||||||
|
|
||||||
|
# Test a deprecated arch
|
||||||
- name: Test x86-64-modern build
|
- name: Test x86-64-modern build
|
||||||
if: matrix.config.run_64bit_tests
|
if: matrix.config.run_64bit_tests
|
||||||
run: |
|
run: |
|
||||||
@@ -206,6 +207,13 @@ jobs:
|
|||||||
make -j2 ARCH=x86-64-modern build
|
make -j2 ARCH=x86-64-modern build
|
||||||
../tests/signature.sh $benchref
|
../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
|
- name: Test x86-64-ssse3 build
|
||||||
if: matrix.config.run_64bit_tests
|
if: matrix.config.run_64bit_tests
|
||||||
run: |
|
run: |
|
||||||
@@ -271,6 +279,6 @@ jobs:
|
|||||||
if: matrix.config.run_64bit_tests
|
if: matrix.config.run_64bit_tests
|
||||||
run: |
|
run: |
|
||||||
make clean
|
make clean
|
||||||
make -j2 ARCH=x86-64-modern build
|
make -j2 ARCH=x86-64-sse41-popcnt build
|
||||||
../tests/perft.sh
|
../tests/perft.sh
|
||||||
../tests/reprosearch.sh
|
../tests/reprosearch.sh
|
||||||
|
|||||||
@@ -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
|
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
|
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
|
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
|
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
|
Detailed compilation instructions for all platforms can be found in our
|
||||||
|
|||||||
+7
-5
@@ -104,7 +104,7 @@ VPATH = syzygy:nnue:nnue/features
|
|||||||
### 2.1. General and architecture defaults
|
### 2.1. General and architecture defaults
|
||||||
|
|
||||||
ifeq ($(ARCH),)
|
ifeq ($(ARCH),)
|
||||||
ARCH = x86-64-modern
|
ARCH = x86-64-avx2
|
||||||
help_skip_sanity = yes
|
help_skip_sanity = yes
|
||||||
endif
|
endif
|
||||||
# explicitly check for the list of supported architectures (as listed with make help),
|
# explicitly check for the list of supported architectures (as listed with make help),
|
||||||
@@ -189,6 +189,8 @@ ifeq ($(findstring -sse41,$(ARCH)),-sse41)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(findstring -modern,$(ARCH)),-modern)
|
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
|
popcnt = yes
|
||||||
sse = yes
|
sse = yes
|
||||||
sse2 = yes
|
sse2 = yes
|
||||||
@@ -781,7 +783,7 @@ help:
|
|||||||
@echo "x86-64-bmi2 > x86 64-bit with bmi2 support"
|
@echo "x86-64-bmi2 > x86 64-bit with bmi2 support"
|
||||||
@echo "x86-64-avx2 > x86 64-bit with avx2 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-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-ssse3 > x86 64-bit with ssse3 support"
|
||||||
@echo "x86-64-sse3-popcnt > x86 64-bit with sse3 and popcnt support"
|
@echo "x86-64-sse3-popcnt > x86 64-bit with sse3 and popcnt support"
|
||||||
@echo "x86-64 > x86 64-bit generic (with sse2 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 "Simple examples. If you don't know what to do, you likely want to run one of: "
|
||||||
@echo ""
|
@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-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 "make -j profile-build ARCH=x86-64 # A portable compile for 64-bit systems "
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Advanced examples, for experienced users: "
|
@echo "Advanced examples, for experienced users: "
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "make -j profile-build ARCH=x86-64-bmi2"
|
@echo "make -j profile-build ARCH=x86-64-avxvnni"
|
||||||
@echo "make -j profile-build ARCH=x86-64-bmi2 COMP=gcc COMPCXX=g++-9.0"
|
@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 "make -j build ARCH=x86-64-ssse3 COMP=clang"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "-------------------------------"
|
@echo "-------------------------------"
|
||||||
|
|||||||
Reference in New Issue
Block a user