Contents
Performance Scaling With Cores: Introducing The SMOKE Framework
 
 
Printer-Friendly VersionPrinter-Friendly Version
 


Part of:



[More information...]
 

Latest News
spacer View All spacer
 
November 22, 2009
 
Video Game Watchdog National Institute On Media And The Family Shutting Down [11]
 
Modern Warfare 2 Infinity Ward's 'Most Successful PC Version' Yet [13]
 
New Tech, Design Details Of Project Natal To Emerge At Gamefest In February
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
November 22, 2009
 
Trion Redwood City
Sr. Environment Artist
 
Trion Redwood City
Sr. Evnironment Modeler
 
Sucker Punch Productions
3D Environment Artist
 
Sucker Punch Productions
Network Programmer
 
Sucker Punch Productions
Texture Artist
 
Sucker Punch Productions
Character Artist
 
Crystal Dynamics
Sr. Level Designer
 
Monolith Productions
Sr. Software Engineer, Engine - Monolith Productions - #113767
spacer
Latest Features
spacer View All spacer
 
November 22, 2009
 
arrow Upping The Craft: Susan O'Connor On Games Writing [6]
 
arrow Small Developers: Minimizing Risks in Large Productions - Part II [7]
 
arrow iPhone Piracy: The Inside Story [50]
 
arrow And Yet It Grows: Analyzing the Size and Growth of the European Game Market [5]
 
arrow NPD: Behind the Numbers, October 2009 [13]
 
arrow Reflecting On Uncharted 2: How They Did It [5]
 
arrow Sponsored Feature: Rasterization on Larrabee -- Adaptive Rasterization Helps Boost Efficiency
 
arrow Postmortem: Wadjet Eye's The Blackwell Convergence [2]
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
November 22, 2009
 
Time Fcuk - A Postmortem [2]
 
Accepting the Inherent Value of Games
 
Planckogenesis, Part II: Song Structure & Gravy Train [1]
spacer
About
spacer News Director:
Leigh Alexander
Features Director:
Christian Nutt
Editor At Large:
Chris Remo
Advertising:
John 'Malik' Watson
Recruitment/Education:
Gina Gross
 
Features
  Performance Scaling With Cores: Introducing The SMOKE Framework
by Orion Granatir
8 comments
Share RSS
 
 
November 26, 2008 Article Start Previous Page 3 of 3
 

Smoke Demo at Work

To demonstrate the framework’s power, Intel built a graphical demo that allows a viewer to visualize the framework’s performance advantage. The scene depicts a farmhouse under siege by meteor strikes, which are causing raging fires to erupt in the surrounding trees (see Figure 7).

Figure 7: The Smoke demo running with all eight processing threads active.

Figure 7. The Smoke demo running with all eight processing threads active.

The Smoke demo allows the viewer to control the number of worker threads that can access jobs created by the framework. Matching the number of threads to the total number of accessible threads in a system (eight threads with the Intel Core i7 Processor) offers the best performance, but Intel’s demo allows for running on multiple iterations of thread counts in order to see the performance gains the framework provides.

Figure 7 shows the demo running with eight total threads with a frame rate of 74 fps on our Intel Core i7 Processor-based test system. You can see that all eight CPUs in the performance box are evenly loaded, and the total CPU utilization is in the upper 80 percent range. You can also see the breakdown in workload for each system in the demo, including procedural fire, trees, AI, physics and so on.

Figure 8: The same area of the demo using four threads of processing.

Figure 8. The same area of the demo using four threads of processing.

Here we reduced the thread count in Smoke from eight threads to four and with the demo set at four worker threads as in Figure 8, the system uses approximately 46 percent of the total CPU power and an average frame rate of 49 fps—a 50 percent drop from our eight-thread performance.

Figure 9a: With only two active threads the performance of the demo is affected drastically.

Figure 9a. With only two active threads the performance of the demo is affected drastically.

Figure 9b: The same work can be done with just a single worker thread, although performance is affected.

Figure 9b. The same work can be done with just a single worker thread, although performance is affected.

Figures 9a and 9b show the same scene running with two worker threads and a single worker thread, respectively; performance drops more than significantly in each downward step. The demo runs more than 6.7x faster with eight worker threads than with a single thread, which proves that with a properly implemented multi-threaded game engine developers can really push performance on systems with any number of processing cores.

What Smoke Means Today

While we might immediately jump to the conclusion that this multi-threaded framework was built with Intel’s new many-core graphics architecture in mind, adopting Smoke-like designs in today’s gaming engines has clear benefits. With the Intel Core i7 Processor now on the scene, systems with four hyper-threaded cores (and thus allowing for eight logical threads) are going to be streaming into the gaming scene. Taking advantage of that processing power is definitely a challenge, and a design similar to what we have described in this article will allow game developers to use much more of the available processing horsepower than do gaming titles today.

