Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / asmfish: Größe der Assembler-Anteile
- - By Benno Hartwig Date 2020-01-16 07:15
Wenn man eine Anwendung (bei im Grunde gleicher Logik) performant machen will, dann lohnt es maist ja nur (oder zumindest: ganz besonders) die 10% im Code oder so anzusehen, in denen 90% der Zeit verbraucht wird.

Wie sieht das hier eigentlich bei asmfish aus?
Es sieht so aus, als sei das Programm komplett in Assembler geschrieben.
Ist das nicht eigentlich Wahnsinn? Das ist doch sicher auch erhebicher Umsetzungsaufwand für Programmteile, die für die Performance kaum oder auch gar keine Bedeutung haben???
Parent - By Thomas Plaschke Date 2020-01-16 08:51
Wenn ich mich recht entsinne ging asmFish aus einem rekompilierten Stockfish hervor. Nach und nach wurden dann die spielrelevanten und die zeitkritischen Teile in Assembler neu geschrieben. Bei der Umsetzung ist der/sind die Programmierer aus meiner Laiensicht sehr strukturiert vorgegangen (Makros etc.) - ganz sicher haben die/hat der schon andere Sachen in Assembler gestemmt! Ob dabei auch alles aus den CPUs geholt wurde, was Bitpfriemler rausholen können, kann ich auch nicht beurteilen.

Viele Grüße
Th. Plaschke
Parent - By Lothar Jung Date 2020-01-16 08:53
Alles in Assembler umzusetzen ist unüblich, zeitaufwendig und nicht effektiv.
Der GCC-Compiler ist sehr effektiv und hat sehr viele Optimierungsmöglichkeiten.
C++ hat Overhead und ist langsamer als optimierter C-Code.
Die SF-C-Engines sind kaum langsamer als die Assemblerpendants und viel besser zu warten und zu verändern/aktualisieren.
Effektiver ist es mit einem Profiler zu arbeiten um die laufzeitkritischen Programmteile zu identifizieren und in C zu optimieren.
Das wird wohl die Suche und die Bewertung betreffen. Im übrigen kann man in C/C++ mit inline Assembly arbeiten, was die Lesbarkeit verbessert.
Lc0 ist in C++ und Python geschrieben. Die m.E. optimale Programmiersprache wäre Julia, die beide Aspekte vereinigt und gerade auf KI ausgerichtet ist.
Parent - By Guenter Stertenbrink Date 2020-01-16 09:09
was heisst rekompiliert ?
Der C++ Code wird Stueck fuer Stueck in Assembler umgesetzt,
mit einigen kleinen Aenderungen (Verbesserungen ?)

m.E. der groesste Vorteil von asmfish ist,
dass er auf Android X86 laeuft und einfacher zu kompilieren ist,
FASM ist mit drin , nur make starten.

asmfish war auch so eine Art, Experiment, Programmieruebung
Parent - By Tom Paul Date 2020-01-16 10:52
Benno Hartwig schrieb:

Wenn man eine Anwendung (bei im Grunde gleicher Logik) performant machen will, dann lohnt es maist ja nur (oder zumindest: ganz besonders) die 10% im Code oder so anzusehen, in denen 90% der Zeit verbraucht wird.

Wie sieht das hier eigentlich bei asmfish aus?
Es sieht so aus, als sei das Programm komplett in Assembler geschrieben.
Ist das nicht eigentlich Wahnsinn? Das ist doch sicher auch erhebicher Umsetzungsaufwand für Programmteile, die für die Performance kaum oder auch gar keine Bedeutung haben???


Je nachdem wer was gemacht hat, dann ist der neue Fisch 30-50% schneller.
Und die meisten Leute machen das Engine Update nur 1 mal im Jahr, wenn eine offizielle Version herauskommt und nehmen davon wenn möglich den schnellsten Fisch.
Außerdem sollte man nicht vergessen, wie viele Leute schon für nur 5% schneller, gleich eine neue CPU angeschafft haben.
Up Topic Hauptforen / CSS-Forum / asmfish: Größe der Assembler-Anteile

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill