It also needs a better malloc/free. malloc/free are only used when the syzygypath is set can't be called more than a couple hundred times through out the lifetime of the process. Hence it would be nice to have a simple and space efficient malloc/free since speed is not critical here. The current implementation wastes space on small sizes.
; todo: malloc and free need a little work after profiling to see what sizes are common
; for now, we just call _VirtualAlloc on size+16 and store the size in the first qword
; of the returned page(s).
malloc: addrcx, 16
free: subrcx, 16
movrdx, qword[rcx] jmp_VirtualFree
Joined: 09 Oct 2009
My version-of-choice malloc/free are located in my library of course, but also as HTML at https://2ton.com.au/library_as_html/heap.inc.html. Specifically, the heap$alloc and heap$free routines (as well as the mandatory heap$init that runs once at program startup).
One-size fits all (as indicated in my comments in the library) has never really suited me, ptmalloc/malloc/etc do indeed cater for general purpose allocation, but most of the production code I have ever written or worked on has very specific needs and bin-based allocation is a better choice. YMMV.
New asmFish site: https://github.com/lantonov/asmFish
tthsqe left this project in the beginning of November last year and deleted everything in his GitHub account. I had saved the last copy of his files on my HD and decided to continue with the updates.
The new GitHub of asmFish is https://github.com/lantonov/asmFish
Presently, asmFish continues to be the strongest chess entity in the world (said without any exaggeration).
It would be great if this nice project receives help from true assembly programmers. I am not a programmer and it is hard for me to keep up with the Stockfish updates.
Last edited by lantonov on 09 Jan 2017, 08:11; edited 1 time in total
If you allow me, I can propose an idea which may be trivial to a person with an assembly programming background.
In this forum, I saw an assembly neural network program Neural64:
which seems to be versatile enough. In spite of its name, it can work also on 32-bit CPU, albeit more slowly.
Coupling Neural64 (or some other, more recent, AI software) with asmFish would create a chess monster who learns and becomes stronger the more it plays. At present, the main stumbling block in computer chess development is the tuning of parameters for evaluation functions. Automating this process will cause a revolution in CC.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum