Brutus -

hardwarový šachista pro normální uživatele

23. 4. 2002


Snad každý šachista si už zahrál s elektronickým soupeřem, ať už ve formě softwaru nebo specializovaného přístroje. Software se dodává pro nejrůznější platformy – vedle PC jsou dnes velkou módou verze pro Palmy a PocketPC. Specializované přístroje existují jak ve stolním provedení s elektronikou zabudovanou v šachovnici, tak ve verzích cestovních ve tvaru kapesních šachů kombinovaných s „kalkulačkou“. V každém případě jde ale o „softwarového“ soupeře. S „hardwarovým“ šachistou se zatím setkalo jen pár vyvolených, což se možná brzy změní.


1. Princip elektronického šachisty

Jádrem každého elektronického šachisty je generátor tahů a oceňovací funkce. Nad těmito základními kameny je vybudován hledací algoritmus.
Generátor tahů postupně vytváří větve stromu variant, na jejichž konci se aplikuje oceňovací funkce. Zpětným minimaxovým postupem potom najde počítač větev s nejlepším hodnocením.
Skutečný hledací algoritmus je složitější. Chytrými matematickými postupy i šachovými heuristikami se strom co nejvíc redukuje (alfa-beta algoritmus, selektivní algoritmus, forward pruning, nultahový algoritmus). Jinými chytrými postupy se ale také zjišťuje, zda daná větev skutečně končí ustáleným stavem, jinak je její propočet prohlouben (singular extension).

2. Rychlost propočtu

Generátor tahů a oceňovací funkce běží většinu času šachového programu a rozhodují proto do značné míry o jeho rychlosti.
V kursech programování je generátor tahů oblíbenou ukázkou práce s dvourozměrným polem a výpočetními cykly. Skutečný profesionální generátor vyladěný k dokonalosti však obvykle vypadá úplně jinak. Šachovnice je sada bitových polí pro každý kámen zvlášť (BitBoard), se kterými lze bleskurychle provádět bitové operace, zejména na 64 bitových CPU. Také tahy kamenů se nepočítají matematicky, ale přímo čtou z předem připravených bitových tabulek pro každý kámen a pole.
Klíčovou součástí je oceňovací funkce, která zhodnotí číslem statické vlastnosti pozice. Při výpočtu se obvykle vyjde ze stavu materiálu, který je korigován kladnými i zápornými opravami za volné dráhy a sloupce, centrum, volné pěšce, dvojpěšce, bezpečnost krále a mnohé další.
Každá taková oprava znamená přirozeně prodloužení výpočtu a z této pasti nemá „softwarový“ šachista úniku. Nové a nové verze dnešních špičkových programů jsou víceméně hledáním a dolaďováním kompromisu mezi rychlostí propočtu na jedné straně a zabudovanými šachovými znalostmi na straně druhé.
Fritz dlouho vynikal především propočtem a jeho rychlostní optimalizace vyvrcholila verzí 5.32, označovanou jako taktické monstrum. Šestka a sedmička však mírně zpomaluje a na oplátku se stává šachově inteligentnější.

3. Princip a výhody hardwarového šachisty

U „hardwarového“ šachisty nejsou tahy a oceňovací funkce generovány sekvenčním softwarovým propočtem, ale složitým jednoúčelově navrženým kombinačním obvodem.

šachová pozice > kombinační obvod > generované tahy

šachová pozice > kombinační obvod 1 > část oceňovací funkce 1 > oceňovací funkce
                       > kombinační obvod 2 > část oceňovací funkce 2 >
                       > kombinační obvod n > část oceňovací funkce n >

Průchod elektrického signálu kombinačním obvodem je velmi rychlý (v řádu nanosekund), což samo o sobě znamená značnou výhodu proti softwarovému řešení. Naprosto klíčovou předností je ovšem možnost libovolně rozšiřovat oceňovací funkci. Tím sice roste složitost, velikost a cena kombinačního čipu, samotné oceňování však probíhá paralelními větvemi a jeho rychlost se proto prakticky nemění.

4. Hardwarové šachové stroje

