VIP Version 10!
Posted: 18 Apr 2021 19:12
Yesterday, I saw VP 10 was available. I purchased the upgrade, and ported NADYA2.1 Chess to VIP10 to test the 64-bit intrinsic bit-wise operators (and memory profiler which is now fixed).
I ran my "perft" test suit (a standard algorithm in chess engines) and have processed the correct move counts on about 320 million chess moves using the intrinsic 64-bit (bit-wise) operators of VIP10. The results were perfect.
This also improved the performance of NADYA2.1 by a margin of almost 4%, which is a big deal for a chess engine. I ran a 100 game tournament with VIP9 NADYA2.1 vs. VIP10 NADYA2.1. That 4% gave the VIP10 compiled version the edge. It defeated the VIP9 version 36 Wins, 26 Losses, and 38 ties. Normally competing the same engine against itself would result in a dead tie.
NADYA2.0 recently defeated a world rated competitive chess engine--but is now my research engine. I am well into NADYA3.0 which is designed to be up to 50x faster than 2.1.
The only test of my suite that failed is (in a 64-bit application) "V = 1 << 32" still produces a value of zero. However, this may very well be as designed--(defaulting to a 32-bit integer domain). I created a constant "ui64_1:unsigned64 = 1.", and replace that code with "V = ui64_1 << 32" which works perfectly.
Ty, PDC!
P.S. "Object Expressions" is an incredibly cool enhancement to the language.
I ran my "perft" test suit (a standard algorithm in chess engines) and have processed the correct move counts on about 320 million chess moves using the intrinsic 64-bit (bit-wise) operators of VIP10. The results were perfect.
This also improved the performance of NADYA2.1 by a margin of almost 4%, which is a big deal for a chess engine. I ran a 100 game tournament with VIP9 NADYA2.1 vs. VIP10 NADYA2.1. That 4% gave the VIP10 compiled version the edge. It defeated the VIP9 version 36 Wins, 26 Losses, and 38 ties. Normally competing the same engine against itself would result in a dead tie.
NADYA2.0 recently defeated a world rated competitive chess engine--but is now my research engine. I am well into NADYA3.0 which is designed to be up to 50x faster than 2.1.
The only test of my suite that failed is (in a 64-bit application) "V = 1 << 32" still produces a value of zero. However, this may very well be as designed--(defaulting to a 32-bit integer domain). I created a constant "ui64_1:unsigned64 = 1.", and replace that code with "V = ui64_1 << 32" which works perfectly.
Ty, PDC!
P.S. "Object Expressions" is an incredibly cool enhancement to the language.