БлогNot. Lc0 - как установить и настроить чудо-движок на обычной персоналке?..

Lc0 - как установить и настроить чудо-движок на обычной персоналке?..

Времена, когда среди шахматных движков доминировал "Стокфиш", заканчиваются, новый движок Leela Chess Zero, он же Lc0 (Вики), основанный на идеях AlphaZero, стал побеждать "Вяленого" регулярно.

Решил и я посмотреть это чудо, применяя всё ту же старую добрую "Арену" в качестве оболочки (описано по первой ссылке).

Скачать последнюю версию можно вот отсюда, обычные архивы .zip

Правда, сразу же вызывают вопрос загадочные суффиксы blas, cuda, opencl в названиях сборок.

Они означают просто тип видеокарты, которой движок будет активно пользоваться для расчётов, вот вольный перевод инфы из официального блога:

Теперь двоичный файл называется Lc0. Он использует 3 бэкэнда, CUDA, BLAS и opencl.

CUDA является самым быстрым из всех с большой разницей, и он предназначен для графических процессоров Nvidia, которые поддерживают библиотеки CUDA и cuDNN.

OpenCL предназначен для графических процессоров, которые не поддерживают CUDA, например, AMD.

BLAS преназначен для запуска Lc0 не с графическим процессором, а с основным процессором. Это НАМНОГО медленнее.

Я скачал CUDA, так как у меня Nvidia, и распаковал в папку движков "Арены":

распаковка Lc0 в папку движков "Арены", скриншот окна WinRAR
распаковка Lc0 в папку движков "Арены", скриншот окна WinRAR

Похоже, если у Вас Win32, а не Win64, то опаньки... какие-то сборки работают и с Win32, но где их искать?

Говорят, вот тут, но тоже не работает из-под "Арены" на Win32 - сам движок из консоли Win32 отвечает, но в оболочке (BLAS) просто бесконечно думает над первым ходом (или первым не из дебютной книги)

Затем берём для Лилы нейросетку вот отсюда.

Выбор конкретной сетки - тема для отдельного холивара, реально можно брать любую из последних с ELO, начинающимся на 32XX, я для начала скачал номер 42534. Внутри архива будет один-единственный файл с расширением .pb, извлекаем его туда же, куда развернули движок (в моём случае - папка C:\Arena\Engines\Lc0).

Итак, просто кладём файл сети в папку с движком. Пишут, что без файла сети программа не запустится, и желательно иметь только один файл сети *.pb в папке движка, чтобы не путаться.

Далее устанавливаем Lc0 из Арены как обычный движок UCI, то есть, запускаем Arena.exe, в программе жмём F11 (Менеджер движков), в окне менеджера выбираем вкладку Детали (Details), жмём кнопку Мастер установки (Installation wizard), кнопка Вперёд (Forward), показываем на папку движка, опять Вперёд, выбираем и отмечаем "галочкой" файл lc0.exe, потом пару раз опять жмём кнопку Вперёд, правильно выбираем тип движка UCI и, наконец, тыкаем "Применить".

Первый запуск обычно более долгий из-за оптимизации под систему.

Пусть сыграют чуток с установленным следом Стокфишем 10, нажимаю F9 (окно Турнира), кнопку Новый, называю турнир в окне диалога, кнопочкой с треугольником влево добавляю в "Участники" нужные движки, кнопкой "Уровень" ставлю блиц по 5 минут:

Настройки простейшего турнира в "Арене"
Настройки простейшего турнира в "Арене"

Жмём "Старт"... и Lc0 падает сразу на выходе из дебютной книги (обоим движкам подключил в настройках стандартную книгу "Арены"), хотя железо, вроде, не самое худшее.

Как проверять Leela Chess Zero: как и другие UCI-движки.

Запустить файл lc0.exe, ввести в консоли

uci

[Enter] и посмотреть, что пишет. Если состояние нормальное, введите команду

go infinite

[Enter]. Если начнет считать - значит, проблем нет, и оболочка также должна работать с движком.

Похоже, моей видеопамяти ему таки мало, для нормальной работы нужно хотя бы 1.5-2 Гб видеопамяти или больше.

Переустановив движок на версию сначала OpenCL, а потом blas, добился лишь того, что движок стал все пять минут думать над первым ходом :)

На blas он задействовал при этом более 500 Мб оперативки.

В итоге, догадался взять сеть "поменьше", с номером на 36XXX из того же списка, учтите только, что старые архивы выложены криво, как файлы без расширения, но открыть их WinRAR-ом можно всё равно.

После этого турнир с 10-м "Стокфишем" из 4 партий по 5 минут + 3 секунды заработал, правда, в первой же партии "Лила" получила мат и вообще проиграла матч 0:4 :)

Комп, на котором проверял, имеет такую конфигурацию:

Intel Core i5 3,2 Ггц 4 ядра 16 Гб оперативки

Видеокарта NVidia 512 Мб видеопамяти

В общем, пишут, что без мощной видеокарты добиться победы над "Вяленым" нереально.

Зато при некоторых конфигурациях реально получить настоящего электронного тролля.

Сеть для "Лилы" 32 особенно склонна к троллингу, хотя никто её специально на это не программировал.

Итак, Lc0 здесь:

  • отдала ладью,
  • поставила ферзя,
  • отдала ферзя,
  • поставила коня,
  • отдала коня,
  • поставила ладью,
  • отдала слона,
  • затем одной ладьей матовала до истечения правила 50 ходов :)

Смотреть примерно с сотого хода.

P.S. Для просмотра партии подгружается плеер ChessTempo с внешнего ресурса.


теги: ошибка софт шахматы железо

11.06.2019, 18:39; рейтинг: 606