#173835 - JonP01 - Tue May 04, 2010 2:42 am
Hi,
I am currently working with a programmer on a DS homebrew project, updating a chess program. One of the features we have implemented is a "nodes per second" display, which efectively tells us how fast the program is executing through each iteration of it's search loop whilst it is thinking on it's move.
This was working fine in the no$gba emulator - or so I thought. When I run the program in no$gba, I will typically get a node count of ~8,000 per second.
I never thought anything untoward about this until I sent a copy of the latest build to an acquaintance to run on his Nintendo DSiXL console.
He then reported back to me that the program was working fine, but the nodes per second were roughly half of what I had been getting in the no$gba emulator.
I then set up a special test position so that we could objectively compare the differing speeds. And the result was as I was dreading - the DSiXL was running about 40% the speed of the no$gba emulation.
I then downloaded the DeSmuME emulation and got yet another result - around 2,700 nodes per second - so even slower than the DSiXL.
I am now starting to suspect that the no$bga emulation is actually running this program at DSi speeds (i.e 133 Mhz) isntead of DS speeds (67 Mhz). Can anyone confirm this is possible? I don't see any way to adjust the no$gba emulator to run in DS mode versus DSi mode, but in all comparisions I have made, the processing speed of the no$gba emulator has even exceeded the speed of a 100 Mhz ARM processor with far larger hash tables (the same chess engine we are using was benchmarked on a 100 Mhz ARM with 12 MB RAM hash).
Incidentally, I should add that in all cases, the emulations have been running at 100% speed all the time, though because our program has it's own internal clock, it actually wouldn't make any difference anyway - the seconds would just go by more slowly, but the nodes per second would remain consistent.
So I now have three different levels of performance:
DeSmuME ~2,700 nps
no$gba ~ 8,000 nps
DSiXL console ~ 3,500 nps
Which one can I trust? You might say the console itself, but maybe the flashcard is doing something to make it run at the speed it does. But then there is the evidence that the no$gba emulator is outperforming a 100 Mhz ARM with much larger useable RAM (the RAM is used for hash tables and enables a chess program to find the solution to a problem faster).
So far as I can tell, everything is pointing to the console being "right" and the two emulations being respectively too fast and too slow.
I am currently working with a programmer on a DS homebrew project, updating a chess program. One of the features we have implemented is a "nodes per second" display, which efectively tells us how fast the program is executing through each iteration of it's search loop whilst it is thinking on it's move.
This was working fine in the no$gba emulator - or so I thought. When I run the program in no$gba, I will typically get a node count of ~8,000 per second.
I never thought anything untoward about this until I sent a copy of the latest build to an acquaintance to run on his Nintendo DSiXL console.
He then reported back to me that the program was working fine, but the nodes per second were roughly half of what I had been getting in the no$gba emulator.
I then set up a special test position so that we could objectively compare the differing speeds. And the result was as I was dreading - the DSiXL was running about 40% the speed of the no$gba emulation.
I then downloaded the DeSmuME emulation and got yet another result - around 2,700 nodes per second - so even slower than the DSiXL.
I am now starting to suspect that the no$bga emulation is actually running this program at DSi speeds (i.e 133 Mhz) isntead of DS speeds (67 Mhz). Can anyone confirm this is possible? I don't see any way to adjust the no$gba emulator to run in DS mode versus DSi mode, but in all comparisions I have made, the processing speed of the no$gba emulator has even exceeded the speed of a 100 Mhz ARM processor with far larger hash tables (the same chess engine we are using was benchmarked on a 100 Mhz ARM with 12 MB RAM hash).
Incidentally, I should add that in all cases, the emulations have been running at 100% speed all the time, though because our program has it's own internal clock, it actually wouldn't make any difference anyway - the seconds would just go by more slowly, but the nodes per second would remain consistent.
So I now have three different levels of performance:
DeSmuME ~2,700 nps
no$gba ~ 8,000 nps
DSiXL console ~ 3,500 nps
Which one can I trust? You might say the console itself, but maybe the flashcard is doing something to make it run at the speed it does. But then there is the evidence that the no$gba emulator is outperforming a 100 Mhz ARM with much larger useable RAM (the RAM is used for hash tables and enables a chess program to find the solution to a problem faster).
So far as I can tell, everything is pointing to the console being "right" and the two emulations being respectively too fast and too slow.