by Anonymous Coward writes:
on Sunday November 18, 2012 @10:44PM (#42023663)
Posting anonymously, just because.
Speaking as a developer who's worked on the PS3, the Xbox 360 and the WiiU. The CPU on the WiiU has some nice things on it. But its not as powerful as the Xbox360 chip. I think N went to IBM and asked them: 'What's cheap to put on the chip?' and IBM said 'Well we have this sh*t that no-one wants.' and N said 'we'll take it.'. It does have better branch prediction than the PPCs in the PS3 and Xbox360.
The Espresso chip doesn't have any sort of vector processing. It does have paired singles, but that's a pain, a real pain to use. The floating point registers are 64 bit doubles, so when people talk about paired singles I assumed you split the register in two. No the registers are actually 96 bits wide, its actually a double and a single. To load it you have to load in your single, do a merge operation to move that single to the upper 32 bits, and load in your second one. This makes the stacks explode, because to save a floating point register in the callee takes three operations, and 12 bytes no matter what.
While the WiiU has 1 gig of RAM available to the game to use, the RAM is slow. The cache on the chip is also slow. We had tested out memory bandwidth between cache and main memory on the xbox360 and the WiiU. The main memory access on the Xbox360 is about 2x-4x times as fast as accesses the cache on the WiiU. Yes I mean that the external to the chip RAM on the Xbox360 is faster than the cache memory on the WiiU. I don't remember the full results but I think we figured out accessing the hard drive on the Xbox360 was faster than the RAM on the WiiU too.
The optical drive is also slow. I don't know for sure but it feels like the same drive that went into the PS3. And on the PS3 we used the hard drive to cache things to improve load speeds. Without a hard drive on the WiiU we can't do that.
I won't go into the OS, and the programming environment, but let me just say I hate programming for Windows, and I prefer programming on the Xbox360 to the WiiU.
While the GPU in the WiiU is better (probably because ATI doesn't make anything worse these days), they don't have the CPU and RAM to back it up. Who knows maybe things will be better from launch, but I'm glad to leave the WiiU behind.
I don't remember the full results but I think we figured out accessing the hard drive on the Xbox360 was faster than the RAM on the WiiU too.
Forgive me if Im skeptical of an AC claiming that a company who has been creating consoles for 30+ years managed to make RAM slower than disk access. That would be basically impossible to pull off even if you were specifically trying to do so; theres about 3 orders of magnitude difference between the speed of the two.
Cache vs RAM is also a bit hard to believe, but at least there youre only talking one or two orders of magnitude.
OP AC: I used to code for Wii. Haven't coded for WiiU. So I cannot tell, only extrapolating from what you are saying here.
However, what you are giving as info is mostly the same than Wii used to have. I expected they kept full compatibility between the WiiU and the Wii, so they could emulate the system. That probably explains the chips.
Your PS (Paired Single) experience is mostly what I would expect from a newbie assembly programmer. Sorry. Yes, it's very hard to code PSes but once you get the hang of it, it's very efficient.
As far as your memory experience, I would expect the WiiU to use the equivalent from the Wii, meaning they have a very fast internal memory, and a cacheless external memory. It's powerful if you understand how to work its magic, and you need to know how to use caches or other accumulators to transfer data.
Not saying it isn't a pain. It is. Especially if you want to code as a general purpose guy (big company), with compatibility on multiple platforms. Most multiplatform have one kind of memory, so it expects fast and efficient RAM for its whole game. However, if you code solely for the WiiU, and have a background in Wii or in GameCube, you'll feel right at home I'm sure. Read your comments, and it all rang bells.
LordLimecat: It would make sense if the WiiU uses the same system than the Wii. Wii uses 2 kind of RAM, first one is very quick for random access, but you have very little of it. Second one is very quick for sequential write access, but horribly slow for random read access. Depending on tests, you can get magnitude of slowness in that kind of RAM on Wii. Now, I don't have experience in WiiU (and even if I did, I would keep this confidential, to be honest), but I do feel in a familiar place.:)
-full disclosure- Work for EA, all info here was double-checked for availability in the likes of Wikipedia and Google. Opinions are mine.
What kind of RAM is it that has that kind of speed? Are you talking about flash memory? Even ancient, 15-year-old DDR200 RAM would be ridiculously fast compared to disk access, ESPECIALLY for random access (access time of ~100ns, which is ~50x faster than disk; transfer speed of ~1600MB/s, which is ~10x faster than disk). The discrepency is even greater with modern RAM, which is pretty cheap-- 3-10ns latency, and 6.5-13GB/sec transfer.
The ENTIRE POINT of RAM is that it has good random read characteristic
(Note: this is speculation, I never asked Nintendo about these, nor did I had any access to whatever internal documentation on RAM for the Wii - much less for WiiU)
Like I said, the 64M GDDR RAM of Wii is very quick, but optimized to be read and written in big chunks. It's not meant for per-byte random access.
I don't have the specifics at hand, but RAM is read in big chunks (32 bytes, 256 bytes, I really don't remember), and kept in cache from there. As long as you stay in that cache, it's all right.
Forgive me if Im skeptical of an AC claiming that a company who has been creating consoles for 30+ years managed to make RAM slower than disk access. That would be basically impossible to pull off even if you were specifically trying to do so; theres about 3 orders of magnitude difference between the speed of the two.
Mod parent up and grandparent down. It is mind-numbingly ludicrous to believe main memory access on the Wii U is slower than disk accesses. If that were true, there wouldn't be any point in h
PS3 (Score:1)
Would it be better than a PS3 in terms of processing power?
Re: (Score:2)
In terms of CPU, no. In terms of RAM and GPU, yes.
Re:PS3 (Score:5, Informative)
Speaking as a developer who's worked on the PS3, the Xbox 360 and the WiiU. The CPU on the WiiU has some nice things on it. But its not as powerful as the Xbox360 chip. I think N went to IBM and asked them: 'What's cheap to put on the chip?' and IBM said 'Well we have this sh*t that no-one wants.' and N said 'we'll take it.'. It does have better branch prediction than the PPCs in the PS3 and Xbox360.
The Espresso chip doesn't have any sort of vector processing. It does have paired singles, but that's a pain, a real pain to use. The floating point registers are 64 bit doubles, so when people talk about paired singles I assumed you split the register in two. No the registers are actually 96 bits wide, its actually a double and a single. To load it you have to load in your single, do a merge operation to move that single to the upper 32 bits, and load in your second one. This makes the stacks explode, because to save a floating point register in the callee takes three operations, and 12 bytes no matter what.
While the WiiU has 1 gig of RAM available to the game to use, the RAM is slow. The cache on the chip is also slow. We had tested out memory bandwidth between cache and main memory on the xbox360 and the WiiU. The main memory access on the Xbox360 is about 2x-4x times as fast as accesses the cache on the WiiU. Yes I mean that the external to the chip RAM on the Xbox360 is faster than the cache memory on the WiiU. I don't remember the full results but I think we figured out accessing the hard drive on the Xbox360 was faster than the RAM on the WiiU too.
The optical drive is also slow. I don't know for sure but it feels like the same drive that went into the PS3. And on the PS3 we used the hard drive to cache things to improve load speeds. Without a hard drive on the WiiU we can't do that.
I won't go into the OS, and the programming environment, but let me just say I hate programming for Windows, and I prefer programming on the Xbox360 to the WiiU.
While the GPU in the WiiU is better (probably because ATI doesn't make anything worse these days), they don't have the CPU and RAM to back it up. Who knows maybe things will be better from launch, but I'm glad to leave the WiiU behind.
Re:PS3 (Score:5, Interesting)
I don't remember the full results but I think we figured out accessing the hard drive on the Xbox360 was faster than the RAM on the WiiU too.
Forgive me if Im skeptical of an AC claiming that a company who has been creating consoles for 30+ years managed to make RAM slower than disk access. That would be basically impossible to pull off even if you were specifically trying to do so; theres about 3 orders of magnitude difference between the speed of the two.
Cache vs RAM is also a bit hard to believe, but at least there youre only talking one or two orders of magnitude.
Re:PS3 (Score:5, Interesting)
OP AC:
I used to code for Wii. Haven't coded for WiiU. So I cannot tell, only extrapolating from what you are saying here.
However, what you are giving as info is mostly the same than Wii used to have. I expected they kept full compatibility between the WiiU and the Wii, so they could emulate the system. That probably explains the chips.
Your PS (Paired Single) experience is mostly what I would expect from a newbie assembly programmer. Sorry. Yes, it's very hard to code PSes but once you get the hang of it, it's very efficient.
As far as your memory experience, I would expect the WiiU to use the equivalent from the Wii, meaning they have a very fast internal memory, and a cacheless external memory. It's powerful if you understand how to work its magic, and you need to know how to use caches or other accumulators to transfer data.
Not saying it isn't a pain. It is. Especially if you want to code as a general purpose guy (big company), with compatibility on multiple platforms. Most multiplatform have one kind of memory, so it expects fast and efficient RAM for its whole game. However, if you code solely for the WiiU, and have a background in Wii or in GameCube, you'll feel right at home I'm sure. Read your comments, and it all rang bells.
LordLimecat: :)
It would make sense if the WiiU uses the same system than the Wii. Wii uses 2 kind of RAM, first one is very quick for random access, but you have very little of it. Second one is very quick for sequential write access, but horribly slow for random read access. Depending on tests, you can get magnitude of slowness in that kind of RAM on Wii. Now, I don't have experience in WiiU (and even if I did, I would keep this confidential, to be honest), but I do feel in a familiar place.
-full disclosure- Work for EA, all info here was double-checked for availability in the likes of Wikipedia and Google. Opinions are mine.
Re:PS3 (Score:5, Funny)
I'm so sorry.
Re: (Score:2)
What kind of RAM is it that has that kind of speed? Are you talking about flash memory? Even ancient, 15-year-old DDR200 RAM would be ridiculously fast compared to disk access, ESPECIALLY for random access (access time of ~100ns, which is ~50x faster than disk; transfer speed of ~1600MB/s, which is ~10x faster than disk). The discrepency is even greater with modern RAM, which is pretty cheap-- 3-10ns latency, and 6.5-13GB/sec transfer.
The ENTIRE POINT of RAM is that it has good random read characteristic
Re: (Score:3)
(Note: this is speculation, I never asked Nintendo about these, nor did I had any access to whatever internal documentation on RAM for the Wii - much less for WiiU)
Like I said, the 64M GDDR RAM of Wii is very quick, but optimized to be read and written in big chunks. It's not meant for per-byte random access.
I don't have the specifics at hand, but RAM is read in big chunks (32 bytes, 256 bytes, I really don't remember), and kept in cache from there. As long as you stay in that cache, it's all right.
Also, th
Re: (Score:2)
Yes, it's very hard to code PSes but once you get the hang of it, it's very efficient.
Do you really end up coding PS in assembly, though? Shouldn't the compiler take care of all those problems for you?
Re: (Score:2)
Assembly. :)
I would guess compilers are interested in creating very good optimizers and use special features when this is mainstream, not a niche market.
Re: (Score:2)
Mod parent up and grandparent down. It is mind-numbingly ludicrous to believe main memory access on the Wii U is slower than disk accesses. If that were true, there wouldn't be any point in h
Re: (Score:2)
If the Xbox 360's hard drive was faster then the Wii U's ram, then you did something horribly wrong when measuring it.