Шахматные программы для Linux

Тема в разделе "Машинное отделение", создана пользователем apm, 17 окт 2012.

  1. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    23.05.2006
    Сообщения:
    1.071
    Симпатии:
    32
    Репутация:
    1
    Оффлайн
    я сейчас под MacOs сижу и после этой ОС на винду возвращаться нет желания. (хотя дома есть пара компов с виндой - но они для других задач) так особых проблем с шахматами не вижу. оболочка - chessx, исходники открыты, разработчики откликаются. сделал русский перевод менюшек, добавил вывод tbhits, скомпилировал, пользуюсь. движки - стокфиш, комодо, криттер. стокфиш сам компилирую.
    линукс в этом плане похож на макос - нутро у них похожее, юниксовое. так что проблем в линуксе не должно быть. ))

    не может быть, 32 битный делают вместе с 64. смотрите на сайте разработчиков. так же есть бесплатный комодо-8 - без проблем должен встать.
  2. Gottfrid Учаcтник

    • Участник
    Рег.:
    14.03.2016
    Сообщения:
    1.504
    Симпатии:
    1.864
    Репутация:
    109
    Адрес:
    Москва
    Оффлайн
    Да нет, stockfish изначально не заточен под какую-то определенную разрядность архитектуры.
    С "форка" исходных кодов stockfisha на GitHub'e:
    "Stockfish has support for 32 or 64-bit CPUs, the hardware POPCNT instruction, big-endian machines such as Power PC, and other platforms."

    Другое дело, что в своих бинарных сборках (Development Builds) разработчики предпочитают выкладывать под Linux только 64-битную версию. Видимо считают, что под Linux всё равно все будут собирать из "сырцов" под свою "среду окружения". Для Windows, там же, у них обе бинарные сборки: для 32- и 64-разрядных ОС.
  3. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    23.05.2006
    Сообщения:
    1.071
    Симпатии:
    32
    Репутация:
    1
    Оффлайн
    ага, ничего сложного в компиляции стока нет.
  4. hornet Учаcтник

    • Участник
    Рег.:
    05.11.2016
    Сообщения:
    333
    Симпатии:
    65
    Репутация:
    0
    Оффлайн
    А может кто-нибудь привести в данной теме подробную инструкцию по компиляции стокфиша в линукс из исходников?
  5. Gottfrid Учаcтник

    • Участник
    Рег.:
    14.03.2016
    Сообщения:
    1.504
    Симпатии:
    1.864
    Репутация:
    109
    Адрес:
    Москва
    Оффлайн
    Сборка Stockfish'а изначально "заточена" под программное окружение ОС Linux.
    Там особо никаких дополнительных телодвижений совершать не надо: стандартный Makefile.
    Код:
    > git clone https://github.com/official-stockfish/Stockfish.git
    > cd Stockfish/src
    > make help
         [выводит на экран всю информацию по сборке: описание/параметры/примеры]
    > make build ARCH=x86-64
         [сама сборка (один из вариантов)]
    
    P.S. Гораздо больше настроек/доп.установок необходимо совершить, чтобы собрать Stockfish из исходников под Windows.
    Mustitz и hornet нравится это.
  6. svoitsl Учаcтник

    • Участник
    Рег.:
    05.01.2018
    Сообщения:
    222
    Симпатии:
    49
    Репутация:
    1
    Оффлайн
    Насколько быстрее линуксовый Стокфиш по сравнению с виндовым?
  7. hornet Учаcтник

    • Участник
    Рег.:
    05.11.2016
    Сообщения:
    333
    Симпатии:
    65
    Репутация:
    0
    Оффлайн
    Установил deep fritz 13 на Arco linux через playonlinux. Вроде как активировал. Главное - работает функция подключения к livebook и к облаку оценок позиции движками.
    —- добавлено: 27 янв 2020 —-
    А как выбрать нужную версию стока (например сток 11)?
  8. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.120
    Симпатии:
    544
    Репутация:
    24
    Адрес:
    Киев
    Оффлайн
    Ну... основное преимущество под Linux, что можно сбилдить сборку под ваше железо. Например, указав -march=native или -Ofast и т. д. и т. п. Точнее это сделать легко из коробки, не надо ставить разные компиляторы и т.д. и т. п. Теоретически скорость должна одинакова, но несколько процентов, думаю, можно выиграть сделав сборку под своё железо. Скажем, PGO оптимизация (-fprofile-generate и -fprofile-use) даёт 5–25% прироста производительности.
  9. Gottfrid Учаcтник

    • Участник
    Рег.:
    14.03.2016
    Сообщения:
    1.504
    Симпатии:
    1.864
    Репутация:
    109
    Адрес:
    Москва
    Оффлайн
    Если необходимо это сделать из своего локального git-репозитория Stockfish'а, то при помощи меток (tags), которыми помечаются все релизы в официальном репозитории проекта:
    Код:
    > cd Stockfish/
    > git tag
       [метки (релизы Stockfish'a)]
       ...
       sf_11
       sf_10
       sf_9
       ...
    > git checkout sf_11
       [ваш локальная рабочая версия теперь содержит исходники релиза Stockfish 11] 
       [собираем его так же, как было описано выше]
    > cd src/
    > make build ...
    
    Второй вариант: скачать вручную архив исходников конкретной необходимой Вам версии, распаковать и также произвести сборку по стандартному сценарию. Архивы исходников для конкретной версии можно найти здесь или здесь.
    hornet нравится это.
  10. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.210
    Симпатии:
    2.520
    Репутация:
    90
    Адрес:
    Москва
    Оффлайн
    А под Windows с помощью gcc/MinGW такую оптимизацию произвести возможно?
  11. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.120
    Симпатии:
    544
    Репутация:
    24
    Адрес:
    Киев
    Оффлайн
    Думаю возможно. clang должен быть даже круче. Wiki говорит (https://ru.wikipedia.org/wiki/Profile-guided_optimization), что даже Visual C++ может такое.
  12. hornet Учаcтник

    • Участник
    Рег.:
    05.11.2016
    Сообщения:
    333
    Симпатии:
    65
    Репутация:
    0
    Оффлайн
    А можно пример поподробнее?
  13. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.120
    Симпатии:
    544
    Репутация:
    24
    Адрес:
    Киев
    Оффлайн
    Код:
    $ git clone https://github.com/official-stockfish/Stockfish.git
    Cloning into 'Stockfish'...
    remote: Enumerating objects: 25313, done.
    remote: Total 25313 (delta 0), reused 0 (delta 0), pack-reused 25313
    Receiving objects: 100% (25313/25313), 11.20 MiB | 5.59 MiB/s, done.
    Resolving deltas: 100% (19281/19281), done.
    $ cd Stockfish/src/
    $ make help
    
    To compile stockfish, type:
    
    make target ARCH=arch [COMP=compiler] [COMPCXX=cxx]
    
    Supported targets:
    
    build                   > Standard build
    profile-build           > PGO build
    strip                   > Strip executable
    install                 > Install executable
    clean                   > Clean up
    
    Supported archs:
    
    x86-64-bmi2             > x86 64-bit with pext support (also enables SSE4)
    x86-64-modern           > x86 64-bit with popcnt support (also enables SSE3)
    x86-64                  > x86 64-bit generic
    x86-32                  > x86 32-bit (also enables SSE)
    x86-32-old              > x86 32-bit fall back for old hardware
    ppc-64                  > PPC 64-bit
    ppc-32                  > PPC 32-bit
    armv7                   > ARMv7 32-bit
    general-64              > unspecified 64-bit
    general-32              > unspecified 32-bit
    
    Supported compilers:
    
    gcc                     > Gnu compiler (default)
    mingw                   > Gnu compiler with MinGW under Windows
    clang                   > LLVM Clang compiler
    icc                     > Intel compiler
    
    Simple examples. If you don't know what to do, you likely want to run:
    
    make build ARCH=x86-64    (This is for 64-bit systems)
    make build ARCH=x86-32    (This is for 32-bit systems)
    
    Advanced examples, for experienced users:
    
    make build ARCH=x86-64 COMP=clang
    make profile-build ARCH=x86-64-bmi2 COMP=gcc COMPCXX=g++-4.8
    
    $ CXXFLAGS='-march=native' make build ARCH=x86-64-bmi2 COMP=gcc
    
    Config:
    debug: 'no'
    sanitize: 'no'
    optimize: 'yes'
    arch: 'x86_64'
    bits: '64'
    kernel: 'Linux'
    os: 'GNU/Linux'
    prefetch: 'yes'
    popcnt: 'yes'
    sse: 'yes'
    pext: 'yes'
    
    Flags:
    CXX: g++
    CXXFLAGS: -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto
    LDFLAGS:  -m64 -Wl,--no-as-needed -lpthread -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto
    
    Testing config sanity. If this fails, try 'make help' ...
    
    make ARCH=x86-64-bmi2 COMP=gcc all
    make[1]: Entering directory '/home/avs/sandbox/Stockfish/src'
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o benchmark.o benchmark.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o bitbase.o bitbase.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o bitboard.o bitboard.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o endgame.o endgame.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o evaluate.o evaluate.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o main.o main.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o material.o material.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o misc.o misc.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o movegen.o movegen.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o movepick.o movepick.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o pawns.o pawns.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o position.o position.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o psqt.o psqt.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o search.o search.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o thread.o thread.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o timeman.o timeman.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o tt.o tt.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o uci.o uci.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o ucioption.o ucioption.cpp
    g++ -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto   -c -o syzygy/tbprobe.o syzygy/tbprobe.cpp
    g++ -o stockfish benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o material.o misc.o movegen.o movepick.o pawns.o position.o psqt.o search.o thread.o timeman.o tt.o uci.o ucioption.o syzygy/tbprobe.o  -m64 -Wl,--no-as-needed -lpthread -march=native -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto -Wall -Wcast-qual -fno-exceptions -std=c++11  -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -msse4 -mbmi2 -flto
    make[1]: Leaving directory '/home/avs/sandbox/Stockfish/src'
    
    hornet нравится это.
  14. hornet Учаcтник

    • Участник
    Рег.:
    05.11.2016
    Сообщения:
    333
    Симпатии:
    65
    Репутация:
    0
    Оффлайн
    Как я понял в данном примере Вы добавили в командной строке

    .
    Поясните, пожалуйста, что значит " CXXFLAGS='-march=native' " и "COMP=gcc". Да и как определить нужен bmi, popcnt и т.д. ? Я вроде читал не раз про это, но так и не понял. У меня intelcore i3 два ядра, четыре потока.
  15. eastorwest Начинающий

    • Начинающий
    Рег.:
    25.04.2015
    Сообщения:
    6
    Симпатии:
    7
    Репутация:
    1
    Оффлайн
    POPCNT, BMI - это наборы инструкций процессора. Их наличие для Stockfish позволяет ускорить вычисление оценки позиции.
    Поддерживаются ли эти инструкции, зависит от точной модели процессора вашего компьютера/ноутбука.
    Недостаточно знать
    Нужна полная модель, например, Intel Core i3-3240 @ 3.20 GHz

    Процессоры различаются внутренними архитектурами.
    Sandy и Ivy Bridge поддерживают POPCNT
    Haswell и более новые (Broadwell, Sky Lake, Kaby Lake, Coffee Lake) поддерживают BMI.

    Посмотреть, какие инструкции поддерживает ваш процессор в Windows можно через CPU-Z. Ссылка на установочный файл https://www.cpuid.com/downloads/cpu-z/cpu-z_1.91-en.exe
    Поле "Instructions"
    SSE4.2 - это POPCNT
    FMA3 - это BMI
    Быстрее других работает версия Stockfish с наличием BMI. Название "stockfish-...-bmi2"
    Немного медленнее, чем BMI, с наличием POPCNT. Название "stockfish-...-modern"
    Без этих инструкций также работает, но медленнее. Название "stockfish-..."
    64-разрядные версии (в названии "x64") быстрее, чем 32-разрядная ("32 bit").
    hornet нравится это.
  16. hornet Учаcтник

    • Участник
    Рег.:
    05.11.2016
    Сообщения:
    333
    Симпатии:
    65
    Репутация:
    0
    Оффлайн
    upload_2020-4-1_20-19-18.png
  17. eastorwest Начинающий

    • Начинающий
    Рег.:
    25.04.2015
    Сообщения:
    6
    Симпатии:
    7
    Репутация:
    1
    Оффлайн
    Скриншот имеет большой объем для форума (особенно при просмотре на телефоне). Можно было текстом набрать
    Процессор Intel Core i3-4150 @ 3.50GHz
    Открываю CPU-Z и вижу

    [​IMG]

    Поддерживает POPCNT и BMI.
    Используйте наиболее быструю версию с BMI.
    hornet нравится это.
  18. hornet Учаcтник

    • Участник
    Рег.:
    05.11.2016
    Сообщения:
    333
    Симпатии:
    65
    Репутация:
    0
    Оффлайн
    Благодарю!:good:

Поделиться этой страницей