Looking into the N64's reprogrammable vertex processor, the RSP, it reminded me of early Radeons in some ways, but then it hit me: it's way more similar to the Cell SPUs in PS3.
- highly performant streaming processor with native 128-bit vector operations
- can only access small local memory, requiring data to be DMA'd in and out
- runs in parallel, with somewhat similar notifications
- fully reprogrammable
- fast but hard to program, and so not many titles made proper use of it
Kinda funny. I wonder if Sony knew when designing it.
N64 RSP similarity to Cell SPU
Re: N64 RSP similarity to Cell SPU
For comparison, how similar are the RSP and the Cell SPEs to the vector units in the PlayStation 2 Emotion Engine, the Tom CPU in the Jaguar, or the second SH-2 in the Sega Saturn? Because those are the comparisons I make when discussing programmable vertex shaders on fifth and sixth generation consoles.
Re: N64 RSP similarity to Cell SPU
I have no experience with any that you listed, but at least SH-2 did not have vector instructions according to quick googling.
Re: N64 RSP similarity to Cell SPU
Could you please share some links of these comparisons?tepples wrote:Because those are the comparisons I make when discussing programmable vertex shaders on fifth and sixth generation consoles.
Sounds interesting!
Re: N64 RSP similarity to Cell SPU
It appears it's a great match to the Emotion Engine vector units as well, so there's the Sony continuity. The SPU similarity is useful though, as there is a great amount of public literature on SPU techniques, many of which should be transplantable here.
Re: N64 RSP similarity to Cell SPU
I haven't done any detailed comparison among these architectures, only mentioned them in passing as early examples of platforms that run what we now refer to as vertex shader programs.Fisher wrote:Could you please share some links of these comparisons?tepples wrote:Because those are the comparisons I make when discussing programmable vertex shaders on fifth and sixth generation consoles.
Re: N64 RSP similarity to Cell SPU
The second SH-2 in the Saturn/32X didn't have any specific purpose. It's identical to the main CPU.or the second SH-2 in the Sega Saturn?
- rainwarrior
- Posts: 8731
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: N64 RSP similarity to Cell SPU
From what I understand, the original plan for the PS3 was to have 2 cells, one of which would have taken the place of the GPU as a fully programmable renderer. They worked on writing the default SPU renderer implementation for a while, but failed to come up with something useful enough, so they gave up on the idea and use the nVidia GPU instead.
Intel still continued research along those lines, though, and the project was called Larrabee, but they never really got it up to snuff and was eventually abandoned.
The PS3's SPUs were very good for doing vector geometry processing, and eventually a lot of games basically used them to mostly replace the GPU's vertex shaders to let the GPU spend more resources on pixel shaders. However, I don't think this technique was widespread at first. That was more of a thing that was discovered to be effective over the lifetime of the console, and a technique that Sony disseminated to developers later on.
The SPUs were not good at pixel shading (the lack of an effective texture cache is, I believe, the big reason the Cell GPU idea never took off), but they did happen to be very effective for full screen post-processing e.g. bloom/blur effects), or compositing "deferred rendering" passes, etc. stuff that could access the whole screen buffer in linear order. That kind of technique was another thing that Sony started to recommend later in the life of the PS3.
I don't think they really foresaw either of these uses, though. The initial assumption seemed to be that the GPU would be most efficient for rendering tasks. Actually a lot of time at earlier conferences I attended was focused on ways to structure your gameplay code in SPU parallelizable ways. Unfortunately this was also not very helpful advice if you were already deep into your project, most of this advice wasn't effective without up-front planning.
As far as similarity to other vector processing units that preceded it, I think that had been gradually developing over about 10 years already, I don't really know the N64 architecture but around the same time you had MMX being introduced to Intel CPUs, marketed explicitly for "multimedia". It was clear for a long time that there were a lot of media related things that could be effectively parallelized with vectors.
I think Sony was sold on the idea of the Cell because it was demonstrably a very powerful processor, and I don't think they really knew that it was going to be quite as difficult as it turned out to work with for games. I think they assumed developers would get used to it and eventually that power would shine through, but that ended up being very slow going, especially since so much became cross-platform (esp. both being PowerPC architectures and having somewhat similar GPUs it was more viable than ever to develop for both of these platforms at once), I think that stifled research for most and left it mostly in the hands of PS3 exclusive developers. That learning period was probably a whole lot longer than Sony was planning for.
Sony launched a folding@home client for PS3 at one point, and for a while it was a huge contributor to the project. It was a pretty good PR demonstration of the Cell's power at the time. (Eventually PC GPUs took back the crown on that one.)
Intel still continued research along those lines, though, and the project was called Larrabee, but they never really got it up to snuff and was eventually abandoned.
The PS3's SPUs were very good for doing vector geometry processing, and eventually a lot of games basically used them to mostly replace the GPU's vertex shaders to let the GPU spend more resources on pixel shaders. However, I don't think this technique was widespread at first. That was more of a thing that was discovered to be effective over the lifetime of the console, and a technique that Sony disseminated to developers later on.
The SPUs were not good at pixel shading (the lack of an effective texture cache is, I believe, the big reason the Cell GPU idea never took off), but they did happen to be very effective for full screen post-processing e.g. bloom/blur effects), or compositing "deferred rendering" passes, etc. stuff that could access the whole screen buffer in linear order. That kind of technique was another thing that Sony started to recommend later in the life of the PS3.
I don't think they really foresaw either of these uses, though. The initial assumption seemed to be that the GPU would be most efficient for rendering tasks. Actually a lot of time at earlier conferences I attended was focused on ways to structure your gameplay code in SPU parallelizable ways. Unfortunately this was also not very helpful advice if you were already deep into your project, most of this advice wasn't effective without up-front planning.
As far as similarity to other vector processing units that preceded it, I think that had been gradually developing over about 10 years already, I don't really know the N64 architecture but around the same time you had MMX being introduced to Intel CPUs, marketed explicitly for "multimedia". It was clear for a long time that there were a lot of media related things that could be effectively parallelized with vectors.
I think Sony was sold on the idea of the Cell because it was demonstrably a very powerful processor, and I don't think they really knew that it was going to be quite as difficult as it turned out to work with for games. I think they assumed developers would get used to it and eventually that power would shine through, but that ended up being very slow going, especially since so much became cross-platform (esp. both being PowerPC architectures and having somewhat similar GPUs it was more viable than ever to develop for both of these platforms at once), I think that stifled research for most and left it mostly in the hands of PS3 exclusive developers. That learning period was probably a whole lot longer than Sony was planning for.
Sony launched a folding@home client for PS3 at one point, and for a while it was a huge contributor to the project. It was a pretty good PR demonstration of the Cell's power at the time. (Eventually PC GPUs took back the crown on that one.)