mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-06 10:53:50 +08: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:
2
.github/workflows/stockfish_binaries.yml
vendored
2
.github/workflows/stockfish_binaries.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/stockfish_sanitizers.yml
vendored
2
.github/workflows/stockfish_sanitizers.yml
vendored
@@ -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 }}
|
||||
|
||||
14
.github/workflows/stockfish_test.yml
vendored
14
.github/workflows/stockfish_test.yml
vendored
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
12
src/Makefile
12
src/Makefile
@@ -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 "-------------------------------"
|
||||
|
||||
Reference in New Issue
Block a user