Monday, July 9, 2012

Of the Energy Consumption of Graphics Cards

A long time ago, when narcissists could only stare at their mirrors for hours without being able to post thousands of self-portraits on Facebook, when every thought that crossed your mind was likely to die there without being tweeted the world over, the power consumption of graphics card was not deemed important. End-users cared about the operating temperatures of their devices, and their noise levels, but little more. Some of them did, however, engage in overclocking, and thus applications such as Furmark and OCCT were born. These made it easy to test the stability of overclocked cards, by pushing them to their functional and thermal limits.

But gradually, consumer computing became more mobile, just as high-end graphics cards became ever more power-hungry, reaching and, sometimes, even exceeding 300W. Naturally, end-users started caring about power, and reviewers began searching for ways to better inform their readers. They turned to commonly used stress tests (e.g. Furmark and OCCT) and measured the power consumption of graphics cards while they were running them. For a while, this proved useful: it gave consumers an upper bound for power draw (give or take a few watts, to account for the natural variability from sample to sample).

But hardware vendors were well aware of the increasing importance of power, and therefore started adding increasingly sophisticated control mechanisms meant to limit power to a certain level. When these were first introduced, reviewers noted that they did in fact cap power to the specified level, without apparently giving it much thought. By now, however, most of them have realized that power control mechanisms such as AMD's PowerTune effectively make stress tests irrelevant, since they do not stress GPUs anymore. At best, they still provide readers with an upper bound for power, but it happens to be, give or take a few watts, the card's thermal design power, which does not make this information very helpful.

In reaction, most reviewers decided to test power consumption in real video games instead, thus giving a more realistic idea of what cards may draw in real-world scenarios. But as Damien Triolet showed, the power draw of different cards relative to one another may be significantly different from one game to the other. More specifically, AMD cards seem to consume more power in Anno 2070 than in Battlefield 3, relative to their NVIDIA counterparts. A careful observer will further note that AMD cards perform better in Anno. One can therefore suppose that they reach higher occupancy of their computing units in this game, which leads to higher performance, but also higher power consumption. Finally, and even though their power consumption increases in Anno, their power-efficiency (relative to GeForces) increases as well. This makes sense, as it is generally better to have busy transistors than idle ones, sitting around and doing nothing more than leaking current. So higher performance in a given game tends to lead to higher efficiency as well (relative to the competition). In other words, performing well remains a good thing. That is reassuring, but there remains a problem: how can we determine the real power-efficiency of graphics cards over a broad range of games?

Perhaps there are trends and certain engines, certain types of games tend to favor one architecture more than the other, and perhaps there exist good representatives for each "class" of games, which may be used for power testing. But to my knowledge, no one has yet identified them, if they do indeed exist. And that is not the only problem. Indeed, while most reviewers do not specify the exact nature of the power figures they present, I believe they generally give the maximum instantaneous power draw recorded. This may be considered somewhat useful, as it gives some idea of the kind of power supply unit necessary to feed a given card, but it does not guarantee that no game will ever require more power. More importantly, it does not tell us which card consumed more energy over the length of the benchmark. Indeed, a card X may have drawn an average of 150W with a peak of 170W while a card Y drew an average of 130W, with a peak of 185W. Card Y may require a slightly more powerful PSU, but it is nevertheless more energy-efficient than card X.

The only possible conclusion is that reviewers ought to measure the total energy of each card they are testing, for each game they are testing, or their power consumption figures only give a very approximate, and possibly misleading picture of reality. This does, of course, increase their workload significantly, but the previous observations lead me to believe that it is necessary.

PS: Scott Wasson from The Tech Report has been using a rather innovative methodology for performance testing since last September. It is detailed here, it is very good, and I think every reviewer should adopt it. I do not know how he might feel about this, but he should welcome it—after all, imitation is the sincerest form of flattery, and good ideas are meant to be spread.

I should also note that while this entry only mentions graphics card, that is only because they can draw up to 300W, and sometimes even more with some of the crazier, low-volume models. Most of what I said holds true for CPUs as well, or really just about any component.

Friday, March 30, 2012

Tales of Woe of a Windows user

This woman is trying to empty a Windows folder. God help her.
I've not updated this blog in a long time, but today I'd like to share a painful experience. First, I'm an Opera user, and while I'm overall quite happy with the browser, it won't empty its disk cache on exit, even though it is supposed to. As a result, the cache tends to exceed 10GB after a while. When I first noticed this, I figured "OK, that's annoying but no big deal, I'll just create a shortcut to the cache directory on my desktop and manually empty it from time to time."

