Logo "blaue" Seiten

 
 
 
 
- Anzeige -
Für den Erwerb von Schachartikeln empfiehlt Ihnen der SC Leinzell den
 Schachversand Dreier 
 
 
Testen Sie Ihr Schach!
 
Diagramm 22-2006
 
Diagramm 22 – 2006
In dieser Stellung stellte Weiß seine Dame nach e5 und erwartete von Schwarz die Aufgabe. Dieser spielte aber weiter und zog …
 zur Lösung 
 
 
 
 
zur Startseite
 News | Sitekalender | Sitemap | Team | Kontakt 
Rochade-EuropaPeter Schreiner
 
 
Brutus - Chrilly Donningers neues Projekt
besprochen von Peter Schreiner - April 2002
 
Dr. Christian DonningerDer Österreicher Dr. Christian Donninger - von seinen Freunden und in der Computerschachszene nur Chrilly genannt - gehörte in den letzten Jahren zu den aktivsten und erfolgreichsten Autoren von Schachsoftware. Die spielstarken Programme aus der Nimzo-Serie oder der von ChessBase vertriebene Schweinehund dürften von zahlreichen Lesern der Rochade häufig genutzt werden. Nachdem in der letzten Zeit wenig Neuigkeiten aus der Nimzo-Werkstatt nach außen drangen, trat Chrilly Donninger im Februar 2002 zum ersten Mal mit seinem in Kooperation mit ChessBase entwickelten, brandneuen Projekt Brutus bei einem Turnier auf.
 
Brutus ist im Unterschied zu "normalen" PC-Programmen ein neuartiges, auf optimierter Hardware basierendes Schachprogramm. Dies bedeutet, dass man für den Ablauf des Programms eine spezielle Hardware braucht, die in Form einer Steckkarte in den PC eingebaut wird. Dieses Konzept wurde bereits von der Anfang der Neunziger sehr erfolgreich mit der Chessmachine realisiert. In Anbetracht der sehr schnellen PC-Hardware dürfte es natürlich interessant sein, welche Vorteile solch eine spezialisierte Hardware für ein Schachprogramm gegenüber einem schnellen PC bietet.
 
 
Software versus Hardware-Schachprogramm
Ein wie Brutus auf optimierter Hardware basierendes Programm bietet einige Vorzüge im direkten Vergleich zur konventionellen Lösung. Es kann z.B. deutlich mehr konkretes Schachwissen implementiert werden. In reinen Softwarelösungen wie den PC-Programmen auf einem konventionellen Prozessor werden die Programmbefehle sequentiell abgearbeitet. Das bedeutet vereinfacht: Je mehr Schachwissen ein Programm hat, desto langsamer wird es. Der Programmierer muss also bei jedem Algorithmus genau abwägen, ob das zusätzlich implementierte Wissen nicht auf Kosten der Ausführungsgeschwindigkeit des Programms geht.
 
Dieses Problem stellt sich bei einem Hardware-Programm nicht. Hier können alle Berechnungen parallel durchgeführt werden. In der Praxis bedeutet dies, dass die Programmausführung durch zusätzlich implementiertes Wissen nur unwesentlich verlangsamt wird, was natürlich ganz neue Möglichkeiten für die Implementierung von konkretem Schachwissen bietet. Das konkrete Schachwissen wird bei Hardware-Programmen lediglich durch die vorhandenen Hardware-Ressourcen begrenzt. Genau genommen markiert lediglich der Preis für die zusätzliche Hardware und auch der Entwicklungsaufwand die Grenzen der Entwicklung. Wenn der Preis keine Rolle spielt, kann man mit der heutigen Hardware-Technologie mehr oder minder jedes beliebige Wissen implementieren.
 
Durch die parallele Ausführung aller Befehle benötigt man in Hardware für die Berechnung und Bewertung einer Schachposition (neuen Zug berechnen, Zug ausführen, Bewerten, Zug zurücknehmen) ca. 10 Takte. Auf einem aktuellen Pentium benötigt man je nach Komplexität des Programms zwischen 1000-5000 Takte. Allerdings ist die Taktfrequenz der Schachhardware niedriger. Brutus lief in Paderborn mit 32 MHz. Würde man in einen Schachchip denselben Entwicklungsaufwand wie in einen Pentium stecken (ein paar Milliarden US$), könnte man sicher auch einen reinen 1 GHz Schachchip herstellen.
 
