PDA

View Full Version : Xbox 360: Anyone confirm if this is true


pakpassion
26-Oct-2005, 19:09
at the fall processor forum, Microsoft's Vole said all Xbox 360 first generation games were single threaded, all of them. and multithreading would only come in second generation.

http://www.theinquirer.net/?article=27249


If this is true does this mean its because of shifting from a single core G5 to multicore machines which were still single threaded, to final hardware whcih was multithreaded?

pipo
26-Oct-2005, 19:10
Looks old to me, as COD2 is already confirmed running on all cores.

Edit - which can also mean they are using 3 single threads of course...

Shifty Geezer
26-Oct-2005, 19:11
Alpha kits were dual-core. An MS have said repeatedly that it's a doddle for developers to move code from one core onto another due to the SMP architecture. I don't believe the Vole. I believe the games, maybe not all, will use the other cores for something even if not 100% efficiently. Either that or MS are talking wafflepip about the ease of their SMP system...

scooby_dooby
26-Oct-2005, 19:19
Infinity Ward has explicitly stated they are using all 3 cores. End of story.

The also say it took them only 6 weeks to crack the multi-core approach, and after that is was simply implementation.

Shifty - Having symmetrical cores without question makes it easier to port code from one core to another, I don't see how that's up for debate. But, the larger issue is still synchronizing your code, and splitting your game engine over 3 cores, and that has little to do with whether the cores are symetrical or assymetrical.

pakpassion
26-Oct-2005, 19:20
Infinity Ward has explicitly stated they are using all 3 cores. End of story.

The also say it took them only 6 weeks to crack the multi-core approach, and after that is was simply implementation.

but the topic is not about multicores, its about multithreading

Shifty Geezer
26-Oct-2005, 19:36
Generally people expect use of multiple cores = use of multiple threads, rather than distributing one thread over several cores. I think that's a fair assumption.

aldo
26-Oct-2005, 19:45
So they are breaking down tasks and running them in parallel on cores instead of multi-threading.

-aldo

Edge
26-Oct-2005, 19:55
> "The also say it took them only 6 weeks to crack the multi-core approach, and after that is was simply implementation."

Right, and we don't know anything about the effective utilization of each core. They could have some minor routines running off two of the cores, and 90 percent of their code running on the main core.

Yes the thread is about multi-threading, but multi-core is easily 10 times more important than any multi-threaded code, considering multi-threaded routines only provide about 10 to 15 percent efficiency increase per core, will 3 cores can provide 300 percent efficiency (theoretical max.) increase over a single core.

Kryton
26-Oct-2005, 22:19
Generally people expect use of multiple cores = use of multiple threads, rather than distributing one thread over several cores. I think that's a fair assumption.

Please explain how you can do this? A process can be distributed over several cores because it consists of threads but threads are discretely scheduled blocks. You put a thread on one processor and leave it run, yes you can move it over processors (logical and physical) but you cannot go "split yourself in two and run on 2 cores". If it were that simple there would be no problem with going multicore.

