Game Development Community

Multi core CPUs

by Bloodknight · in Torque 3D Professional · 05/03/2009 (4:37 am) · 14 replies

I noticed that T3D is still using only one core, this obviously has an impact on performance.

Are there any easy ways to fix this myself (compiler or VS settings)?

does GG have any intention of correcting this for stock engine or?

it seems a bit odd to me that a large portion of the game uses CPU rather than GPU yet only 1/4 or 1/2 of the available power is used.

#1
05/03/2009 (10:07 am)
I believe someone said they started using separate threads for stuff like sound. Eventually more will be added I suppose, but no changing your compiler settings won't change anything about it...
#2
05/03/2009 (4:07 pm)
Torque 3D does some minor threading, mostly in the rendering, but it still remains largely a single core engine. Building threading into a game engine is particularly difficult, and one of those R&D tasks we'll probably be trying to hone and prove effective before rolling it into the public product. This could be part of our 2010 release, or potentially as some kind of expansion later this year.
#3
05/04/2009 (12:47 am)
Just an assumption: You have an NVIDIA card, right?
Because unless I'm wrong, PhysX would otherwise run in its distinct thread normally.
#4
05/04/2009 (12:55 am)
I really hope this is high on GG's list of things to add/fix. A modern game engine that doesn't utilize multicore is a bit disappointing, but I realize they got other things to worry about as well.
#5
05/04/2009 (3:13 am)
I would absolutly love to see this implemented as soon as possible! Please schedule it. Thank you GG.
#6
05/04/2009 (3:22 am)
You make it all sound like it's something easy to implement and just has to be scheduled heheh...
#7
05/04/2009 (3:28 am)
Actually, to get basic multicore set up and run shouldn't take more than a month or so, and I'm sure they've been playing around with this in their R&D...

Now to get proper multicore where you'd get a good performance boost from it, then yes, its not that easy to implement. Again however, I'd like to think that this is something they've been working on behind the scenes.
#8
05/04/2009 (4:08 am)
Basic multithreading (I guess that's what you mean) takes 5 minutes, the issue is finding places that can benefit from it. And in a rendering pipeline it's kind of tricky, especially without moving to Direct3D 11. So yeah they can have the network, sound, input and graphics all in different threads, that's easy, but you don't get much of a boost from it (if any)...
#9
05/04/2009 (4:58 am)
The point here really is that T3D isnt using the PC to its full capacity, whats the point in having fast CPUs if the game you mnake uses only half of the capacity, simply put T3D us running slow on MY computer because it wont use all available power, i may as well get my 5 year old 2.5ghz single core athlon processor out since the performance will be the same :p
#10
05/04/2009 (5:08 am)
Sure, that's the point, just like 5 billions other possible optimizations. There are currently probably less than 5% of the AAA titles that ship that are completely multithreaded...
I'm not saying it's impossible, I'm just saying making it sound like it's something easy and simple and a matter of few weeks is pointless.
#11
05/04/2009 (8:16 am)
Properly supporting multicore is not a complier option, a 5 minute fix, or a month of development... its silly to think so.
#12
05/12/2009 (12:33 pm)
Well Visual Studio 2005 and 2008 support OpenMP Version 2.0.

Well you can join the beta for Intel Parallel Studio which support OpenMP Version 3.0 and can be used with Visual Studio C/C++.
#13
05/12/2009 (12:41 pm)
Multicore support isn't equal across the board. A while ago Intel came and did a multi-core workshop at GG and shared a lot of their workings with various game technologies on embracing multi-core usage. What is most obvious is that any concept of a single and across the board equal "Multi-core solution" is definitely an illusion. The multiple ways to go about it all have weaknesses and strengths, with some netted gains (and in some cases losses under certain circumstances). Seeing it as a feature bullet means nothing, how it is done and what sort of gains it nets under what circumstances (as well as minimizing the losses which include complexity increases in architecture) is what is important.
#14
05/12/2009 (1:12 pm)
One of the primary problems I think especially in Torque when it comes to multicore unleashing is that it would require two multithreaded solutions actually as it is not one technology but two.
One for the client half, meeting the requirements applying to client and a second different one for the server.

Thought I'm a bit unsure how much sense OpenMP makes in this scenario (dedicated single zone server).