Chess programming Youtube channel: 1+ year summary

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
maksimKorzh
Posts: 775
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Chess programming Youtube channel: 1+ year summary

Post by maksimKorzh »

dangi12012 wrote: Sun Oct 10, 2021 1:51 am
maksimKorzh wrote: Sat Oct 09, 2021 11:22 pm
Sure we are almost there replace the instances of / redefine:
_blsr_u64(X) => (X & (X-1))
_tzcnt_u64(X) => __builtin_ctz(X)
_blsi_u64(X) => (X & -X)

Then we have it finished. No more intrinsics needed.

Performance? I cant tell - should still be very very fast. Weak Intel with lower clocks and without intrinsics.
My gut feeling tells me maybe 30% of a Zen3 thread performance.

Greetings - Daniel
Ok, it's 05:47 A.M. and... it works!!! I just removed -flto flag, so here's the output on my Intel© Celeron© N4000 CPU @ 1.10GHz × 2:

Code: Select all

Perft Start 1: 20 0ms 0.645161 MNodes/s
Perft Start 2: 400 0ms 6.89655 MNodes/s
Perft Start 3: 8902 0ms 58.9536 MNodes/s
Perft Start 4: 197281 2ms 93.4538 MNodes/s
Perft Start 5: 4865609 52ms 92.1011 MNodes/s
Perft Start 6: 119060324 1217ms 97.8185 MNodes/s
Perft Start 7: 3195901860 32892ms 97.1616 MNodes/s
OK
I'm knocked out.... Just can't believe my eyes...
I now need to read through your article to get at least a vague understanding of how on earth is that possible...
Thanks for your support, I'll make a video soon.
dangi12012
Posts: 1062
Joined: Tue Apr 28, 2020 10:03 pm
Full name: Daniel Infuehr

Re: Chess programming Youtube channel: 1+ year summary

Post by dangi12012 »

maksimKorzh wrote: Sun Oct 10, 2021 4:22 am
dangi12012 wrote: Sun Oct 10, 2021 1:51 am
maksimKorzh wrote: Sat Oct 09, 2021 11:22 pm
Sure we are almost there replace the instances of / redefine:
_blsr_u64(X) => (X & (X-1))
_tzcnt_u64(X) => __builtin_ctz(X)
_blsi_u64(X) => (X & -X)

Then we have it finished. No more intrinsics needed.

Performance? I cant tell - should still be very very fast. Weak Intel with lower clocks and without intrinsics.
My gut feeling tells me maybe 30% of a Zen3 thread performance.

Greetings - Daniel
Ok, this worked, actually only redefining __blsr_u64(X) and __blsi_u64(X) was enough, than it was compiling for... more than 5 minutes for sure (why so long???) and then finally I got a linker error which is obviously not related to the movegen but maybe you can tell me what's wrong:

Code: Select all

../../clang/bin/clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -o giga_clang
/usr/bin/ld: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: error loading plugin: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
Gongrats now you have the currently most advanced C++ compiler installed on your machine. I think compilation is ok but now the error is during linktime. Cant you use ubuntu?
Anyways you also need llvm-12 as it seems:

Code: Select all

printf "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main" |sudo tee /etc/apt/sources.list.d/llvm-toolchain-xenial-12.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key |sudo apt-key add -
sudo apt update
sudo apt install llvm-12
Then we also want to add that -v to see what exactly might be missing.
clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -v -o giga_clang
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
User avatar
maksimKorzh
Posts: 775
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Chess programming Youtube channel: 1+ year summary

Post by maksimKorzh »

dangi12012 wrote: Sun Oct 10, 2021 12:56 pm
maksimKorzh wrote: Sun Oct 10, 2021 4:22 am
dangi12012 wrote: Sun Oct 10, 2021 1:51 am
maksimKorzh wrote: Sat Oct 09, 2021 11:22 pm
Sure we are almost there replace the instances of / redefine:
_blsr_u64(X) => (X & (X-1))
_tzcnt_u64(X) => __builtin_ctz(X)
_blsi_u64(X) => (X & -X)

Then we have it finished. No more intrinsics needed.

Performance? I cant tell - should still be very very fast. Weak Intel with lower clocks and without intrinsics.
My gut feeling tells me maybe 30% of a Zen3 thread performance.

Greetings - Daniel
Ok, this worked, actually only redefining __blsr_u64(X) and __blsi_u64(X) was enough, than it was compiling for... more than 5 minutes for sure (why so long???) and then finally I got a linker error which is obviously not related to the movegen but maybe you can tell me what's wrong:

Code: Select all