Also, a lot of the threading that is used (which after lurking I haven't seen mentioned) is for OS services (Live etc.) and sound. Sound is actually processed on a core and simply piped to a DAC, neither PS3 or Xbox have specialist sound chips now.

Again I stick by the claim that a lot of developers are moaning due to the pardigam shift forced upon them. Game code can easily be broken into threads if you think about it properly - AI can be removed from the render thread, physics can be removed also (though some objects will require locks with the AI thread to process critical events i.e walls breaking), sound can be seperated (via a linked-list structure), streaming/decompression can be done seperately also (the game thread will need to pass on what to do via a linked-list structure also) and you have one game thread handling input/passing messages to these things. It does require engine re-writing though compared to PC/older consoles but if development kits contained dual core processors and the OS can schedule threads there is no excuse for not doing this long long ago in development.

scooby_dooby
26-Oct-2005, 22:24
>
Right, and we don't know anything about the effective utilization of each core. They could have some minor routines running off two of the cores, and 90 percent of their code running on the main core..

Actually we do know, they said 1 core for special effects, 1 core for AI, and 1 for the game engine.

dukmahsik
26-Oct-2005, 22:25
NBA 2k is confirmed to be running on all 3 cores but not sure about threading

Mintmaster
26-Oct-2005, 23:27
So they are breaking down tasks and running them in parallel on cores instead of multi-threading.

-aldo
Umm... that is multithreading.

Shifty, you don't know what you're talking about.

Shifty Geezer
26-Oct-2005, 23:42
Shifty, you don't know what you're talking about.
You're right, I'm a know-nothing doofus. But seeing as you won't bother to contribute a correction as to where I'm going wrong and just want to levy unconstructive criticism I'll just keep talking :p

aldo : There's two approaches to using multiple cores. You can run different processes on each core, or the same process spread across all the cores. eg. You can run physics on one core and audio on another, or the physics running on both cores and then follow that up with the audio when it's finished. I don't think anyone's said how they're using XB360's cores. We do know that something like 5% of each of two cores are reserved for system functions and audio. I think it's 5% of each. Might be more.

Megadrive1988
26-Oct-2005, 23:54
so *if* all the current Xbox360 games are only using 1 core (COD2 being an exception ?) then Xbox 360 should have quite a bit more 'legs' than Xbox. more software generations to see improvement. I think Xbox360 should last 5 years at least, before we see its successor.

Edge
27-Oct-2005, 00:20
> "Actually we do know, they said 1 core for special effects, 1 core for AI, and 1 for the game engine."

So if there are no special effects in the scene, the core is doing nothing. There is different levels of utilization, and as you can see with my example, can mean the core is doing nothing. Saying it does this or this, does not mean the three cores are being used effectively. In other words, what is the frame-rate benefit, if one core is doing "special effects"? How optimized is the code for the main core?

What's the frame-rate of this game? How does it compare to the PC version? Should be superior if using three cores?

scooby_dooby
27-Oct-2005, 00:33
It's locked at 60FPS.

Also, good luck finding any scenes that don't have extensive AI and Special Effects going on this game.

Have you seen the smoke? The Dynamic Weather? You NEVER play alone, always with a squad which means AI is always functioning.

Anyways, I don't get your point. You put out that the 2 cores might jyst be doing tiny amounts of code, leaving 90% on the main core. Well, that's completely false, they are using 1 core for all AI, the other for all special effects, one for the main game engine.

Seems to me your "theory" was obviously wrong and you should just let it go...

AlStrong
27-Oct-2005, 00:42
In other words, what is the frame-rate benefit, if one core is doing "special effects"?

What is the frame-rate benefit if the one core has to run other code that could have been left to one of the other two remaining?

Let's put it this way: A squire has to run 100 meters at 6 m/s while also carrying 50lbs of armour. This does not count the load of the long sword and shield. We can give this load to another squire who would otherwise have nothing else to do but stick his thumb up his ___. :wink:

So, who cares if the core isn't being utilized all the time? The point is that they are making use of multicore to spread the work. It's also a first gen title.

Bobbler
27-Oct-2005, 01:05
If they have more than one thread running, it is transparent (or should be) as to whether the OS sticks that thread on one core or multiple cores. You can sometimes force a thread to have an affinity to a certain core (I'd be surprised if MS didn't have this in their IDE/OS), but it isn't as if you can (unless you're trying) to make more than one thread but leave all but one core untouched.

I'd actually be surprised if any game launched just using one thread. If it uses more than one thread, than it will indefinately use more than one core. And devs have had plenty of time to at least split the game into a 2-3 threads -- that shouldn't be too difficult, especially considering every dev should have planned on it being multithreaded (to some extent) from the get-go.

Inquirer, yet again, is clueless.

Guden Oden
27-Oct-2005, 01:07
So if there are no special effects in the scene, the core is doing nothing. There is different levels of utilization, and as you can see with my example, can mean the core is doing nothing.
Your reasoning is very strange, and almost certainly logically flawed. So what if some core is doing nothing when there's nothing to do: there's nothing to do!

Saying it does this or this, does not mean the three cores are being used effectively.
Again you make little to no sense. The cores are certainly better used than if one or more are never used, right? I don't really understand what it is you want. Isn't it enough the cores run code when there's actual work to do, do they somehow have to invent stuff to do even when there's nothing to do?

In other words, what is the frame-rate benefit, if one core is doing "special effects"? How optimized is the code for the main core?
Certainly you must know those questions are impossible to answer for anyone except the developers themselves. You can assume that the SFX load off-loaded to a different core will result in better framerates than if one core would have had to handle the work along with something else.

ERP
27-Oct-2005, 02:10
It's extremely easy to use 2 cores, seperating rendering and gameplay logic, can be done in most codebases over a weekend.
tick audio on a 3rd and your "using all three".

Not a particularly efficient way to do it though.

AlStrong
27-Oct-2005, 02:34
easy there hardcore coder extreme :wink:

What do you think is an efficent use of three cores then?

Hardknock
27-Oct-2005, 03:15
For those that are obviously not reading the article:

MICROSOFT'S VOLE DRAMA ARMY DROPPED A BOMB today in a backhanded way. During the talk on multithreaded programming, Microsoft used the 3 core, 2 thread per core Xbox360 as an example. The bomb was that the first generation of Xbox titles, all of them, are single threaded. Not good.

Microsoft has stated themselves that ALL first gen games are not taking advantage of Multi-threading. There's nothing to debate. Take what was said for what it is.

Here's another interesting point in the article:

The scary part is that everyone tells me that the PS3 is harder to program for than the Xbox360, and the tools are nowhere near the quality of Microsoft's. That means that even with an extra 6 months of design time, the initial PS3 games may be worse.

ERP
27-Oct-2005, 03:17
easy there hardcore coder extreme :wink:

What do you think is an efficent use of three cores then?

Depends on the game, but you really need to break things down and start to look at data dependencies, you move your game to become a series of smaller tasks with minimal interdependency. You can then just farm out the smaller jobs to threads as they are free.

Unfortunately breaking things down into a large enough number of small enough pieces that are not interdependant requires a MASSIVE amount of work, and it's unlikely you can even move there incrementally. You have to loose (or at least minimise) the concept of r/w global state to do it right.

In the short term you'll likely see games running predominantly single threaded, exploiting trivial parallelism (like the stuff I outlined above) and then adding "jobs" to make things prettier and use up the CPU time, cloth simulation, hair, fluid, all the trivially parallel stuff.


I think the interesting stuff is dedicating the resources to the core gameplay stuff, but it's much harder.

darkblu
27-Oct-2005, 03:17
at the fall processor forum, Microsoft's Vole said all Xbox 360 first generation games were single threaded, all of them. and multithreading would only come in second generation.

http://www.theinquirer.net/?article=27249


If this is true does this mean its because of shifting from a single core G5 to multicore machines which were still single threaded, to final hardware whcih was multithreaded?

no, it just means you're trying to interpret some obsolete information you have zero understanding of.

darkblu
27-Oct-2005, 03:26
For those that are obviously not reading the article:



Microsoft has stated themselves that ALL first gen games are not taking advantage of Multi-threading. There's nothing to debate. Take what was said for what it is.

Here's another interesting point in the article:

funny, about 1 hour ago i was chatting to a xbox360 near-launch title* developer right after a short presentation by him in front of 150 developers explaining how his team were using the xbox cores in an efficient way. ..so the developer was a lying sob, apparently. gotta give him a call and tell him that right in his face..

* technically a next spring title, but i'd say maybe the most playable one on the show floor, together with kameo. the pgr3 build they had there oth shouldn't 've been shown at all.

Hardknock
27-Oct-2005, 03:35
funny, about 1 hour ago i was chatting to a xbox360 near-launch title* developer right after a short presentation by him in front of 150 developers explaining how his team were using the xbox cores in an efficient way. ..so the developer was a lying sob, apparently. gotta give him a call and tell him that right in his face..

* technically a next spring title, but i'd say maybe the most playable one on the show floor, together with kameo. the pgr3 build they had there oth shouldn't 've been shown at all.

Do tell, what is this 'mysterious' title? If you don't mind me asking :razz:

darkblu
27-Oct-2005, 03:43
Do tell, what is this 'mysterious' title? If you don't mind me asking :razz:

nothing mysterious here. full auto.

Hardknock
27-Oct-2005, 03:47
nothing mysterious here. full auto.

Cool, Full Auto is one of my most anticipated games. I was really bummed it got delayed. It's good to hear they are having such success with the hardware.

Edge
27-Oct-2005, 05:23
It's not an argument in logic, but a question on utilization, and code efficiency, which only the developer can answer here, and you guys can't. I should have worded things better, as I see I was not very clear, and the examples I gave were abitrary, and not related to what I think of Call of Duty 2, which looks very good.

robofunk
27-Oct-2005, 06:06
Bizarre Creations has said that they are using all cores for PGR3, even their "mini game" Geometry Wars : Retro Evolved is using mutiple cores because they have to simulate/calculate 60,000 points on the game's gravity grid.

http://www.bizarreonline.net/index.php?action=fullnews&showcomments=1&id=64

