Just in time for the launch of Intel's QX6700 Quad Core processor, Valve Software held their third Hardware Editor's Day in beautiful Bellevue, Washington USA. The subject of Multi-Core processing was on the agenda in their "Source" game engine, which powers games like Half Life 2, Lost Coast and Episode 1.
There has been plenty of talk in the industry of late debating whether or not we really need Dual Core let alone four CPU cores. In our Intel QX6700 processor article, we concluded that it was probably worth waiting until investing big bucks in Intel's latest processor, as the average user will not see much of a gain in performance by moving to four cores. Right now, CPU technology is ahead of software and the industry needs to move quickly to catch up to the hardware - they are doing it but it is taking some time. Valve is one company who understands this and is quickly working to add Multi-Core processing into their Source gaming engine and all of their very successful gaming titles.
Sure, there are games and applications out there which are able to take advantage of Multi-Core but they are currently few and far between. In the future, Multi-Core will be a more feasible option as the software will be there to take proper advantage of the technology. For instance, you'll see massive multi-core processor systems (even to the point of 80 cores and above in 2011 according to Intel) which are able to assist in counter-terrorism - such as being able to identify known criminals over surveillance video and even detect what they are saying and then translate it into another language for you.
All of that is many years ahead though and right now we are interested in what type of advantages we can see today or in the coming months, especially for the gamer. ID Software added multi-CPU support for Quake 4 in patch version 1.2 and above which saw frame rate performance improvements of around 25% and above. Valve intends to add Multi-Core CPU support to their Source engine in Q1 next year before the release of Episode 2. Although besides pure frame rate improvements, Valve are not just thinking about the FPS numbers, they want to improvement the overall game play experience with vastly improved AI and physics.
We were invited to the third Hardware Editor's Day at Valve's offices where members of the press were told about their scary yet exciting Multi-Core adventures over the last 10 months. After flying half way around the world, they told us their plans for implementing Multi-Core technology into the Source engine and exactly what benefits it will provide for gamers.
If you are at all interested in the future of computing, especially when it comes to Multi-Core processing, do read on!
Different Methods of Threading
Throughout the presentation, Valve mentioned that implementing Multi-Core processing technology into Source was very exciting but equally scary and challenging. Even for one of the most talented gaming houses in the world, adding in this technology was quite an exercise and a real challenge.
Valve spent many months and pain staking hours trying to work out the best method of implementing Multi-Core into their games - there are millions of lines of code which need changing and that's no easy feat. There are a total of four methods which were discussed and comprehensively tested by Valve and we'll give you a quick run down now on what was discussed in the board room.
Only a single method could be chosen and we'll tell you why a certain method was selected by Valve over another and why others were fully tested but were found not feasible for implementation in the Source engine.
- Single Threading
Single threading (single core) has been around forever and it is the easiest method of the lot. You only need to program for a single core and it is a simple task but now it is obsolete and the rewards in terms of improved experiences for the gamer from single threading are not existent.
This method of threading has been around for ages and game developers know it back to front. Now though for developers like Valve, it's time for them to put on their thinking caps, push their brains to the limits, spend a lot of cash and work out the absolute best method of threading which will reap the best rewards for gamers using the Source engine.
- Coarse Threading (Multiple Single Threads)
This method of threading is a little more difficult than single threading but not all that advanced in its procedure. It places whole systems on a certain core. For instance, rendering is performed by Core 0, AI is performed by Core 1, physics is performed by Core 2 and so on. In this case, you're keeping each task individualized to a certain core - this type of technology is more difficult than single threading but isn't that hard to program and hence the ending results aren't too impressive.
Valve never intended to use this Multi-Core implementation in Source but still they felt it important to experiment with it. They noticed performance improvements of around 1.2x in real-world testing (2x using contrived gaming maps) using this method but quickly worked out it wasn't the most effective method of threading in terms of rewards for the overall gaming experience.
For one, once the number of cores on the CPU out numbers the amount of game systems required (AI and so on), the method quickly becomes obsolete as the CPU cannot be 100% utilized and that is one of the most important factors when choosing a threading method as stated many times to us by Valve.
- Fine Grained Threading
The next method which Valve tested was more difficult than Coarse Threading. The idea of this method is to take many identical tasks (data operations) and divide the work across all of the cores on the CPU.
For instance, you have 1000 operations which need to be completed - it simply delegates those operations to each core. So for the new Intel Quad Core processor, 250 operations are sent out to each core for completion. This type of threading scales well which is good news for future processors which come with 8 or 16 cores (and more) but at the same time it is difficult because Valve must make sure that each operation is completed on time by each core as that data may be required by another core and so on.
While this method scales brilliantly (as you can see from graph above) even to the point of the estimated 32 core performance, it was seen to have too many possible problems and difficulty and was marked off the list of possible threading methods.
- Hybrid Threading
The final method is Hybrid Threading and it is the method which Valve finally decided to use for implementing Multi-Core processing into the Source engine. It provides the best rewards in terms of scalability, CPU utilization and performance improvements as it the most difficult method of threading.
It is the most difficult of the lot because it uses a mixture of Coarse and Fine Grain threading technologies - Valve saw the advantages of each threading method and put them all together to create Hybrid threading for their Multi-Core technology implementation needs.
So, from the Coarse threading method, you have certain systems which can be put on a certain core or in this case, cores. For instance, Valve will place the sound processing on a single core. It is happy there - it doesn't need to interact with the other cores and data operations. Then using the method of Fine Grained and Coarse threading combined together, it can intelligently decide which cores handle which operations. Unlike Fine Grained threading alone, the operations (be it AI, physics, rendering or whatever else) can be sent out for completion by multiple cores, which means that all the cores in the computer can be utilized, all of the time. 100% CPU utilization was one of the key factors for Valve and they managed it with Hybrid threading.
In the future when CPU's are released with more than four cores, this type of threading will be able to be utilized 100% just fine as it uses the Hybrid method is able to scale to "N" amount of cores. Perfect!
We are truly in a Multi-Core processing world now and this type of Multi-Core implementation by Valve is good news for gamers as the big bucks you spend on brand new uber processor with X amount of cores will actually be able to be utilized. It will be able to provide you with plenty of cool new effects and make the game seem even more true-to-life such as individual shadows for each character in the game and even change the shape of the body of the character depending on if he/she was shot or kicked or whatever. Kick ass!
Benchmarking Hybrid Threading
After the presentation we were all given a copy of the Hybrid threading application to take home and benchmark.
The benchmark comes with a number of tests which are able to give us an indication of the Multi-Core performance which Valve was able to achieve using the Hybrid Threading method. We will provide the blue particle explosion test for our testing. We will run the benchmark for 60 seconds using FRAPS and provide Minimum, Maximum and Average frame rate scores. We did not move around during the benchmark - we simply stood still and watched the demonstration take place as this is the most consistent method of benchmarking since we are not using a regular timedemo.
Unfortunately I don't have a Quad Core processor for testing but we will be testing on an Intel Core 2 Duo clocked at 3.15GHz (450MHz FSB x 7) on Gigabyte DQ6 (Intel P965 chipset) with 2GB of RAM and XFX GeForce 7900GS graphics card. We will test with two cores enabled and then with just a single core enabled to see the type of performance improvements made possible by Valve's Multi-Core threading technology.
These are simple demonstrations but they include some of the basic types of AI, physics and rendering which we can expect to see added to the Source engine and in Episode 2 next year.
The results speak for themselves - while not quite a perfect scalable jump in performance, we do see a very solid 34% increase in performance going from single core to dual core. Our tests were not exactly intensive - add these effects to the actual game and throw in a few enemies in an action packed scene and you'll see a greater jump in performance, that's for sure.
Other websites who attended the editor's day are seeing a Core 2 Quad processor double the frame rate of a regular Core 2 Duo processor. Valve even mentioned their current code should be good to go on an eight core processor - we haven't even heard anything about that yet, so it's clear Valve are looking well into the future.
It was interesting to note that Valve had no comments about AMD performance using their Multi-Core code. Gabe, one of the head developers and gaming developer super stars, even mentioned that with the current code they saw the Intel Core 2 Quad being 3.2x faster than AMD's Athlon X2 processor at the same clock speed. Valve is clearly fans of Intel at the moment and why not... they've got a rocking gaming processor finally.
So, the performance advantages of Valve's implementation of Multi-Core are clear. Not only will your games run faster by providing an improved frame rate but soon you will begin to see more interactivity, better physics and a greater sense of presence in the world.
In upcoming games using the Source engine and even possibly some older games such as Half Life 2, you'll see smoke which not only drifts around the room but hits the roof and floats out the door in a true-to-life manor. You'll see individual rain drops which put out fire one by one. You'll see advanced AI which delivers more advanced computer enemies. Since the game has more processing power through the additional supported cores, computer enemies will be smarter and even be able to perform tactical analysis against you - for instance, working out the best place to hide because it has the processing power to work out where you are in the world and even where you might go to next. Maybe sometime in the future the US government will contact Valve to create some practice tactical military software for them?
Dual Core improved frame rate, Quad Core will add new experiences to the game such as life-like realism. Valve are bored (somewhat) with the GPU now - as they said, they can already create a model on the GPU to look like a real person but that model cannot act like a real person, yet. Now they want to focus on the CPU and create extreme realism. People ask when Half Life 3 will be ready but as Valve correctly state, the changes that they've made (or are currently making) are as good as a new version of the game.
These Multi-Core enhancements will be gradually added into the Source engine and existing and future games using the engine, such as Episode 2 sometime early next year of Q1. There will be no single patch / update with the changes - they will be added over time.
This is a challenging, exciting, scary and expensive exercise for Valve but they see it as an important key for the future and success of their gaming titles. Gabe mentioned that this is the "most significant development to PC games since the advent of the 3D card..." The hardware is here to make games more realistic and true-to-life, right now game developers need to catch up and implement cool new features and effects into their games to make use of the hardware that is available. During our time with Valve, it is clear to see that they understand this point and that they are willing to put mega investment dollars into making sure that games based on the Valve engine properly and effectively make full use of Multi-Core processors.
So, who is looking even more forward to Episode 2 now? Hold your horses!