../../clang/bin/clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -o giga_clang
/usr/bin/ld: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: error loading plugin: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
Gongrats now you have the currently most advanced C++ compiler installed on your machine. I think compilation is ok but now the error is during linktime. Cant you use ubuntu?
Anyways you also need llvm-12 as it seems:

Code: Select all

printf "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main" |sudo tee /etc/apt/sources.list.d/llvm-toolchain-xenial-12.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key |sudo apt-key add -
sudo apt update
sudo apt install llvm-12
Then we also want to add that -v to see what exactly might be missing.
clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -v -o giga_clang
re: most advanced C++ compiler:
- yeah, but all of my life I've been trying to simplify things (hence the chess programming channel btw) to make complicated topics easily accessible
by noobs like me) When I see code of your level I feel very stupid)) Like I didn't write 10+ engines before) And the word class coding style tends to
use world class instruments, e.g. compiler/linker/etc. And for me that is something I've been struggling all of my life and still do, haha))) The idea is
to avoid things that I'm not able to understand because what I don't understand (no matter if someone explains) doesn't make any sense. The only
reason behind the fact I didn't give up installing your movegen are the perft results I couldn't believe in... Curiosity won))) But for daily life/programming
- I would never consider this like sophisticated toolchain/code because my mission is to write code as simple as possible, build as simple as possible
and the recent projects were in high-level languages to simplify the access to the materials even more. I highly respect your work and I'm not sure if
I manage to understand it one day (apart anything else I hate C++ with it's modern nitty gritty enhancements with all of my heart))) - it just does
nothing but making me feel very stupid, haha))) ). BUT YOUR WORK IS WORTH TO GIVE UP MY PRINCIPLES FOR A WHILE! HATS OFF DANIEL!

EDIT: I hope your code would replace SF's movegen and brings chess engines to the new level!
dangi12012
Posts: 1062
Joined: Tue Apr 28, 2020 10:03 pm
Full name: Daniel Infuehr

Re: Chess programming Youtube channel: 1+ year summary

Post by dangi12012 »

maksimKorzh wrote: Sun Oct 10, 2021 5:56 pm
dangi12012 wrote: Sun Oct 10, 2021 12:56 pm
maksimKorzh wrote: Sun Oct 10, 2021 4:22 am
dangi12012 wrote: Sun Oct 10, 2021 1:51 am
maksimKorzh wrote: Sat Oct 09, 2021 11:22 pm
Sure we are almost there replace the instances of / redefine:
_blsr_u64(X) => (X & (X-1))
_tzcnt_u64(X) => __builtin_ctz(X)
_blsi_u64(X) => (X & -X)

Then we have it finished. No more intrinsics needed.

Performance? I cant tell - should still be very very fast. Weak Intel with lower clocks and without intrinsics.
My gut feeling tells me maybe 30% of a Zen3 thread performance.

Greetings - Daniel
Ok, this worked, actually only redefining __blsr_u64(X) and __blsi_u64(X) was enough, than it was compiling for... more than 5 minutes for sure (why so long???) and then finally I got a linker error which is obviously not related to the movegen but maybe you can tell me what's wrong:

Code: Select all

../../clang/bin/clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -o giga_clang
/usr/bin/ld: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: error loading plugin: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
Gongrats now you have the currently most advanced C++ compiler installed on your machine. I think compilation is ok but now the error is during linktime. Cant you use ubuntu?
Anyways you also need llvm-12 as it seems:

Code: Select all

printf "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main" |sudo tee /etc/apt/sources.list.d/llvm-toolchain-xenial-12.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key |sudo apt-key add -
sudo apt update
sudo apt install llvm-12
Then we also want to add that -v to see what exactly might be missing.
clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -v -o giga_clang
re: most advanced C++ compiler:
- yeah, but all of my life I've been trying to simplify things (hence the chess programming channel btw) to make complicated topics easily accessible
by noobs like me) When I see code of your level I feel very stupid)) Like I didn't write 10+ engines before) And the word class coding style tends to
use world class instruments, e.g. compiler/linker/etc. And for me that is something I've been struggling all of my life and still do, haha))) The idea is
to avoid things that I'm not able to understand because what I don't understand (no matter if someone explains) doesn't make any sense. The only
reason behind the fact I didn't give up installing your movegen are the perft results I couldn't believe in... Curiosity won))) But for daily life/programming
- I would never consider this like sophisticated toolchain/code because my mission is to write code as simple as possible, build as simple as possible
and the recent projects were in high-level languages to simplify the access to the materials even more. I highly respect your work and I'm not sure if
I manage to understand it one day (apart anything else I hate C++ with it's modern nitty gritty enhancements with all of my heart))) - it just does
nothing but making me feel very stupid, haha))) ). BUT YOUR WORK IS WORTH TO GIVE UP MY PRINCIPLES FOR A WHILE! HATS OFF DANIEL!