Just because they're using all cores doesn't mean they are used fully. The main game probably runs for the most part on one core. I bet you could probably still play the game without sound and Live/Dashboard intergration on only one core. I wish they gave us more insight into the physics of the game because that's what is most interesting to me.

AlStrong
27-Oct-2005, 06:51
Thank you for your thoughts on the matter, ERP :)


I think the interesting stuff is dedicating the resources to the core gameplay stuff, but it's much harder.

Do you mean using multiple processors to work on one thread :?:

[maven]
27-Oct-2005, 07:38
Do you mean using multiple processors to work on one thread :?:
Per definition, a thread can only (concurrently) execute on a single processor (and then only on one of the two hardware threads). The scheduler can move threads from core to core, but that is — if it happens often — a bad idea (L1 caches are unnecessarily polluted, L2 is shared, so that shouldn't matter).
What people or talking about (I reckon) is breaking down a single sub-system / problem into easily parallelizable (warning — word invention at work!) chunks (e.g. computing cloth physics for a character; if there's more than one character, then two threads can compute "physics" at the same time: one for each character) and then processing these independent chunks in parallel.
This is what many would call "low-hanging fruit" optimisation. To get to the size of work-units ERP mentions, is a completely different matter (and much harder).

BriefcasemanX
27-Oct-2005, 08:02
3 cores can provide 300 percent efficiency (theoretical max.) increase over a single core

i think you mean 200% :)

AlStrong
27-Oct-2005, 08:13
']Per definition...


ah... thank you. :)

Shifty Geezer
27-Oct-2005, 09:37
']Per definition, a thread can only (concurrently) execute on a single processor (and then only on one of the two hardware threads)...What people or talking about (I reckon) is breaking down a single sub-system / problem into easily parallelizable (warning — word invention at work!) chunks (e.g. computing cloth physics for a character; if there's more than one character, then two threads can compute "physics" at the same time: one for each character) and then processing these independent chunks in parallel.I think this is part of the problem in understanding distribution of workload, as the term 'thread' has more than one meaning, even if one of those isn't official (and I don't know if it is or not). A game could be broken into several conceptual 'threads' (subsytem or problem as you term it) such as physics, gameloop, AI and audio. Each of these 'threads' is then dealt with. As you found, you felt a need to make up words to satisfy the explanation because there's apparently no commonly known terminology. Hence 'thread' is used to referrence to difference aspects of programming.

one
06-Nov-2005, 04:31
For the sake of a quality INQ laugh, a new update is here
http://www.theinquirer.net/?article=27459
First, the kiosk an INQ writer spent quality time with looked horrible, and then a Microsoft multithreading guru stood up in front of a room full of reporters and said all Christmas games are single threaded.
We are developing Full Auto for XBOX 360 and it uses all 3 cores (and all 6 threads). It will be released in the launch window.
So, to wrap it all up, who was right? Both, some kiosks did look horrible others did not. We saw a horrible one. Also, a Microsoft rep did say those things to a room full of reporters, but it looks like he was only half right. As with any good story, there are lots of angles to it, shades of grey to the extreme, and no 90 degree angles. Now all I need to do is convince MS to give me a 360 with a correct monitor to use with it. I promise to spend weeks 'reviewing' games to death.

mckmas8808
06-Nov-2005, 04:47
For the sake of a quality INQ laugh, a new update is here
http://www.theinquirer.net/?article=27459

Again INQ proves that they are the jokes of the internet. Yet people here still give them so much credit for no reason at all.

Hardknock
06-Nov-2005, 06:52
Again INQ proves that they are the jokes of the internet. Yet people here still give them so much credit for no reason at all.

Did you even read it?

Actually the article was pretty good, and shows they have no problems correcting a previous story. Plus they gave the low-down on the Xbox 360 kiosks(with some looking like crap due to being incorrectly setup.) And even have quotes from developers about multi-threading. Although I know they can be wrong sometimes, this article in particular is very on point.

ERP
06-Nov-2005, 18:19
Thank you for your thoughts on the matter, ERP :)



Do you mean using multiple processors to work on one thread :?:


No I just mean multiple cores working on the core simulation. We dedicate a small percentage of one slow processor to this in most games today, but the way I think games will develop, I think that is going to change.

How about GTA3 (using it purely as an example) with a persisitent population, where what you do in the world can have a permanent impact.... Hold a guy up in the street and he remembers you, decimate an entire neighborhood and it might become a slum.

I don't know if we'll get there this gen, but the concept of an environment you can play in (and with) aswell as have traditional gameplay experiences in is very compelling, at least to me.