Wo viel Licht, da gibt es natürlich immer auch Schatten. Hardware wird heute mit sogenannten Hardware-Beschreibungssprachen entwickelt. Konkret ist es bei Brutus die Hardware-Sprache Verilog. Verilog sieht auf den ersten Blick wie "C" aus, dennoch ist die Entwicklung eines Schachchips wesentlich komplizierter und aufwendiger als die Programmierung eines Schachprogramms. Der Entwickler muss sich um jede Schaltung, jedes Bit selbst kümmern. Er muss auch sicherstellen, dass die parallele Bearbeitung zum selben Zeitpunkt startet und zum selben Zeitpunkt beendet wird. Spätere Rechenschritte dürfen erst dann gestartet werden, wenn die vorhergehenden Operationen beendet sind.
 
Erschwerend kommt noch hinzu, dass sich der Entwickler mit Phänomenen wie "elektrischem Rauschen", unterschiedlichen Laufzeiten von Signalen (sogenannte "Glitches") herumschlagen muss. Bei einem reinen Software-Programm wurden diese Probleme bereits von den INTEL bzw. AMD Ingenieuren gelöst. Besonders schwierig gestaltet sich für den Entwickler die Implementierung der Suche. Bei reinen "Schachmaschinen" wie Bell, Deep Blue oder jetzt bei Brutus verläuft die Suche einfacher und weniger effektiv als etwa die Suche in Fritz oder anderen Schachprogrammen.
 
Insbesondere haben Hardware-Programme keinen Zugriff auf die Hashtabelle. Eine Hashtabelle ist zwar theoretisch möglich, aus technischen und ökonomischen Gründen wird sie aber nicht verwendet. Die Lösung des Problems ist ein gemischtes System. Die ersten Plies werden in Software gerechnet (inkl. Verwendung von Hashtabellen), die letzten Plies werden durch die spezielle Hardware realisiert. Durch die einfachere Suche verliert ein Hardware-Programm etwas seinen Geschwindigkeitsvorteil, ist aber immer noch deutlich schneller.
 
 
FPGA versus ASIC
Die Schachmaschinen Belle und Deep Blue wurden mit sogenannten ASICs (Application Spezific Integrated Circuits) realisiert. Brutus basiert hingegen auf einer FPGA (Field Programmable Gate Array), einer relativ neuen Entwicklung. FPGAs sind eine Kreuzung zwischen klassischer Hardware (ASIC) und Software. In einem ASIC sind alle Schaltungen fest verdrahtet, man kann daher ein ASIC nicht verändern. FPGAs erfüllen dieselbe Funktionalität wie ASICs, allerdings können sie jederzeit verändert und modifiziert werden.
 
Das ermöglicht dem Entwickler wesentlich mehr Flexibilität, z.B. wäre es in Brutus möglich, nach jedem Zug die Hardware zu verändern (z.B. könnte man beim Übergang ins Endspiel ein spezielles Endspiel-Modul laden). Im Extremfall könnte man in den Brutus-Chip einen MP3-Player laden, während dagegen Deep Blue als MP3-Player vollkommen ungeeignet wäre.
 
Die Vorzüge von FPGAs liegen vor allem darin, dass die Entwicklung einfacher und schneller ist. Der Entwickler kann den Chip neu programmieren und die Auswirkungen direkt auf der Zielhardware testen. Das Programm gewinnt an Flexibilität, da es auch der Fertigstellung weiterentwickelt werden kann. Für den Benutzer besteht kein Unterschied, ob er sich eine neue Fritz oder Brutus Version kauft. In beiden Fällen installiert er das Programm von einer CD bzw. lädt es direkt aus dem Internet herunter. Es könnten auch andere Programmierer für den Schachchip ein Programm implementieren.
 
Ein weiteres Plus ist der günstige Preis. Bei ASICs ist die Herstellung einer sogenannten Maske sehr teuer (mindestens 100.000 US$). In geringen Stückzahlen (z.B. für die Entwicklung) sind FPGAs billiger. Bei FPGAs ist die Grundhardware vorgegeben. Die FPGA wird durch ein sogenanntes Bit-File konfiguriert. Dieses Bit-File ersetzt die ASIC-Maske. Das Bit-File wird mit den Programmier-Tools direkt aus dem Verilog-Code erzeugt. Die Erzeugung eines Bit-Files dauert ein paar Stunden, eine ASCI-Maske benötigt üblicher Weise ein paar Wochen. Nachteilig ist die geringere Geschwindigkeit von FPGAs im direkten Vergleich zu ASICs. Ein ASIC-Brutus würde u.U. mit mehr als 10 Millionen Positionen/Sec laufen.
 
