A Quick Blog Entry About Gp2x Performance..


The last time I checked, an ARM9 at 200 MHz had little difficulty matching or exceeding the performance of an R4000 at 222 or 333 MHz like the PSP's. It'll beat the pants off an XScale at 400+ MHz in a PocketPC or Palm device, that's for certain. Now, the PSP has the edge of a dedicated GPU, but I highly doubt that the ARM9s in the GP2x are at all anemic by comparison, unless I'm way off base [while I don't think I am.] (At any rate, due to its very purpose, a GPU shouldn't really be considered a deciding factor in the machine's usefulness for running 2D applications and emulation tasks that will predominantly CPU-bound.)

The PSP's CPU also draws a tremendous amount of power (it's a pitifully old architecture scaled to ridiculous levels it was never really designed for), and it manages to achieve battery life below 5 hours on the stock (pre-underclocked) speed of 222 MHz, less at 333 as many, if not most, homebrews set the system to automatically upon launch. Compared to the 8+ hour estimates on heavy use of the GP2x and 10+ hour estimates on lighter use (audio playback), the use of nonproprietary cheaper SD cards rather than expensive Sony-only memory stick, the inclusion of onboard NAND flash where the PSP requires MS or UMD cards for loading applications, and the inclusion of the well-established and easy-to-port-to SDL-based SDK (which the PSP does not share, apparently all it shares is the use of C/C++) ... the GP2x seems to have a rather enormous advantage over the PSP for homebrew development.

I say let the PSP be for gamers, not for homebrew fanatics. You know, when it has more than Lumines worth playing. :rolleyes:

edit: typo.
 
Does anyone else think the GP2X reminds you of the good ol' Nomad?

Back on topic:

I would like to see a 3D software renderer that takes advantage of the cool features of these chips. Also, it looks like the AC'97 core could solve all the GP32's sound woes in programming.
 
That article on the Giz financial affairs is shocking. They will be bankrupt before the years end unless they manage to con more investors out of money, maybe they need another Maybach?
 
All that I ask, in terms of audio, is they solve the 'static' issue when you fill the gp32 bus too quick; that was bloody annoying :)

jeff
 
DaveC posted on Oct 5 2005 at 01:05 AM said:
skeezix posted on Oct 4 2005 at 10:12 PM said:
(stream of cosciousness follows)

getting a good kernel in thereis huge (to me; replacing the kernel with my own OS isn't a top priority, like it is for Squidge :) Good controls is good (so far GP32 is probably one of the best, better than PSP even for digital controls).


jeff

Wouldn't you have to throw out linux to get rid of the overhead? If you ported Castaway to the GP2x using it wouldn't it be slow, maybe even slower than it is on the GP32 now? I was under the impression that linux is a CPU and memory hog. Certainly it has more overhead than the old GP32 which basically had none.

Linux has a differnt way of handling memory this is true. Instead of allowing the system to have unused ram Linux uses all avaible memory at all times giving the needed ram back to the programs in userspace as needed. Its queer but it seems to work well. :) Also Linux as a kernel only needs 66mhz to run (I think the kernel there using is in the 2.4 series so it may need a little more than that). Add in the fact that it is enbedded instead of being harddrive based should remove alot of the overhead as well.
Since its not using an Xserver and has no plug and play hardware to wory about save the SD/MMC cards (those don't count) it wont need to load any programs beyond the interface and what ever game you want to play.

Will it have more overhead than the GP32? Probably. Will it be a detriment to the new system? Probably not.
 
Last edited by a moderator:
Aimless_E posted on Oct 10 2005 at 05:35 PM said:
DaveC posted on Oct 5 2005 at 01:05 AM said:
skeezix posted on Oct 4 2005 at 10:12 PM said:
(stream of cosciousness follows)

getting a good kernel in thereis huge (to me; replacing the kernel with my own OS isn't a top priority, like it is for Squidge :) Good controls is good (so far GP32 is probably one of the best, better than PSP even for digital controls).


jeff

Wouldn't you have to throw out linux to get rid of the overhead? If you ported Castaway to the GP2x using it wouldn't it be slow, maybe even slower than it is on the GP32 now? I was under the impression that linux is a CPU and memory hog. Certainly it has more overhead than the old GP32 which basically had none.

Linux has a differnt way of handling memory this is true. Instead of allowing the system to have unused ram Linux uses all avaible memory at all times giving the needed ram back to the programs in userspace as needed. Its queer but it seems to work well. :) Also Linux as a kernel only needs 66mhz to run (I think the kernel there using is in the 2.4 series so it may need a little more than that). Add in the fact that it is enbedded instead of being harddrive based should remove alot of the overhead as well.
Since its not using an Xserver and has no plug and play hardware to wory about save the SD/MMC cards (those don't count) it wont need to load any programs beyond the interface and what ever game you want to play.

Will it have more overhead than the GP32? Probably. Will it be a detriment to the new system? Probably not.


Well if that was the case 200 MHz-66 MHz for linux would make it run like a 133 MHz GP32 which is pretty bad for stuff like SNES or MAME. It sounds like linux will have to be bypassed to run CPU intensive emus. No big deal though as who cares if linux is running or not.
 
Last edited by a moderator:
DaveC posted on Oct 10 2005 at 06:11 PM said:
Well if that was the case 200 MHz-66 MHz for linux would make it run like a 133 MHz GP32 which is pretty bad for stuff like SNES or MAME. It sounds like linux will have to be bypassed to run CPU intensive emus. No big deal though as who cares if linux is running or not.

Is that statement correct :) . If linux takes up time on the CPU maybe you should think what its doing in that time. Or better yet look it up.
 
Last edited by a moderator:
DaveC posted on Oct 10 2005 at 08:11 PM said:
Aimless_E posted on Oct 10 2005 at 05:35 PM said:
Linux has a differnt way of handling memory this is true. Instead of allowing the system to have unused ram Linux uses all avaible memory at all times giving the needed ram back to the programs in userspace as needed. Its queer but it seems to work well. :) Also Linux as a kernel only needs 66mhz to run (I think the kernel there using is in the 2.4 series so it may need a little more than that).

