Кстати, WinPooh, ты приводил такие данные GreKo 5.3 Athlon X2 4400+ 2.21 GHz perft 6 - 27.03 sec, 4404 knps Я когда собрал под VS 2005 c моими...
Да, кстати, еще условие если кто надумает присоединится. Программа должна работать в 1 поток. Распаралеливать perf - нечестно :)
Если напишешь оптимально, ниже 8000 knps не упадет. Надеюсь, все эти соревнования дадут дополнительный толчок к появлению Greko 6 и WildCat 8 :D
Признаюсь, есть у меня версия, которая 8.10 perft(6) считает на P4-3000 [WildCat =9.45] :) Но уж до ума все доведу и завтра, наверное, выложу с...
Пути работы современных процессоров неисповедимы, сыны мои! :) А если серьезно, то с их кэшами и распаралеливанием и предсказаниями ветвления не...
Я тут смотрю, У тебя Intel Compiler ом скомпилировано. Я этот резерв пока не задействовал.
Мной. Теоритически можно и хэш таблицу построить (Позиция) -> (список ходов) :D На все позиции или хотя бы на первые 5 уровней perft
Hardware: P4 3000Mhz WildCat: depth = 6, nodes = 119060324, time = 9.453 12594 kN / s Против стандартных 13.7 -> 9.453 Результат - хорош. Но...
Для тех кто не читал ветки про генератор ходов. Начало эпопеи, примерно, здесь http://kasparovchess.crestbook.com/viewtopic.php?pid=81455#p81455
Ну вот смотри void f( int v ) { switch( v ) { case 10: g_v = 101; break; case 12: g_v = 102; break; case 1: g_v = 103;...
Нарисовалась отдельная спортивная дисциплина шахматного программирования :D На выходных сделаю, спец версию. Исходники этой спец версии выложить...
Я бы назвал это кастрированными списками :lol: Это вариант може оказаться, кстати, самым выгодным в плане быстродействия.
Ну пока всю свою работу делать OpenSource - не планирую ;) Да и версионный контроль у меня не налажен, Версия без списков - не сохранилась. Но...
Ну добавь стадию партии как размерность в psq-таблице, а стадию - храни в Undo информации для хода. У меня так же есть идея как инкрементально...
Параметр cell_t figure в clearFigure() не обязательный, но с ним оптимизатор лучше работает, так как фигура уже обычно есть в каком либо регистре...
Самое простое - это добавление (естевственно все inline) void setFigure( idx_t idx, cell_t figure ) { FigureList& list =...
У меня списки такие: struct FigureList { int m_count; idx_t m_indexes[10]; }; struct Cell { cell_t m_cell; int m_listIdx; };...
Видимо твой генератор тоже лучше работает на процессорах с коротким конвеером. На моем рабочем компе Pentium 4-3Gz: Shark: 12.20 ProstoTak: 14.53...
Да, следует признать, что в реальных программах, do/undo move срастаются с инкрементальной оценкой позиции. Единственное что остается это сделать...
Интересно, какой perft(6) у Стрелки? Можно было бы добавить такую команду в новую версию движка (если Юрий Осипов читает эту ветку.)