Bei FPGAs sind die Hardware-Ressourcen vorgegeben. Der Entwickler muss daher das Programm diesen Ressourcen anpassen. Bei ASICs werden hingegen die Ressourcen vom Programm vorgegeben. Ein ASICs verwendet Hardware-Ressourcen (Schaltungen), die effektiver als die bei Brutus verwandte Technologie sind. Bei ASICs ist die Herstellung der Maske sehr teurer, die Produktion des Chips aber wesentlich günstiger. Ab ein paar 1000 Stück sind ASICs billiger als die entsprechenden FPGAs.
 
Es ist möglich - und üblich - ein FPGA-Programm in einen ASIC zu konvertieren. Dies ist im Moment das Haupteinsatzgebiet für FPGAs. Der Prototyp wird zuerst auf einer FPGA zum Laufen gebracht und anschließend daraus eine ASIC-Maske hergestellt. Dieser Vorgang beschleunigt die Entwicklung. Außerdem ist die Wahrscheinlichkeit, dass man die ASIC-Maske auf Grund eines Programmierfehlers wegwerfen muss, wesentlich geringer und damit kostensparender. Technisch wäre es daher kein Problem für die Entwickler, einen zukünftigen Brutus V2.0 in einer leistungsfähigeren ASIC-Version zu produzieren. Dagegen sprechen ausschließlich die Kosten, da für eine entsprechende Realisierung bei einer ASIC-Firma um die 100.000 US$ fällig sind.
 
 
Interview mit Chrilly Donninger
Unmittelbar nach dem IPCCC-Turnier führte die RE-Redaktion das nachstehende Interview mit Chrilly Donninger:
 
RE: In der letzten Zeit war es etwas still um Dich geworden. Aus der Nimzo-Werkstatt kam seit längerer Zeit auch nicht Neues. Beim IPCCC-Turnier in Paderborn bist Du mit Deinem Projekt Brutus angetreten. Wieso hast Du Dich für die Bezeichnung Brutus entschieden, nachdem in den vergangenen Jahren der im historischen Kontext wesentlich harmlosere Aron Nimzowitsch als Namenspate Deiner Programme diente?
 
C.D.: Für mich war es nicht still. Ich habe sehr viel gemacht. Zuerst den Schweinehund und nun 1.5 Jahre Brutus. Brutus ist eine Art Forschungsauftrag von ChessBase. Den Namen hat Matthias Wüllenweber gewählt. Der hat ein Faible für das Altertum. Über den historischen Brutus kann man geteilter Meinung sein. Von "die Stadt vom Tyrannen befreien" bis "heimtückischer Attentäter". Die Idee ist: Brutus ist quasi ein Volks-Deep-Blue. Es sollte Cäsar Kasparow entgültig entthronen. Inzwischen ist uns der Kasparow aber eher abhanden gekommen. Außerdem soll mit dem neuen Namen klar signalisiert werden, dass das nicht einfach ein Hardware-Nimzo ist. Habe alles neu gemacht, Brutus spielt auch ganz anders. Ich hätte daher sicher auch ohne ChessBase-Einfluss einen anderen Namen als Nimzo gewählt.
 
RE: Wird die endgültige Fassung von Brutus eine Multi-Prozessor-Version sein. Falls ja, wie viele Chips sollen auf der Steckkarte untergebracht werden?
 
C.D: Momentan habe ich mit einer Single-Version genug zu tun. Eine Multi-Version ist geplant (zumindest ab Version 2). Man kann auf einer Steckkarte zwei Chips unterbringen und sich ohne weiteres zwei Steckkarten einbauen. Vier Chips dürfte eine realistische Obergrenze sein. Mehr dürfte nichts bringen. Die Kommunikation zwischen PC und Karte geht über den PCI Bus. Der PCI-Bus wird bei einer größeren Anzahl von Karten sicher überlastet.
 
RE: Wie bewertest Du den Erstauftritt von Brutus und welche Erkenntnisse für die Weiterentwicklung hat Dir das Turnier in Paderborn gebracht?
 
C.D: Wir waren recht zufrieden: Unsere Ziele waren: Programm läuft stabil, eine schöne Partie und mindestens 50%. Ich habe Brutus in Paderborn das erste Mal spielen gesehen! Bisher hat mir nur Alex gesagt, was ich tun muss. Wir hatten auch bis Ende Januar ein grausliches Hardware-Problem, dass die ganze Entwicklung so gut wie lahmgelegt hat. D.h. richtig feilen für Paderborn konnten wir nur im Februar. Im Bereich Stabilität hat sich das System bewährt. Wir haben die Karte in Paderborn auf den Uni-PC eingebaut. In zwei Minuten ist Brutus auf diesem Rechner gelaufen. In den sieben Spielen trat kein einziges Problem/Bug auf. Deep-Blue vulgo Chip-Test hatte beim ersten Auftritt eine Unzahl von Bugs/Problemen.
 