So I created the shortcut, but things didn't exactly go as planned. Opera breaks down its cache into many small .tmp files, so the cache directory often contains many thousands of tiny files. Now, as any Windows user is aware, simply deleting a file will actually send it to the recycle bin, but pressing shift at the same time will delete it for good. For some obscure reason that still eludes me, it is impossible to fully delete more than about 1200 files at once without going through the recycle bin, or at least my system refuses to do so and sends everything to the bin. I'm not sure whether Windows modifies the files in any way when sending them to the bin, but because they are so numerous in the disk cache, the deletion process takes forever. As if that weren't enough, it also slows the entire system down, and I still have to empty the bin afterwards to actually delete the files.

Needless to say, I quickly decided that this just wasn't an acceptable way of doing this, and I had to find something better. On most distributions of Linux, I just would have right-clicked in the folder, clicked Open terminal here or some similar option, typed rm * and pressed Enter, for a grand total of 2 clicks and 5 keys pressed. So I figured that doing something similar on Windows ought to be possible. It turns out that directly opening a PowerShell in a specific directory is impossible, so I had to open it at the root of my system, and then go to the desired directory. That sounds trivial, but PowerShell's auto-completion system is so terrible that it's actually quite a pain in the ass. Anyway, I finally reached the cache directory, typed Remove-Item *, pressed Enter, and finally my cache emptied itself correctly, without going through the bin, and taking a reasonable amount of time.

But this still wasn't good enough. Opening a shell and going to the right directory was far too tedious to do manually every time, so I decided to just write a script to do it. So I did, and I put it on my desktop. Then, I double-clicked it… which launched Notepad, with the script in it. OK, fine, Linux would have asked me whether I wanted to run it or display it, but that's not too bad. I closed it, right-clicked it, and clicked Run with Powershell. Then, a nice little command-line window opened, displayed some red text for a fraction of a second, and closed before I could read a single word. WTF? I tried it again, and managed to take a screenshot just in time. As it turned out (after a good bit of googling around) it's not possible to run your own scripts on Windows with the default settings. You have to launch PowerShell, and type in Set-ExecutionPolicy RemoteSigned, otherwise the OS refuses to run your scripts, because it doesn't trust them. So I did just that, and now I can run my little script from my desktop to empty my disk cache, with minimal human input and just a few seconds of work for the system.

Sure, originally, this is a bug on Opera's side, so in a way, this is Opera Software's fault more than Microsoft's. But the point of this blog entry is that because Windows is so weird, and in some ways so far behind Linux (on which it would have been the most trivial thing in the world) it took me 20 minutes to figure out how to empty a fucking folder.

Wednesday, October 12, 2011

Bulldozer is out

Here are a couple of reviews: The Tech Report and Hardware.Fr [French].

And here's a summary:

OK, technically, that's a bobcat. But it's still funny.

Wednesday, December 15, 2010

Radeon HD 6970 & 6950 launched… and disappointing.

The Radeon HD 6970 and its slower buddy, the HD 6950, were launched this morning… and kind of blow. OK, they're not bad cards, they're actually better than the HD 5870 and 5850, which they replace and which were already quite good, but the improvement falls seriously short of expectations: basically, the HD 6970 is about equal to the GeForce GTX 570, while the HD 6950 is just a bit faster than the HD 5870.

At least they're pretty…

They also draw a bit more power than the HD 5800s, so there isn't much of an improvement in the performance/W department. I'll probably have further comments on those cards later, but for now, here are a few reviews worth reading:

Monday, December 13, 2010

Graphics update: Radeon HD 6970 & 6950

I haven't been posting much lately, mostly because I've been busy, but also because there's a lot of nonsense floating around about the upcoming Radeons, which makes it quite difficult to sort out the truth from the FUD. That said, the following specs, gathered by Expreview, are almost certain.

Radeon HD 6970: specifications
Radeon HD 6950: specifications
These specifications may not appear all that impressive, but AMD has apparently improved the architecture's efficiency by quite a bit. Indeed, the HD 6970 seems to perform a solid 10% (if not more) above the GTX 570, which would make it almost as fast as the 580, according to performance numbers floating around.

The HD 6950 should therefore be roughly 5% below the GTX 570, perhaps equal or even slightly faster. In any case, it should be quite a close call. Exact power figures and prices have been rather elusive so far, but the cards will be released on December 15, so the wait is almost over.

It's going to be a merry Christmas indeed… :-)

Furthermore, I think that AMD and NVIDIA's renaming practices are dishonest and harmful to consumers, and that they need to stop.

Friday, December 10, 2010

RealWorld Tech: Introduction to OpenCL

Real World Technologies has recently published an introduction to OpenCL, written by David Kanter. It's a pretty good place to start if you're interested in that kind of thing.

Have a nice read.

Tuesday, December 7, 2010

AMD Cayman (Radeon HD 6970) on December 15 after all

UPDATE: wrong specs
Well, the title pretty much says it all. AMD's upcoming high-end graphics cards, the HD 6970 and HD 6950, based on Cayman, will be released on December 15, and that's pretty much official.