EDIT: I hope your code would replace SF's movegen and brings chess engines to the new level!
My goal was it to write the fastest movegenerator possible - since simple code is also faster code its really really easy to miss the tree in the forrest here. The code is really simple C++ no even classes. The cool idea here was the template inlining for the 6 callbacks in the cpp file that obfuscates a little. I am certain that this is much simpler than qperft for example - its a completely new and simpler approach - that makes it so fast!
Anyways the main ideas are descibed here:
https://www.codeproject.com/Articles/53 ... egenerator

Thanks for making stuff like that more accessible. Greetings - Daniel
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
User avatar
maksimKorzh
Posts: 775
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Chess programming Youtube channel: 1+ year summary

Post by maksimKorzh »

dangi12012 wrote: Sun Oct 10, 2021 7:04 pm
maksimKorzh wrote: Sun Oct 10, 2021 5:56 pm
dangi12012 wrote: Sun Oct 10, 2021 12:56 pm
maksimKorzh wrote: Sun Oct 10, 2021 4:22 am
dangi12012 wrote: Sun Oct 10, 2021 1:51 am
maksimKorzh wrote: Sat Oct 09, 2021 11:22 pm
Sure we are almost there replace the instances of / redefine:
_blsr_u64(X) => (X & (X-1))
_tzcnt_u64(X) => __builtin_ctz(X)
_blsi_u64(X) => (X & -X)

Then we have it finished. No more intrinsics needed.

Performance? I cant tell - should still be very very fast. Weak Intel with lower clocks and without intrinsics.
My gut feeling tells me maybe 30% of a Zen3 thread performance.

Greetings - Daniel
Ok, this worked, actually only redefining __blsr_u64(X) and __blsi_u64(X) was enough, than it was compiling for... more than 5 minutes for sure (why so long???) and then finally I got a linker error which is obviously not related to the movegen but maybe you can tell me what's wrong:

Code: Select all

../../clang/bin/clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -o giga_clang
/usr/bin/ld: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: error loading plugin: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
Gongrats now you have the currently most advanced C++ compiler installed on your machine. I think compilation is ok but now the error is during linktime. Cant you use ubuntu?
Anyways you also need llvm-12 as it seems:

Code: Select all

printf "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main" |sudo tee /etc/apt/sources.list.d/llvm-toolchain-xenial-12.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key |sudo apt-key add -
sudo apt update
sudo apt install llvm-12
Then we also want to add that -v to see what exactly might be missing.
clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -v -o giga_clang
re: most advanced C++ compiler:
- yeah, but all of my life I've been trying to simplify things (hence the chess programming channel btw) to make complicated topics easily accessible
by noobs like me) When I see code of your level I feel very stupid)) Like I didn't write 10+ engines before) And the word class coding style tends to
use world class instruments, e.g. compiler/linker/etc. And for me that is something I've been struggling all of my life and still do, haha))) The idea is
to avoid things that I'm not able to understand because what I don't understand (no matter if someone explains) doesn't make any sense. The only
reason behind the fact I didn't give up installing your movegen are the perft results I couldn't believe in... Curiosity won))) But for daily life/programming
- I would never consider this like sophisticated toolchain/code because my mission is to write code as simple as possible, build as simple as possible
and the recent projects were in high-level languages to simplify the access to the materials even more. I highly respect your work and I'm not sure if
I manage to understand it one day (apart anything else I hate C++ with it's modern nitty gritty enhancements with all of my heart))) - it just does
nothing but making me feel very stupid, haha))) ). BUT YOUR WORK IS WORTH TO GIVE UP MY PRINCIPLES FOR A WHILE! HATS OFF DANIEL!

EDIT: I hope your code would replace SF's movegen and brings chess engines to the new level!
My goal was it to write the fastest movegenerator possible - since simple code is also faster code its really really easy to miss the tree in the forrest here. The code is really simple C++ no even classes. The cool idea here was the template inlining for the 6 callbacks in the cpp file that obfuscates a little. I am certain that this is much simpler than qperft for example - its a completely new and simpler approach - that makes it so fast!
Anyways the main ideas are descibed here:
https://www.codeproject.com/Articles/53 ... egenerator

Thanks for making stuff like that more accessible. Greetings - Daniel
Daniel, thank you for your patience!
Here's a video covering your project I made:


Hope lot of people would be able to get familiar with it quite pretty soon!
Btw are you currently negotiating about using it to replace/update SF's movegen?
dangi12012
Posts: 1062
Joined: Tue Apr 28, 2020 10:03 pm
Full name: Daniel Infuehr

Re: Chess programming Youtube channel: 1+ year summary

Post by dangi12012 »

maksimKorzh wrote: Sun Oct 10, 2021 7:18 pm
dangi12012 wrote: Sun Oct 10, 2021 7:04 pm
maksimKorzh wrote: Sun Oct 10, 2021 5:56 pm
dangi12012 wrote: Sun Oct 10, 2021 12:56 pm
maksimKorzh wrote: Sun Oct 10, 2021 4:22 am
dangi12012 wrote: Sun Oct 10, 2021 1:51 am
maksimKorzh wrote: Sat Oct 09, 2021 11:22 pm
Sure we are almost there replace the instances of / redefine:
_blsr_u64(X) => (X & (X-1))
_tzcnt_u64(X) => __builtin_ctz(X)
_blsi_u64(X) => (X & -X)

Then we have it finished. No more intrinsics needed.

Performance? I cant tell - should still be very very fast. Weak Intel with lower clocks and without intrinsics.
My gut feeling tells me maybe 30% of a Zen3 thread performance.

Greetings - Daniel
Ok, this worked, actually only redefining __blsr_u64(X) and __blsi_u64(X) was enough, than it was compiling for... more than 5 minutes for sure (why so long???) and then finally I got a linker error which is obviously not related to the movegen but maybe you can tell me what's wrong:

Code: Select all

../../clang/bin/clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -o giga_clang
/usr/bin/ld: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: error loading plugin: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
Gongrats now you have the currently most advanced C++ compiler installed on your machine. I think compilation is ok but now the error is during linktime. Cant you use ubuntu?
Anyways you also need llvm-12 as it seems:

Code: Select all

printf "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main" |sudo tee /etc/apt/sources.list.d/llvm-toolchain-xenial-12.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key |sudo apt-key add -
sudo apt update
sudo apt install llvm-12
Then we also want to add that -v to see what exactly might be missing.
clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -v -o giga_clang
re: most advanced C++ compiler:
- yeah, but all of my life I've been trying to simplify things (hence the chess programming channel btw) to make complicated topics easily accessible
by noobs like me) When I see code of your level I feel very stupid)) Like I didn't write 10+ engines before) And the word class coding style tends to
use world class instruments, e.g. compiler/linker/etc. And for me that is something I've been struggling all of my life and still do, haha))) The idea is
to avoid things that I'm not able to understand because what I don't understand (no matter if someone explains) doesn't make any sense. The only
reason behind the fact I didn't give up installing your movegen are the perft results I couldn't believe in... Curiosity won))) But for daily life/programming
- I would never consider this like sophisticated toolchain/code because my mission is to write code as simple as possible, build as simple as possible
and the recent projects were in high-level languages to simplify the access to the materials even more. I highly respect your work and I'm not sure if
I manage to understand it one day (apart anything else I hate C++ with it's modern nitty gritty enhancements with all of my heart))) - it just does
nothing but making me feel very stupid, haha))) ). BUT YOUR WORK IS WORTH TO GIVE UP MY PRINCIPLES FOR A WHILE! HATS OFF DANIEL!

EDIT: I hope your code would replace SF's movegen and brings chess engines to the new level!
My goal was it to write the fastest movegenerator possible - since simple code is also faster code its really really easy to miss the tree in the forrest here. The code is really simple C++ no even classes. The cool idea here was the template inlining for the 6 callbacks in the cpp file that obfuscates a little. I am certain that this is much simpler than qperft for example - its a completely new and simpler approach - that makes it so fast!
Anyways the main ideas are descibed here:
https://www.codeproject.com/Articles/53 ... egenerator

Thanks for making stuff like that more accessible. Greetings - Daniel
Daniel, thank you for your patience!
Here's a video covering your project I made:


Hope lot of people would be able to get familiar with it quite pretty soon!
Btw are you currently negotiating about using it to replace/update SF's movegen?
Thank you maksim - great Video. I was always thinking that the chess programming community is missing a youtube presence.
You really will have a great impact on chessprogramming - and keep making it accessible for more people. You are very great for our community!

Greetings - Daniel
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
User avatar
maksimKorzh
Posts: 775
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Chess programming Youtube channel: 1+ year summary

Post by maksimKorzh »