Unsere schönste Partie war die gegen Diep. Das rein positionelle Bauernopfer mit f6 für aktives Figurenspiel und die konsequente Verwertung davon entsprach genau meinen Erwartungen/Hoffnungen wie Brutus spielen soll. Das war - 10 Jahre Nimzo eingerechnet - die erste Partie, bei der Alex nichts zu meckern hatte. Auch Vincent, der Autor von Diep, war entgegen seinen üblichen Gewohnheiten voll des Lobes.
 
Nachträglich entdeckten wir ein schreckliches Feature: Die Freibauern-Bewertung im Endspiel war viel zu hoch. Das ist Alex bei den Blitz-Testpartien in diesem Umfang nicht aufgefallen. Durch die tiefere Suche hat Brutus aber unglaubliche Mittel und Wege gefunden um sich einen Freibauern zu beschaffen. Die schwächeren Gegner konnten das nicht verhindern (Brutus hat sie ausgerechnet), die besseren (z.B. Shredder) wollten es gar nicht. Der Tausch von 2 Leichtfiguren gegen Turm und 2 Bauern in der Fritz-Partie war zumindest interessant. Die Koordination Türme/Bauern hat aber dann nicht funktioniert. Mit den Türmen auf der e/f Linie wäre die Partie sehr interessant geworden. Zum Schluss hat dann Brutus wieder seine geliebten Freibauern bekommen. Solche Dinge gehören aber zu den typischen Kinderkrankheiten. Genau deswegen sind wir auch nach Paderborn gefahren.
 
Wolfgang Zugrav setzt Brutus momentan für die Fernschach-WM ein. Die Partien sind noch in der Eröffnungs- bzw. frühen Mittelspielphase. Laut Wolfgang schlägt Brutus wesentlich häufiger Züge aus GM-Partien als Fritz oder Nimzo vor. Er hat uns schon gewarnt, dass wir bei der Paderborn-Version nicht zuviel ändern. Bei Nimzo war immer der Tenor: Hau den ganzen Scheiß heraus und mach endlich ein richtiges Schachprogramm.
 
RE: Die heutigen Programme übertreffen die Spielstärke ihre "Geistesväter" deutlich? Versuchst Du alleine, die Schwachstellen zu konkretisieren oder wirst dabei Du von starken Schachspielern unterstützt?
 
C.D.: Ich bin bis jetzt ein reiner Programmiersklave. Zunächst habe ich mit GM Timoschenko zusammen gearbeitet. Ab Herbst 2001 mit Alex Kure. Den FPGA-Code gibt es auch als C-Code am PC. Der PC-Code dient an und für sich zur Verifikation der FPGA. Der C-Code ist relativ sauber geschrieben. Er muss ja nicht schnell, sondern richtig sein. Den versteht Alex. D.h. er kann mir nicht nur sagen, Brutus soll so und so spielen. Inzwischen weiß er schon ganz gut, was man am Code ändern muss, damit dieses Verhalten erzeugt wird. Im Grunde übertrage ich das dann "nur noch" in die FPGA.
 
Alex hat ca. 2200 ELO, ich 1700. Meines Erachtens sind 2200 ELO für ein Schachprogramm genug. Ein 2600 ELO Schachprogramm hat ja nicht das Wissen eines 2600 ELO-Spielers. Das ist ja vereinfacht gesagt eine Mischung von 1500-2000 ELO Wissen und 3000 ELO Taktik. Alexs Input ist sicherlich auch nützlicher als jenes von GM Timoschenko, weil Alex wie beschrieben das Innenleben des Programms gut kennt und auch etwas mehr Erfahrungen mit Programmen hat.
 
Außerdem gilt ja: Je besser man was kann, desto weniger weiß man bewusst, was man tut. GMs tun sich z.B. sehr schwer, konkrete Zahlen für die Bewertung anzugeben. Sie denken einfach nicht in Centi-Bauerneinheiten. GM Timoschenko hat aber eine interessante Methode gefunden, um dieses Problem halbwegs in den Griff zu bekommen. Er hat durch Datenbank-Abfragen Werte gewonnen. Die Methode ist aber relativ aufwendig.
 
Peter Schreiner
 
zum Seitenanfang zurück |