This week at SIGGRAPH 2014 Intel is showing a technology demo using Microsoft's upcoming DirectX 12 API that highlights the strong relationship between performance and power.
In the demo we render a scene of 50,000 fully dynamic and unique asteroids in one of two modes: maximum performance and maximum power saving. The application can switch between using the DirectX 11 and DirectX 12 APIs at the tap of a button. We are showing the demo in our SIGGRAPH booth running live on a Microsoft Surface Pro 3 tablet with an Intel® 4th Generation Core™ processor.
All of the results here were captured when the tablet was running in a steady, thermally-constrained state. This represents the experience of playing a demanding game for more than 10-15 minutes.
In the performance mode the application is allowed to run as fast as possible within the thermal and power constraints of the platform. Using DirectX 11, we see the following:
The image shows the frame rate (top left) and the distribution of power between the CPU and GPU. Toggling the demo to run on DirectX 12 shows a significant improvement:
Performance with DirectX 12 increases ~70% (from 19fps to 33fps). The power graph is the key clue to why this is happening. DirectX 12 is designed for low overhead, multi-threaded rendering. Using the new API we have reduced the CPU power requirement and thus freed up that power for the GPU.
To directly compare the power savings of DirectX 12, we also support a mode that locks the frame rate so that the demo does the same amount of work in each API. Toggling from DirectX 11 (on the left half of the power graph) to DirectX 12 (on the right) while keeping the workload fixed, we see the following:
Rendering the same scene with DirectX 12 uses less than half the CPU power when compared to DirectX 11, resulting in a cooler device with longer battery life.
These increases in power efficiency in DirectX 12 are due both to reduced graphics submission overhead and to an increase in multithreaded efficiency. Spreading work across more CPU cores at a lower frequency is significantly more power-efficient than running a single thread at high frequency.
Summary and Next Steps
With this demo, we have shown that DirectX 12 enables significant improvements in both power and performance. This demo was created to show the two extremes: fixed power and fixed workload. In reality developers can choose any desired blend of power and performance for their applications.
The main takeaway is that power and performance are inseparably linked. Conventional notions of "CPU vs. GPU bound" are misleading on modern devices like the Surface Pro 3. An increase in CPU power efficiency can be used for more performance even if an application is not "CPU bound".
We'd like to thank our partners at Microsoft for allowing us to show this early demo. We plan to release it publicly when Microsoft releases DirectX 12. Until then please watch both Intel’s and Microsoft’s twitter feeds (@IntelSoftware, @DirectX12).