Well if that was the case 200 MHz-66 MHz for linux would make it run like a 133 MHz GP32 which is pretty bad for stuff like SNES or MAME. It sounds like linux will have to be bypassed to run CPU intensive emus. No big deal though as who cares if linux is running or not.

Regarding the memory usage: all the "free" memory is an unused resource, and so it is a waste. As said, the kernel will give it back when you need it.

Regarding the "66MHz" this is nonsense; linux is quite fast, and it would be totally absurd to think that a system with 66MHz would do NOTHING except running the kernel (actually the first linux installation I tried worked quite well on a 25MHz 386sx).

Having a unix-like kernel is a HUGE advantage in terms of functionality. Having no OS (and running on "bare" hardware) would mean having no filesystem, no device drivers, no memory management, no multi-threading. That would be a big step back :wacko:
 
Last edited by a moderator:
DaveC posted on Oct 10 2005 at 08:11 PM said:
Aimless_E posted on Oct 10 2005 at 05:35 PM said:
Linux has a differnt way of handling memory this is true. Instead of allowing the system to have unused ram Linux uses all avaible memory at all times giving the needed ram back to the programs in userspace as needed. Its queer but it seems to work well. :) Also Linux as a kernel only needs 66mhz to run (I think the kernel there using is in the 2.4 series so it may need a little more than that).

Well if that was the case 200 MHz-66 MHz for linux would make it run like a 133 MHz GP32 which is pretty bad for stuff like SNES or MAME. It sounds like linux will have to be bypassed to run CPU intensive emus. No big deal though as who cares if linux is running or not.

Linux does NOT need 66MHz to run. Maybe on PC hardware it does, with all the functionality expected for that platform, but it's been successfully ported to much weaker platforms than the GP2X with muscle to spare. This is just FUD.
 
Last edited by a moderator:
Cyclops posted on Oct 10 2005 at 06:39 PM said:
DaveC posted on Oct 10 2005 at 06:11 PM said:
Well if that was the case 200 MHz-66 MHz for linux would make it run like a 133 MHz GP32 which is pretty bad for stuff like SNES or MAME.  It sounds like linux will have to be bypassed to run CPU intensive emus.  No big deal though as who cares if linux is running or not.

Is that statement correct :) . If linux takes up time on the CPU maybe you should think what its doing in that time. Or better yet look it up.


Nah. If linux makes any emu run 1 FPS less then I say be gone with it. I need smooth emus not linux. That is why the GP32 had good performance on a 166 MHz machine. Every CPU cycle was used for the emu not some bloaty OS.
 
Last edited by a moderator:
I run Unix (BSD and Linux) on an _Atari ST_ ;)

The Linux kernel is a huge advantage; thats why the gp2x is getting lots of free publicity, new devs and users, and maybe some commercial support; heck, the reason the gp2x is coming out a year earlier is due to the kernel giving all the features (SD, chipsets, etc). Without the kernel, they'dbe writing their own and bve taking that much longer to deliver, and itr'd be another gp32-- no one hearing about it.

The kernel overhead is very low, and is configurable; ie: You can do DVD DMA transfers without the kernel getting underfoot, or you cna have it set to be doing real time buggering.

And it can be tossed out if desired, if the architecture allows for that, which apparently it does.. at which point we have to write up drivers for the peripherals (SD, etc.), to get back a couple fps here or there. Hardly worth it, but a fun project. (I've written parts of a bare OS before; not really fun or worth it anymore.. but sometimes it is. Back when we did that it was the 30MHz PC days ;)

jeff
 
A couple of FPS would still be worth getting rid of linux (temporarily, while the emu is running, would reload linux after reset) I think.

If you throw away linux do you still get the real time buggering though? That sounds important :p
 
DaveC posted on Oct 11 2005 at 12:44 AM said:
Nah. If linux makes any emu run 1 FPS less then I say be gone with it. I need smooth emus not linux. That is why the GP32 had good performance on a 166 MHz machine. Every CPU cycle was used for the emu not some bloaty OS.

You must be joking! :eek:

Linux is not "bloaty" at all (but I can understand your diffidence, if you are accustomed to windows ;) ).

Also, if you boot without the OS, you will need to reimplement half of it (to read the filesystem, at least)...
 
Last edited by a moderator:
Oscaruzzo posted on Oct 11 2005 at 06:42 AM said:
DaveC posted on Oct 11 2005 at 12:44 AM said:
Nah.  If linux makes any emu run 1 FPS less then I say be gone with it.  I need smooth emus not linux.  That is why the GP32 had good performance on a 166 MHz machine.  Every CPU cycle was used for the emu not some bloaty OS.

You must be joking! :eek:

Linux is not "bloaty" at all (but I can understand your diffidence, if you are accustomed to windows ;) ).

Also, if you boot without the OS, you will need to reimplement half of it (to read the filesystem, at least)...


It is more bloaty than what was on the GP32. Any speed gains from the slightly faster CPU will be eaten up by linux putting us back at GP32 speeds. The idea is that we want faster performance not the same, so for that linux must go.
 
Last edited by a moderator:
The realy question is just how much does the 2X version use and from what it sounds like people are saying it's not really taking as much as you think unless it's actually running something.

I'm taking it to mean that removing Linux from the equation means coding extra things like reading the SD card slot or just plain being able to save games.
 
I really think people are jumping to conclusions about the effects of “Linux” on the system. First off, as always people are confusing Linux with GNU/Linux, one is a kernel and the other is an operating system. The Linux kernel used for embedded devices certainly doesn’t have much in the way of “bloated” and should be fairly comparable to the GP32’s kernel in that regards. If the kernel is bloated that’s nothing a tweak and recompile session can’t fix. (If GPH doesn’t release the kernel source there will be hell to pay) As for the basic utilities used for file management, and configuring the system, they might have some perceivable overhead where it might be worthwhile to avoid loading them, but that’s not Linux now is it. The thing to remember is that the ease of development gained by having the Linux kernel take care of the extremely low level stuff is invaluable. I think the reasonable conclusion is this; it’s going to be just like it was on the gp32. GP32 Kernel Overhead = Linux Embedded Kernel Overhead. If your application didn’t required touching the bare metal on GP32, chances are you’ll be just fine running under Linux. On the other hand, if your application did require booting directly into it’s own environment without loading any of the GP32’s stuff – well then you might very well have to do the same thing on the GP2X. Of course this admits that directly accessing the hardware is more efficient during execution; however just keep in mind how vastly more efficient using Linux is during development. It’s a balance and both have their place.

-Final Thought-
I see the best option as tweaking the hell out of the kernel that GPH provides to give us the best possible kernel for the device with very little overhead. The time of those with “bare metal” expertise would be best spent there and not on writing drivers for individual programs.
 
DaveC posted on Oct 11 2005 at 02:12 PM said:
It is more bloaty than what was on the GP32. Any speed gains from the slightly faster CPU will be eaten up by linux putting us back at GP32 speeds. The idea is that we want faster performance not the same, so for that linux must go.

I'm getting the feeling that linux scares you :)
 
Last edited by a moderator:
So maybe this kernal of linux will be like the super small Windows kernal that the Xbox uses for it's OS? Maybe it isn't the best comparison but it was my understanding that the Xbox uses a basic Windows 2K kernal or something along those lines. I don't know. I'm not a programmer (as if that weren't obvious) but if Skeezix and the other talented coders on this forum tell me not to worry about Linux kernals slowing down performance then I will take their word for it. I think things will be just fine.
 
Back
Top