I need some clarification and truth.

Greetings again. This post is to ask nicely to our Stardock Devs about Gal Civ III. I have been in Alpha and have logged over 1100 hours in GCIII. I rememeber reading that Frogboy said that Gal Civ III will utilize a thread for each ai in the game and that a system with 20 threads will process the ai 'faster' than a system with 4 threads. Which leads me to this recent article from Tweaktown about intels Skylake X line hopefully released near the end of this year. 


http://www.tweaktown.com/news/55971/intel-launching-next-gen-20-threaded-cpu-august-2017/index.html


I take issue with this paragraph.....


"We should expect Intel to launch its seemingly watered down competitor to AMD's revolutionary Ryzen processor - even compared to Intel's latest and greatest which is nearly a year away, with no mention of anything AI-related or next-generation over the current Z270 chipset, which is a much cheaper mainstream part. No games will use the will power of a 10-core processor, and there's only 24 PCIe 3.0 lanes, marking a shift away from multi-GPU setups (at least for now)."


My understanding is that both Ashes of the Singularity and Gal Civ III would make use of such a processor and benefit from it over say an I6700K. 



Would it be possible to hear from you tech folks at Stardock and clear it up?

72,098 views 3 replies
Reply #1 Top

I don't work at Stardock, but I'm a senior Software Engineer with experience in multi processing.

 

Stardock don't need to write any special code to take advantage of that not so revolutionary processor

(Seriously, read up on NVidia Tesla co processor if you want to see revolutionary,

but Tesla is for scientific applications and AI with a price tag above 5K$ for entry level)

 

Back to what Stardock need to do / are already doing.

They probably split the AI load across available threads

probably keep the main thread for core processing (GUI/etc)

maybe reserve another thread or 2 for special background tasks

so on a 6700K that still leave 5 threads to split among AI agents.

Now keep in mind the amount of work of those AI agents (civilizations)

will be asymmetrical and depend on the size of their empire and fleet.

 

Probably more efficient to use a R-Tree to identify hot zones

(this is basically like reducing time needed for AI compute by a factor equivalent

to taking the square root of the load, far more efficient than spreading across threads,

which will only divide by 20 for that not so revolutionary processor)

 

To give you an idea

let say ai processing is 100,000 operations

assuming you could spread evenly across 20 threads

that's 5,000 operation per thread

in comparison an efficient hot zone detection algorithm

will reduce that to 3,000 without distributing across threads

which you can still do

 

on your dream processor it would reduce further to 150 per thread

if split evenly. but it never split evenly.

and whatever ai is the largest will block your traffic !

you'll be lucky to gain 75% speed from threading on AI stuff.

(rather than 95% gain as that 20-thread pictures try to make you believe)

(that's 750 instructions instead of the unrealistic 150 instructions above)

As you can see algorithms matter a lot more than anything else

 

I even remember an incompetent team at school

that managed to get their program running SLOWER on 10 processor

than on a single processor because they had a poor algorithm

where the processor were wasting all the time talking to each other !

 

the r-tree algorithm in comparison focus on splitting the battleground

(or any problem) into a tree like structure that's well balanced

then it try to estimate where to focus the effort for the results you want

(think a bit like occlusion culling when rendering a scene,

but here you want the ai to identify worthy and unworthy target

and avoid mistakes commonly seen in games

like mount and blade where the ai declare war on someone at the other end of the map)

 

Anyhow, I don't know how stardock wrote their AI

but that's the sort of things to think about for optimization

and "sanity/believability" of AI actions

 

you can also use a tree structure to control the fleets empire wide

splitting them between assault forces, patrols, etc

to avoid them moving in a disorganized manner that just waste cpu

 

In any case, the point is it doesn't matter if you got amd or intel under the hood.

you talk to windows for threading. we're not in the age

where Cormack (ID Software) had to write DOOM in machine language to get the 3D working in real time. LOL !

 

anyhow, I hope it reassure you

and give you all the TRUTH you wanted

 

 

Reply #2 Top

This was exactly what I was looking for. Thank you!