lantonov / asmFish

A continuation of the nice project asmFish by Mohammed Li. Latest version: 07.08.2019
https://lantonov.github.io/asmFish/
Other
118 stars 49 forks source link

General Updates/Questions #174

Closed double-beep closed 6 years ago

double-beep commented 6 years ago

Hello @lantonov and @Counterply, I have the following questions:

  1. Why Matefinder hasn't got base executables?
  2. Executables branch is out-of-date with the default branch. Can you ask @lantonov, to update it?
  3. Description says that latest version is 11.05.2018. Can you ask @lantonov, to update it? Wiki has the same problem, too!
CounterPly commented 6 years ago

UTC -5

CounterPly commented 6 years ago

Updated change-log to your last version.

double-beep commented 6 years ago

Hi, @Counterply, thanks for the wiki update. I think here, you should add a suggestion label to this issue :). Sorry for the "inertia" the last ~3-4 days; I am in a hotel with poor internet connection playing a national chess tournament. I should never forget my chess obligations :-).

I really think that option U - Update fasmg.exe is not required. The thing you can do, is to tell make.bat to automatically update fasmg.exe in the beginning. Question: Only fasmg.exe is updated with the download.vbs file or both fasmg and fasmg.exe?

Could you let me prepare the easy patch Tuned some values... or you can do it?

I will prepare wiki's change-log soon. How did you make the latest 'updater' me? (double-beep) By the way, the title seems great to me :-) and your idea about benching armFish with TRAVIS which supports qemu. You could make a script after, to bench Mac and Linux, as Travis supports them, also. @double-beep

CounterPly commented 6 years ago
CounterPly commented 6 years ago
double-beep commented 6 years ago

Hi @Counterply, I saw your messages, I was busy with training. I will complete the patch today as the tournament ends! Instead of waiting please try what you said above about benching armFish with a dockerfile.

CounterPly commented 6 years ago

It is fine. I already completed the patch along with 7 others. I will commit them here once the arm versions are complete.

double-beep commented 6 years ago

