stegemma

Risposte al Forum Create

Stai vedendo 15 articoli - dal 1 a 15 (di 533 totali)
  • Autore
    Articoli
  • in risposta a: Hyper-V o non Hyper-V #12186
    stegemma
    stegemma
    Moderatore

    Non ho più fatto nulla con Hyper-V e sto lavorando con 3 PC fisici: Windows, Mac e Linux. Prima o poi farò qualche prova.

    in risposta a: Sabrina steps #12185
    stegemma
    stegemma
    Moderatore

    Come scritto in chat: lo sviluppo di Sabrina (ex Satana) si ferma qui. Il motore ha prestazioni scadenti e più lo tocco più peggiora! Avevo già iniziato il nuovo generatore in assembly e ripartirò da quello, per un programma degno successore di Drago/Raffaela e Freccia.

    La parte C++ di Sabrina resterà, come “anima” alternativa al motore da combattimento che uscirà dallo sviluppo in assembly e, soprattutto, come interfaccia ormai collaudata. Anche la parte genetica può essere mantenuta, così che non debba riscrivere tutto ma solo il generatore e la funzione di valutazione. Saccheggerò pesantemente i sorgenti di Sabrina, per quanto riguarda TT e libro delle aperture ma non prenderò quasi nulla da Drago/Raffaela/Freccia, perché pensati ormai da 25 anni fa in poi… con una mentalità ad 8/16 bit.

    In teoria, il motore in assembly dovrebbe essere compilabile anche sotto Linux/OSX ma questo è al momento secondario. L’obiettivo è di partecipare all’IGT con un motore veramente competitivo, da almeno 2000 ELO!

    in risposta a: Sabrina steps #12182
    stegemma
    stegemma
    Moderatore

    Ed ora ho lanciato una sessione “continua” di Learning genetico sulla macchina Linux Ubuntu, che giaceva dormiente sotto la mia scrivania. Non la fermerò e ogni tanto preleverò il log delle generazioni, per estrarre e verificare l’individuo più forte.

    Riusciranno i nostri eroi ad ottenere (finalmente) dei parametri ottimizzati per Sabrina?

    in risposta a: Sabrina steps #12181
    stegemma
    stegemma
    Moderatore

    L’aggiornamento 3.1.27 ora è disponibile:

    Sabrina 3.1.27 Windows/Mac/Linux

    Tra le varie correzioni, ora dovrebbe mostrare la PV in WinBoard e segnalare “matto in” come da protocollo XBoard. Ho anche cambiato un parametro nella valutazione e riscritte alcune funzioni di base.

    Forse è un po’ più forte delle versioni precedenti ma non ne sono ancora del tutto sicuro, perché non ho fatto molte prove. Lo stile comunque è sempre lo stesso… ed ha ancora il difetto dell’uscita prematura del Re.

    in risposta a: Sabrina steps #12180
    stegemma
    stegemma
    Moderatore

    A 10 secondi, va benissimo:

    
       Engine       Score          Sa
    1: Sabrina Work 19,0/30 ·········· 
    2: Pentagon_12  5,0/10  100=10=101 
    2: LarsenVB     5,0/10  ==00110101 
    4: Piranha      1,0/10  00000000==
    
    in risposta a: Sabrina steps #12179
    stegemma
    stegemma
    Moderatore

    Un altro piccolo passo avanti, con partite da 3m+100ms:

    
       Engine       Score     Sa
    1: Sabrina Work 3,0/5  ····· 
    2: LarsenVB     2,0/5  =0=01
    

    Sto ottimizzando la funzione di valutazione, riscrivendo le parti meno efficienti, soprattutto per quanto riguarda il riconoscimento dei pedoni passati e doppiati, che era piuttosto aleatorio.

    in risposta a: Perft #12170
    stegemma
    stegemma
    Moderatore

    Sabrina accetta i comandi in stile x/winBoard:

    perft 6

    ma anche:

    divide 6

    in risposta a: Perft #12167
    stegemma
    stegemma
    Moderatore

    Accetto anch’io!

    Facciamo una bella tabellina con posizione/ply/motore/perft/tempo?

    in risposta a: Perft #12161
    stegemma
    stegemma
    Moderatore

    Con l’opzione “-flto” si guadagna circa un 10% di velocità. Disabilitando le funzioni “intrinsic” sulla macchina Windows, si passa da 2,318s a 3,189s ma non ho provato ad abilitarle su Linux/Mac.

    Non mi sembra comunque che ci siano altre opzioni di ottimizzazione, per g++, che valga la pena provare.

    in risposta a: Perft #12159
    stegemma
    stegemma
    Moderatore

    Sia sul Mac che sulla macchina Linux, il perft di Sabrina risulta essere molto più lento che sul PC. Credo che sia dovuto al compilatore g++ e che quello MS ottimizzi molto meglio… oppure sono io che sbaglio qualcosa. Ho impostato -O3 come ottimizzazione ma il perft 6 alla radice richiede 6,170 secondi su Ubuntu contro i circa 2,7 su Windows. La macchina Linux gira a 3.20 GHz (Intel E6700) mentre quella Windows è il “mostro” i7-4790K a 4 GHz ma il solo clock non giustifica la differenza.

    Comunque sono quasi pronto per rilasciare Sabrina Windows/Mac/Linux.

    in risposta a: Usare GIT #12156
    stegemma
    stegemma
    Moderatore

    PS: questo mi fa pensare che potrie sostituire la mia clsString con std::string, creando un branch dedicato in GIT. Siccome la uso come il pane… mi conviene lavorare sul branch in un altro PC o “swappare” da questo al master e viceversa?

    in risposta a: Usare GIT #12155
    stegemma
    stegemma
    Moderatore

    Le librerie Qt le vedo più per l’interfaccia. Gli elementi relativi alle strutture dati è meglio usarli nella versione standard, che usare quelli proprietari dei vari framework. Il Borland C++ Builder ha delle classi simili alle collection ma non le ho mai usate, preferendo le mie. Mi sono anche riscritto una mia classe stringa, quando le STL non erano ancora sufficientemente diffuse. Ho verificato che le std::string sono molto più veloci della mia classe, per cui usare gli standard pare essere molto vantaggioso, in questi casi:

    run-time test...
    32 38890
    #10000: 0.001s 5000000 std::string /sec
    24 38890
    #10000: 0.034s 285714 clsString /sec
    

    Bisogna assolutamente tenersi aggiornati, altriemni il proprio codice diventa rapidamente obsoleto, così come la metodologia di lavoro (GIT insegna).

    in risposta a: Usare GIT #12153
    stegemma
    stegemma
    Moderatore

    Grazie Marco, in effetti non ho ancora approfondito l’uso multi-progetto di git ma la necessità di fare patch al ramo master ce l’ho da tempo, ed ho sempre risolto rilasciando “al volo” le nuove release, con gli effetti collaterali che ti puoi immaginare. Sto migrando tutto da BC++ a C++ standard ma ci vuole tempo, è un lavoro che ho iniziato letteralmente anni fa! Nella versione C++ standard portabile userò GIT, il resto lo voglio abbandonare all’oblio, nel Valhalla dei programmi obsoleti.

    in risposta a: Usare GIT #12149
    stegemma
    stegemma
    Moderatore

    Ottimi consigli, non sono ancora arrivato a due o più rami (branch) distinti; potrebbero servire più per Millesimo, che per Sabrina. Il motore infatti è piuttosto “monolitico”, visto che il cuore è nella classe clsEngine; sarebbe comunque un’operazione molto manuale, fondere più rami.

    Come repository, ho preso un server economico su Aruba: con circa 2 euro al mese ho una macchina “mia” con 20 Gb di spazio disco. Caricare i miei sorgenti sul server di altri non mi piacerebbe molto (che poi, sarebbero comunque protetti dal fatto che… li capisco solo io!).

    in risposta a: I miei errori #12141
    stegemma
    stegemma
    Moderatore

    Non era questo il baco che avevo visto io ma grazie per avermelo segnalato! Questo baco che mi hai fatto notare, potrebbe effettivamente fare grossi danni, soprattutto nei finali.

    Quello che avevo trovato io era più “da dilettanti”: l’inizializzazione di pbits va spostata all’interno del primo ciclo for, altrimenti dal secondo colore si prosegue oltre la fine delle bitboard.

    PS: in realtà ho verificato che il baco sul colore di chi ha la mossa non c’era, perché uso il valore “statico” calcolato sulla posizione adeguandolo agli altri parametri significativi (forse anche troppo), in questo modo:

    
    return bits.boHash ^ bits.boAllPieces ^ (bits.boEnpPawn - bits.boCastlings) ^ zobcol;
    

    zobcol sono due valori random (fissi) dipendenti dal colore.

Stai vedendo 15 articoli - dal 1 a 15 (di 533 totali)
© 2018 G 6 Tutti i diritti riservati - Buon divertimento!

By continuing to use the site, you agree to the use of cookies. more information

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi