(PS3)SPUs vs cores(quadcore PC)

quick question: on the PS3, are the Synergistic Processing Units (SPUs) IBM talk about, the same as cores in general CPUs today?

Lets say I've got a quad core laptop from this year, would it be more powerful than the 8 SPUs that are said to be on the PS3? How many cores is the ps3 suppose to have then?
............................................________
....................................,.-‘”...................``~.,
.............................,.-”...................................“-.,
.........................,/...............................................”:,
.....................,?......................................................\,
.................../...........................................................,}
................./......................................................,:`^`..}
.............../...................................................,:”........./
..............?.....__.........................................:`.........../
............./__.(.....“~-,_..............................,:`........../
.........../(_....”~,_........“~,_....................,:`........_/
..........{.._$;_......”=,_.......“-,_.......,.-~-,},.~”;/....}
...........((.....*~_.......”=-._......“;,,./`..../”............../
...,,,___.\`~,......“~.,....................`.....}............../
............(....`=-,,.......`........................(......;_,,-”
............/.`~,......`-...............................\....../\
.............\`~.*-,.....................................|,./.....\,__
,,_..........}.>-._\...................................|..............`=~-,
.....`=~-,_\_......`\,.................................\
...................`=~-,,.\,...............................\
................................`:,,...........................`\..............__
.....................................`=-,...................,%`>--==``
........................................_\..........._,-%.......`\
...................................,<`.._|_,-&``................`\
closed account (o1vk4iN6)
Don't think it matters :\... You would program in terms of threads. It doesn't matter how many cores ps3 has, you'll probably only need 1 thread anyways. If you need more than one thread than you should possibly rethink what you're doing.
If you need more than one thread than you should possibly rethink what you're doing.
Really?
If you need more than one thread than you should possibly rethink what you're doing.

Haha, um... I disagree? Parallel processing is one of the most useful characteristics of multi-core machines. It's useful for everything but in many ways especially for games where being able to do things simultaneously is a wonderful boon.
OP: since you were talking about a PS3 vs a computer, my guess is you wondering about gaming? or are you going to try to integrate the SPUs into something? Basically, ignoring my earlier comment, SPUs are great... at one thing. If you trying to calculate double-precision numbers very quickly, then it's nice, but it's nowhere near as useful as a CPU.
SPUs are generally task specific, not much room for strange and weird things.

redundant man strikes again!
IMO, if your only using 1 thread, you should rethink what your doing.
^-- Pretty much, +1 IC++ (and another +1 for the name)
closed account (o1vk4iN6)
most single developers will probably never use more than one thread for a game. Using more than one thread effectively is one thing, I see it misused all the time and simply overcomplicating things. What would you need to do simultaneously for games ? Off the top of my head you wouldn't need to use multi threading for a generic 2d or 3d game. Sure multi threading is great but it isn't needed with the power of CPU's and GPU's. Please give an example of multithreading that's realistically implemented in indie games. Sure AAA use it but they are already pushing the hardware to the limit. Hell the xbox is 6-8 year old tech with only 3 cores and look at it go. It's still running an ATI x1900 series too. It's easy to say multi threading is better because that's common knowledge. Sure make your program that does 2 digit addition use multi threading cause it's better and faster ! Doesn't mean it should be used.
Last edited on
Why shouldn't faster and better be used? Did you just read what you typed?
how does that compare with xbox's 3 cores

@Blessman11: Honestly I don't know how you'de compare the speeds. Clock speeds are irrelevent because computers are built to be multi-purpose, x-box is app only, so's ps3 (but they have different apps). My point is: there's no comparison that can be done, since they all do different things. What are you thinking of using them for?

most single developers will probably never use more than one thread for a game


I hate to burst your bubble, but here in the land of the moderatly intelligent, most of them do use multiple threads for games. If you don't, you usually end up with a wonderfully laggy POS.

What would you need to do simultaneously for games?


Here's a good one: calculating physics on one thread, running user input on another, and running the GUI on the third. Look at that, without even thinking, I have 3 good threads running, wonderful ay?
Or simply if you need more processing power than what you can obtain by using a single core of your processor :-P
Well running 3 threads instead of one will by definition give you more processing power (assuming you have multiple cores, which almost everything does nowadays)
closed account (o1vk4iN6)
That is not true, having 3 threads and using a library that isn't thread safe (such as opengl) does not give you more processing power. So no, even if you have multiple cores it doesn't mean you have more processing power.

@Volatile Pulse

Shortest distance is straight line right ? So by your definition instead of a rocket taking a 5 year trip around the sun, orbiting it 3 times and using other planets to slingshot around, just to get to Jupiter. We should just scrape that complex path and draw a straight line to Jupiter, correct ? Your logic: yes. Mine: no.

It's only faster and better in some cases, creating 5 threads to do an addition is not one of those cases (obviously you didn't get the joke).

I hate to burst your bubble, but here in the land of the moderatly intelligent, most of them do use multiple threads for games. If you don't, you usually end up with a wonderfully laggy POS.


Again, any idiot can say that. Creating an efficient algorithm and storing data in a way to avoid unnecessary calculations is better than having a less efficient algorithm with multiple threads.

Graphics libraries such as opengl can only operate on one thread, so please tell me how adding another thread will increase the FPS, read: it doesn't.

So no, you can still create a single threaded game and have it run at a stable FPS (see: xbox 1, gamecube, ps2), so please stop talking out of your ass.


Here's a good one: calculating physics on one thread, running user input on another, and running the GUI on the third. Look at that, without even thinking, I have 3 good threads running, wonderful ay?


Terrible example.

Physics depends on user input (ie steering for a car). You can instead put user input in the same thread as physics, that way you are not using up CPU ticks running an infinite loop and/or avoiding potential timing issues by using a sleep command to try to minimize those CPU ticks. Having physics and user input in one thread is a more efficient method as user input only needs to be calculated before physics calculations are started. The GUI (i'm assuming you mean rendering the game) can't be done until the objects' physics are calculated. Therefore all these can be put onto one thread without anything bottlenecking the other as each is dependent on the other and can't be started until the other is completed.

So yes, you are a wonderful example of one of those people that misuse multi threading, achieving no gain in performance by using it. Simply using up resources that could be doing something meaningful instead.

Using multi threads to decompress game data, which would need to be compressed to save space on a game disc (not so much an issue now), is a better example of how a game could use multi threading.
Last edited on
http://www.gamedev.net/topic/619863-multithreading-for-games/

Do me a favor, read the above thread --^ (I pointed, just in case)

Now, I hope you're moderatly competent at programming, and I have to tell you that if you keep on your ONE THREAD business you're gonna end up with terrible software (or none, depending).
Seriously, assuming a standard 4 core computer, how would only using one core benefit you? I mean, you know math right? 1<2 and 2<3 and 3<4 therefore 1<4. Seriously, if you aren't sure, or it's opinion, look it up.
closed account (o1vk4iN6)
Good to know you can at least use google but are too lazy to even read the thread and come up with your own post. I have a little more respect for you, not that much so don't get excited. If you indeed read the thread you would see how silly it was as most of the posts are agreeing with what I am saying.
Last edited on
Have you guys actually worked on any professional dev kits before? I can't disclose this (I'm currently at uni).

I can't even talk about any of the specific details in the documentation, but hopefully you get where I'm coming from. At the same time, I'm kind of feeling like I'm running around circles since I can't really seem to get any concrete understanding over the matter.

Besides having to dig through the docs provided which I'm not really looking forward to for such a simple curiosity, is there any article that talks about the "power of the cell" objectively.
Last edited on
If you need more than one thread than you should possibly rethink what you're doing.
IMO, if your only using 1 thread, you should rethink what your doing.

These are almost equally poor statements, I say almost due to the "possibly" included in the first one.

Threading is indeed a powerful tool in a programmer's arsenal but as the saying goes "with great power comes great responsibility" and as such one should think and plan carefully over whether or not it should be employed as a solution to a problem.

Threading should neither be completely disregarded, nor used willy-nilly. As with all tools threading has its uses, but likewise not all problems are best solved with threading. A screwdriver is a useful tool but you shouldn't use it to hammer in a nail, but if you've written off the hammer as a useful tool or just choose to use the screwdriver instead (e.g. "Threading should/shouldn't be used") then you're forced to makeshift a way to use an inferior tool to get the job done.

I can see where Xerzi may be coming from, in that threading should not be a default for improving performance, however on the flip side there are plenty of areas a game can benefit from threading. For example, should rendering always have to wait every time the event manager needs to distribute events? Or while a new music file is being loaded?
About the initial question : The main PPC core of the CELL is capable of running 2 threads simultaneously, so that would be similar to 2 cores of a PC. The SPE are more 'simple', with 'brute' power. If i recall, you can do operations on 128 bit data, 2 operations on 64bit, 4 on 32bit, etc, at once so it is a good vectorial processor, but has no Out Of Order execution for example . On the PS3 particularly, i think 6 of the 8 SPEs are available for user programs.
I'd say something will be faster on a Cell if you can run all the code with branching on the main PPC core, and have enough raw calculations to feed the SPUs.
It will all depend on what you need to do and how you program it. But without more details, i can't give you an opinion
Last edited on
Don't people use networking on another thread, even though they could use mutex? AI calculations could also be done on another thread, I think AI War does it this way because there is a lot to compute.
Topic archived. No new replies allowed.