Intel’s software development team built Smoke simply to demonstrate that an efficiently threaded gaming engine for any number of threads is possible. While we do not expect to see game developers pick up on the design directly and port this exact framework to their own games, Intel does present the code freely to all game developers at http://Whatif.intel.com, helping to educate the market on what is possible with today’s and tomorrow’s CPU hardware.

Having software that can completely utilize the hardware in our PCs is not just a neat technology topic, but is important to current and future computing on a higher level as the demands for power-efficiency and green technologies take a front-row seat in the global market.

And while we definitely need to see increased efficiency in all areas of processing, gaming is equally important and equally lucrative: After all, what’s the use of all the work without a little play? The Intel Smoke framework is a fantastic forward-looking example of how software developers can utilize Intel hardware for the best possible user experience.

 
Article Start Previous Page 3 of 3
 
Comments

SONG Vincent
profile image
What happen if you turn IA and particles off (fire, smoke, water in the demo) ? IA and particules can be parallelize quite easily and you can use as many core you want to compute them. And of course, when you turn the system from 8 to 1 thread, the game is slowing down...
The real chalenge would be using more complex scene to render from 1 thread to 8 threads. For exemple a farm 8 time bigger or with a lot more rigid body.

Orion Granatir
profile image
Hey SONG Vincent,
The Smoke team is working on another demo called Horsepower. This demo is supposed to show “perceivable difference" based on the number of available threads; very similar to what you are suggesting. In Horsepower, with an increasing number of threads the demo will be able to process more objects animating, using physics, and running AI. All of the source code for Smoke is available here: http://software.intel.com/en-us/articles/smoke-game-technology-demo. Please feel free to experiment with Smoke and I’d love to hear what you do with it.

SONG Vincent
profile image
Smoke handle the threading part while game developer divide game functions into small parallelizable task.
There is a lot of work to do for the last part :)
About Horsepower, it seems to be very interesting, can you give us more informations ?
I'am interesting about horsepower because I'am actualy working on a demo of my own with physics and 3D only, no animation (object or 2D), no particules, no AI. And of course I expected more objects to be compute based on the number of availlable threads :p

Orion Granatir
profile image
Each system in the Smoke demo can divide its task into smaller parallelizable parts. This is to help give some examples of how systems (like AI, graphics, fire, etc) can subdivide their work.

We will release Horsepower early next year. This demo adds LODs and multithreaded animation to the Smoke framework. The Horsepower demo shows a hilly scene with a large number of herding horses. The number of horses is dependent on the number of available threads and compute power. Just like Smoke, we are planning on giving away all the source code.

Keep me up-to-date on your demo. It sounds like an interesting project ^_^

SONG Vincent
profile image
Orion,

You can have videos of our demo over here http://www.acclib.com/2009/01/load-balancing-23012009.html
Like I said before it's just a technological demo, not a game demo :)

Rgds

VIncent

SONG Vincent
profile image
Orion,

On a corei7, I can deal with 4x more spheres on 8 threads (compare to 1 thread). Test is here : http://www.acclib.com/2009/01/load-balancing-corei7-27012009.html

Vincent

Orion Granatir
profile image
I'll have to take a closer look at your demo... nice scaling :D

Michael Yi
profile image
A couple of the developers on the Smoke team are working on the Smoke project, focusing on performance optimization. We'll be releasing articles, videos and blogging about what we did and what tools we used to extract the most performance out of Smoke. Hopefully, game
developers will find these series of articles helpful in reaching greater performance in their games.

We have already presented our first phase of optimization work on Smoke at the Intel Developer Forum in September. Luckily, the presentation was recorded and is already live on
Intel Software Network. Part 1 of the video can be found here: http://software.intel.com/en-us/videos/optimizing-a-video-game-smoke-fanning-the
-flames-to-really-make-it-burn-part-1/ which also has links to the rest of the presentation. The slides can be found here: http://www.intel.com/go/idfsessions

The presentation reviewed the demo code design and then showed a complete performance study, with step-by-step use of Intel tools:
- Benchmark and measure a baseline
- Find common memory and data race bugs with Intel® Parallel Studio
- Drill down into hot spots in the code, and highlight why they're hot with Intel Parallel Studio and Intel® VTuneTM Analyzer
- Find concurrency problems with Intel® Thread Profiler
- Show some speedups made in the code

We are planning to release the updates we made to the Smoke code in the coming weeks, which includes a performance speed up and a port of the code to
Visual Studio 2008. Both an executable and source code will be made available, as usual.

Please let us know if you have any suggestions for making Smoke better!


none
 
Comment:
 


Submit Comment