You should have basic knowledge of software development and adept at Windows OS. All of the tools discussed are available on Windows 7+ but the newest features are on Windows 10. It helps to know concepts such as memory management, CPU usage, single vs. multi-threaded application but it is not neccessary as we cover why these metrics are important to your application's overall power consumption.
- [Voiceover] For this course, you should be familiar with your own application source code. I'm going to dive into the source code for two video game applications. So in order to reproduce what you see here for your own application, you’ll want to be as familiar with your source code as possible. Also three out of the four tools we discussed deal with the Windows command prompt. So you’ll want to know how to run the command prompt as admin. And it really helps if you have used command line tools with command line options before. Since we will be focusing on two video game applications, you’ll want to know some simple gaming concepts, such as frame rendering/updating a scene, VSync, and FPS, the frames per second.
The last important concepts you should know are the C- and P-States of a CPU. Now, C-States are CPU sleep states, meaning when the CPUs not being used, it will go into a lower powered state where features are turned off, such as turning down the core clock and flushing caches. The higher the numbered C-State, the more features are turned off and the CPU is consuming less power. C0 is the active state, where the CPU is working and when you get to C6 and higher, the CPU clock is essentially off.
P-States, on the other hand, are CPU frequency states. P0 is when the CPU is active and working at its highest frequency, meaning it's really working. The higher the number of the P-State though, the lower the processor frequency becomes. For example, say P0 is the processor working at 2,600 Megahertz, but at P8 the processor frequency is only 1,000 Megahertz. In short, the higher the C- and P-States are, the less power the CPU is consuming.
I'm going to touch on several topics in this course that have a much larger scope than what will be discussed. While it's not necessary to complete this course, I recommend that you Google some of these terms to gain a better understanding of the topics and how they fit together. I’ve already discussed CPU C- and P-States at a very high-level, but a whole course could be dedicated to these two concepts. Doing some additional research on what C- and P-States are will give you a better understanding of the broader topics. The other terms to Google are context switches, interrupts, and a Windows operating system timer tick resolution rate.
I discussed the Windows OS timer tick rate in chapter two. But Googling these terms ahead of time will really help give you a jump start on the course and make the learning curve easier. Now for the system requirements. You will need a Windows operating system seven or higher preferably Windows 10, since the latest features of these tools are only available on Windows 10. You will also need to have a machine with an Intel core processor. This is because two out of the four tools will simply not work if you do not have an Intel core processor.
Lastly, you’ll need an Internet connection so you can grab Visual Studio 2015 Community Edition. This is the IDE we used to dive into the source code and make changes to the two video game applications. Also because one of those video game applications is an XNA- based application, you’ll need to grab the XNA Game Studio Refresh for Visual Studio 2015. You will also need a program that can run .CSV, comma separated values files, like Microsoft Excel or LibreOffice.
And of course when we go over the tool installations, you will want to grab those as well.
With these diagnostic tools and some efficient programming, you can reduce your app's power consumption while improving its response times. In this course, Thomas Pantels introduces a handful of tools used to measure and optimize power consumption. You will see demos on how to use the Intel Power Gadget, Windows Performance Toolkit, TypePerf, and SoC Watch, along with some simple coding tips for making any Windows app more energy efficient.
- Collecting and analyzing power data with Intel Power Gadget
- Implementing a rendering state machine
- Collecting and analyzing data with the Windows Performance Toolkit
- Understanding idle states, call stack walking, and thread activity
- Windows OS Timer Tick Resolution Rate change
- Optimization techniques to make your app power efficient
- Collecting, analyzing, and comparing data with Windows TypePerf and SoC Watch