dangi12012 wrote: Sun Oct 10, 2021 9:35 pm
maksimKorzh wrote: Sun Oct 10, 2021 7:18 pm
dangi12012 wrote: Sun Oct 10, 2021 7:04 pm
maksimKorzh wrote: Sun Oct 10, 2021 5:56 pm
dangi12012 wrote: Sun Oct 10, 2021 12:56 pm
maksimKorzh wrote: Sun Oct 10, 2021 4:22 am
dangi12012 wrote: Sun Oct 10, 2021 1:51 am
maksimKorzh wrote: Sat Oct 09, 2021 11:22 pm
Sure we are almost there replace the instances of / redefine:
_blsr_u64(X) => (X & (X-1))
_tzcnt_u64(X) => __builtin_ctz(X)
_blsi_u64(X) => (X & -X)

Then we have it finished. No more intrinsics needed.

Performance? I cant tell - should still be very very fast. Weak Intel with lower clocks and without intrinsics.
My gut feeling tells me maybe 30% of a Zen3 thread performance.

Greetings - Daniel
Ok, this worked, actually only redefining __blsr_u64(X) and __blsi_u64(X) was enough, than it was compiling for... more than 5 minutes for sure (why so long???) and then finally I got a linker error which is obviously not related to the movegen but maybe you can tell me what's wrong:

Code: Select all

../../clang/bin/clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -o giga_clang
/usr/bin/ld: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: error loading plugin: /home/maksim/Downloads/clang/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
Gongrats now you have the currently most advanced C++ compiler installed on your machine. I think compilation is ok but now the error is during linktime. Cant you use ubuntu?
Anyways you also need llvm-12 as it seems:

Code: Select all

printf "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main" |sudo tee /etc/apt/sources.list.d/llvm-toolchain-xenial-12.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key |sudo apt-key add -
sudo apt update
sudo apt install llvm-12
Then we also want to add that -v to see what exactly might be missing.
clang-12 -march=native -std=c++20 -lstdc++ -O3 Gigantua.cpp -flto -v -o giga_clang
re: most advanced C++ compiler:
- yeah, but all of my life I've been trying to simplify things (hence the chess programming channel btw) to make complicated topics easily accessible
by noobs like me) When I see code of your level I feel very stupid)) Like I didn't write 10+ engines before) And the word class coding style tends to
use world class instruments, e.g. compiler/linker/etc. And for me that is something I've been struggling all of my life and still do, haha))) The idea is
to avoid things that I'm not able to understand because what I don't understand (no matter if someone explains) doesn't make any sense. The only
reason behind the fact I didn't give up installing your movegen are the perft results I couldn't believe in... Curiosity won))) But for daily life/programming
- I would never consider this like sophisticated toolchain/code because my mission is to write code as simple as possible, build as simple as possible
and the recent projects were in high-level languages to simplify the access to the materials even more. I highly respect your work and I'm not sure if
I manage to understand it one day (apart anything else I hate C++ with it's modern nitty gritty enhancements with all of my heart))) - it just does
nothing but making me feel very stupid, haha))) ). BUT YOUR WORK IS WORTH TO GIVE UP MY PRINCIPLES FOR A WHILE! HATS OFF DANIEL!

EDIT: I hope your code would replace SF's movegen and brings chess engines to the new level!
My goal was it to write the fastest movegenerator possible - since simple code is also faster code its really really easy to miss the tree in the forrest here. The code is really simple C++ no even classes. The cool idea here was the template inlining for the 6 callbacks in the cpp file that obfuscates a little. I am certain that this is much simpler than qperft for example - its a completely new and simpler approach - that makes it so fast!
Anyways the main ideas are descibed here:
https://www.codeproject.com/Articles/53 ... egenerator

Thanks for making stuff like that more accessible. Greetings - Daniel
Daniel, thank you for your patience!
Here's a video covering your project I made:


Hope lot of people would be able to get familiar with it quite pretty soon!
Btw are you currently negotiating about using it to replace/update SF's movegen?
Thank you maksim - great Video. I was always thinking that the chess programming community is missing a youtube presence.
You really will have a great impact on chessprogramming - and keep making it accessible for more people. You are very great for our community!

Greetings - Daniel
Thank you for your kind words!
User avatar
maksimKorzh
Posts: 775
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Chess programming Youtube channel: 1+ year summary

Post by maksimKorzh »

Thanks for your support guys!
Around 30 more subscriptions has occurred within the last few days!
We need 105 more to reach the 1000!
User avatar
maksimKorzh
Posts: 775
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Chess programming Youtube channel: 1+ year summary

Post by maksimKorzh »

We're almost there! 989 subs as for today! Thanks everyone for your support!