Hello @Counterply,

  1. make.bat is broken. No reason to remove the 1 of 2 start /min /wait in :allBinaries.
  2. I have prepared the wiki.
  3. Newest fasmg is faster after a test in AppVeyor console.
  4. I think we should ask @ksylvan for a docker command to bench the engines if you do not know any. You can see my work in the dockerhub and generally explore the repository (you can join hub.docker.com if you haven't done it and I will make you a collaborator) and in branch docker in my fork. @double-beep
CounterPly commented 6 years ago

I deleted those lines because it saves several seconds when I assemble locally. Since it breaks make.bat for your system, however, I will put it back during the next commit.

CounterPly commented 6 years ago

Thanks for looking into Docker. I will create an account soon.

cirebonb commented 6 years ago

Hi @Counterply, when I look code at move_do_null, I see in line 25 "mov edx, dword[rbx+State.epSquare]", why just "movzx edx, byte[rbx.State.epSquare]", this line neglect value of capturedpiece that we used on updatestat, other than we keep copying it new State with different possidetomove.

double-beep commented 6 years ago

Hi @cirebonb, this is not correct:

flat assembler  version g.i88rw
x86\fish.asm [173] x86\Move_DoNull.asm [25]:
        movzx edx, byte[rbx.State.epSquare]
macro movzx [2] macro parse_operand [5] macro parse_operand_value [21] macro parse_address [13]:
        ns.address = +addr
Processed: @src.address = +rbx.State.epSquare
Error: symbol 'epSquare' is undefined or out of scope.

This is a problem in compilation after command:

fasmg.exe "x86\fish.asm" "asmFishW_base.exe" -e 1000000 -i "VERSION_OS='W'" -i "PEDANTIC = 1" -i "VERSION_POST = 'base'" %debug%
double-beep commented 6 years ago

@Counterply, there is again a newer version of fasmg.exe, g.i8nim. I am testing at the moment.


EDIT

Newest version is about 50 seconds faster.

cirebonb commented 6 years ago

hi @doublebeep not [rbx.State.epSquare] but [rbx+State.epSquare]

cirebonb commented 6 years ago

not @doublebeep but @double-beep

CounterPly commented 6 years ago

@cirebonb

Unless I misunderstood your original question, zero-extending byte[rbx+State+epSquare] into rdx alters the bench from the correct value of 4777674 to an incorrect value of 4843129. This is due to partial-hammering of the edx register, which I don't think is particularly desirable here. Even if it was, however, this branch is for official bench-match versions only.

double-beep commented 6 years ago

@cirebonb, sorry for that, of course we cannot say rbx.State.epSquare; I didn't take a further look.

@Counterply as about the dockerfile, I am experimenting with it the last 4 days, but I could not find a command to bench the executables. Any ideas? And by the way what is your username in dockerhub?

cirebonb commented 6 years ago

yes, sorry my mistake

CounterPly commented 6 years ago

@double-beep

Thank you very much for looking into it. Sorry for being unresponsive these past few days; I have been under several work-deadlines and have not had much free time.

I made an account on DockerHub -- CounterPly.

double-beep commented 6 years ago

Hello, @Counterply it is ok. I have created a repository here. I use as SOURCE_REPO my fork as there I got the dockerfile. You have admin access, you can change it when you want.


The last days I was trying to find a command to bench the executables. [Note: Server there, assembles the executables very slow (~60-80secs). You can see the logs.] The one that had to work was:

&& ./armFishL_v8 bench

Unfortunately, I got a message: Access is denied and build failed. If you know docker well, as I do not know, can you help?

double-beep commented 6 years ago

Hello, there is a newer version of fasmg once again: flat assembler g i8q67


Results of my testing: flat assembler g i8q67 is slower that g.i8nim -> ~4seconds per build and totally 2minutes(!) slower, so I think this version should not be included in asmFish.

double-beep commented 6 years ago

Hello, Justin Based on your work I have prepared patches until Simply reset statScore to zero at beta cutoff. You can merge this to master. Also, I have fixed make.bat. Will you implement the "cuckoo" patches? Fasmg.exe when is open with start /min build ALL the executables or just first e.g. 4 per time?

I may not have the time to upload my work on the latest patch as I am going on holiday in a mountain. I will not have access to my laptop for the next 7days.

double-beep commented 6 years ago

flat assembler g i960e is the newest version of fasmg. Testing at the moment and will respond later.


Results

At total, version i960e is ~10secs faster. I think this version should be included.


Will patches:

If not, when asmFish's and stockfish's benches will realign?

CounterPly commented 6 years ago

Sorry for the late reply.

Thank you for testing. I will update fasmg with the next functional patch.

Yes, the cuckoo patches will be implemented eventually. I have been working on them over the past week whenever possible, but I have been very busy lately at work and have not had much time to do patches. (I may or may not need @tthsqe12 's help on this one, but honestly, I haven't given it a complete enough of an attempt to say for sure).

Since the cuckoo patches will probably take a while to get right, I've decided to also continue implementing subsequent functional patches on my asmFish fork while official progress is on pause (for those users who would be interested in these). Currently, it is a few patches ahead of the official branch and should be at least marginally stronger.

double-beep commented 6 years ago

Hi,

Except the change I offered for make.bat in issue #211, I have some more simplifications. Especially in :allBinaries (and in other labels of course) you always specify

set include=x86\include\

Why just

:allBinaries
set include=x86\include\

and delete the same command in this label? (except when you specify set include=arm\include). This can be done with other labels of course.

Some move commands need simplification in make.bat also. Take a look please if you can.

CounterPly commented 6 years ago

Noted. I will look at it during the next asmFish commit.

A general comment though: I don't think make.bat is important enough to justify rigorous optimization. It is fine if you want to spend your spare time tweaking it, but remember that most people shouldn't even need to use it anyway since binaries are assembled with every commit.

Remember, it isn't a chess engine that evaluates millions of nodes per second. It is a batch file. Eliminating an extra move command here or there will probably only save nanoseconds -- if that.

Thank you for your dedication, though. It is much appreciated.

wisecam commented 6 years ago

Hello Asmfish Team, Could you please update us if it is time to mourn the death of AsmFish? I hope it is not

NiTeFiSe commented 6 years ago

@wisecam

no its not dead. they posted an update on other forums and counterplys branch is still a bit active with some extra patches every once in a while

source: http://immortalchess.net/forum/showthread.php?t=32349&page=29 http://mzchessforum.altervista.org/viewtopic.php?f=31&p=28810#p28810

double-beep commented 6 years ago

@Counterply @lantonov came back to github and updated his fork of stockfish. Hope he has the time to 'see' asmFish.

mausalimi commented 6 years ago

this project is falling more and more behind sadly. ah well.

/edit: see below.

CounterPly commented 6 years ago

@mausalimi As previously stated by others here, please refer to my fork for the time being until I can get the cuckoo tables working properly. It contains all patches through early July 2018 and will soon be caught up to the month of August. As soon as the cuckoo patch is complete, the benches will be once again perfectly realigned and I will begin moving patches back over to this repository.

CounterPly commented 6 years ago

I am closing this thread since it has grown quite long and difficult to navigate. Special thanks to @double-beep for all of the excellent topics/questions/responses provided here.

(Moving forward, it will probably be easiest for everyone to maintain all questions/concerns as separate issues/topics).