Průkopníkem „hardwarového“ šachového stroje je legendární Ken Thompson. V roce 1960 se Ken podílel na vývoji Unixu a jazyka C. O deset let později postavil speciální stroj Belle, který k velkému překvapení vyhrál mistrovství světa 1980 před sálovými superpočítači. Ken toto zařízení dále nevyvíjel, ale pro šachy udělal mnoho dalších užitečných věcí. Jako první dal počátkem devadesátých let řadovému uživateli databázi důležitých pětikamenových konstelací na čtyřech CD s dokonalým řešením každé pozice. Na přelomu století zopakoval tento výkon i se šesti kameny, dotazovací server je umístěn na webu.
Druhou hardwarovou legendou je DeepBlue, který vyvinul u IBM Feng-hsiung Hsu. V roce 1989 získal titul mistra světa, ale vyvrcholením kariéry je nepochybně vítězství v regulérním zápase s Kasparovem v roce 1997.

5. Peníze, peníze

V té době jsme tajně doufali, že IBM využije svých možností a nabídne malou verzi DeepBlue jako zásuvnou desku do našich PC. Bohužel manažment modrého giganta považoval celou věc za ukončenou a projekt prostě zastavil. Snad měl dokonce pravdu – vynaložené prostředky se IBM vrátily úžasnou mediální odezvou zápasu a technické využití nebylo ekonomicky až tak zajímavé.
Hsu se pokusil o další soukromý vývoj, ale narazil na nezájem sponzorů a šachové aktivity ukončil. Samotní budoucí uživatelé by projekt prostě nezaplatili.
Ekonomicko-technická rozvaha nepostrádá zajímavosti. Kombinační šachové logické obvody byly realizovány koncepcí jednoúčelových speciálně vyrobených čipů ASIC (Application Specific Integrated Circuit). Statisíce tranzistorů a jejich propojení není možné navrhnout ručně. Pro popis logických funkcí se použije speciální popisný jazyk HDL (Hardware Description Language), například Verilog nebo VHDL. Ten vygeneruje příslušné masky, které se pošlou to továrny. Čipy se musí vyrobit, zapouzdřit, osadit a testovat. Každá vážnější chyba nebo změna vede k novému cyklu vývoj – masky – továrna – testování. Jde o špičkovou technologii, kterou si každý nechá dobře zaplatit. Jeden cyklus proto trvá 2-3 týdny a stojí kolem 100.000 US dolarů, celý vývoj odhadl Hsu na 2 milióny.

6. Do hry vstupuje ChessBase

Vedle šachového programování sponzorovaného jako věda nebo reklama existuje také šachové programování komerční. Vedoucí postavení má hamburská firma ChessBase, jejímž duchovním otcem je velký nadšenec počítačového šachu Frederic Friedel. ChessBase si vypracovala takovou pozici, že je ve svém oboru srovnávána s Microsoftem.
Byl to zase Ken Thompson, kdo upozornil Friedla na možnost použít pro vývoj hardwarového šachisty novou generaci čipů typu FPGA (Field Programmable Gate Array). FPGA jsou také uživatelsky navržené kombinační obvody, ale ve srovnání s ASIC mají asi takovou výhodu, jako přepisovatelné CD proti lisovanému. Nemusí se posílat do výroby, nýbrž se programují přímo ve vývojovém nástroji a hlavně lze obsah mnohokrát měnit. Tím se celý vývoj urychlí a zlevní o několik řádů. Začátkem roku 2000 dosáhly čipy FPGA dostačující kapacity při rozumné ceně.

7. ..a Dr. Donninger

Samotný Thompson však právě odchází ze slavných Bellových laboratoří na odpočinek, kde se hodlá věnovat letecké pilotáži a instruktáži. Proto byla realizace projektu nabídnuta Dr. „Chrilly“ Donningerovi. Ten je znám svým špičkovým šachovým programem Nimzo, ale také vynikajícími populárně-naučnými články z oboru. Veškerou činnost koření bodrým rakouským humorem, například jeho poslední multimediální šachový program se jmenuje Schweinehund.
ChessBase zaplatila výlet do USA, kde si Chrilly zalétal Kenovou cessnou, pak ale začala velmi tvrdá práce.

8. Brutus

Celý projekt byl pojmenován Brutus a vedle Donningera v něm účinkuje několik dalších odborníků. Chrilly například nechtěl vyrobit jen další verzi Nimza, proto si nechal oceňovací funkci na logické úrovni navrhnout od Ernsta Heinze (program Dark Thought) a velmistra Timoščenka. Při testování a ladění zase spolupracuje starý člen Nimzo týmu Alex Kure.
Donninger sám se soustředil na hardwarový čip a jeho programování. Při testování se ukázala zajímavá věc, že totiž s počtem komponent oceňovací funkce roste význam jejich vah. Pro zajímavost – DeepBlue měl více než 8000 komponent.
Vhodným časováním kombinačních obvodů lze dosáhnout i sekvenčních funkcí. Donninger proto zabudoval do hardwarové části jednoduchý hledací algoritmus do hloubky tří polotahů. Podle jeho vyjádření však šlo doslova o kulturní šok, při kterém musel zapomenout vše, co se posledních dvacet let o programování naučil. Tato hloubka by samozřejmě nestačila, proto je předřazeno softwarové prohledávání se všemi známými jemnostmi jako jsou hash tabulky nebo přístup k tablebasím koncovek. Podobně fungoval i DeepBlue.

9. Paderborn

Celý projekt měl několik krizí, ta poslední se například týkala náhodných vnitřních restartů šachové karty Alpha Data, způsobených elektrickým rušením v PC. U Donningera na poskládaném Nonamu se závada neprojevila, zato u Kura na Dellu velmi často. Nakonec přece jen stihli s odřenýma ušima koncem února 2002 start na Paderbornu – neoficiálním otevřeném přeboru Německa v počítačovém šachu. Brutus sehrál už velmi slušné partie, i když optimisté čekali lepší výsledek než 50 procent bodů.

10. Je rychlost dostatečná?

Mě spíš zarazil v materiálech z Paderbornu údaj o rychlosti. Na PC s Pentiem4 1.7 GHz dosahoval Brutus 2-3 milióny pozic za sekundu, což není až tak velký náskok před softwarovým DeepFritzem na dual AMD 1900+, který propočítal 1,6 miliónu pozic.
Autor k tomu na specializovaném diskusním fóru uvádí zhruba toto.
Frekvence není u FPGA pevná, ale stanoví se délkou nejdelšího průchodu signálu kombinačním obvodem. Na jedno logické hradlo se počítá 1 ns. Náš čip byl taktován bez optimalizace na 33 MHz. FPGA čipy se ovšem – stejně jako procesory – vyvíjejí. Každým rokem se jejich kapacita zhruba zdvojnásobí při růstu rychlosti. Dnešní FPGA by mohl běžet nejméně na 45 MHz.
Brutus je navíc navržen tak, aby čipy mohly pracovat paralelně. Zdvojení čipu je jedním z nejbližších úkolů.
Po dosažení určitého stavu vývoje, vhodného například pro prodej, nebude problém využít hotový stav a nechat podle něj „vypálit“ čipy ACIS. Ty mohou podle Intelu běžet až 30x rychleji.

11. Perspektivy

DeepBlue byl vyvíjen 10 let a v některých fázích na něm pracovalo až 40 lidí. Tolik času ani peněz ChessBase nemá, směje se Donninger. Už na mistrovství světa v červnu 2002 v Maastrichtu bychom chtěli ukázat jasný pokrok a krajní mezí pro úspěšnost celého projektu „malého lidového DeepBlue do vašeho PC“ bude další mistrovství v listopadu 2003 v Grazu.
Donninger navíc prozradil, že podle smlouvy s ChessBasí dostane slušnou prémii, pokud dosáhne ELA o 50 bodů vyššího než nejlepší programy na duálním systému. Nechme se tedy překvapit a držme palce.

12. Odkazy

Prohlédněte si fotky zařízení na http://www.chessbase.com/newsdetail.asp?newsid=221 .
Přečtěte si Sperchstunde s Donningerem na
http://www.computerschach.de/sprechstunde/index.htm
Alpha Data - výrobce hardwaru