17 ms·
“CPUs are optimized for video games”
- revelation 10y agoI thought modern video games are predominantly limited by GPU performance? Maybe the argument is that while usually CPU performance isn't the most important part of the equation, video gamers base their purchasing decision on misguided benchmarks that expose it. The big CPU hog and prime candidates for these vector operations nowadays seems to be video encoding.
- skykooler 10y agoIt depends on the game. Physics-heavy games for example, like Kerbal Space Program or Besiege, are usually CPU-limited.
- revelation 10y agoThose are both built with Unity though, right? Where the game is basically C#. Are the actual physics even done vectorized?
- sapphireblue 10y agoC# is just a glue language, physics is run inside the engine as optimized C++, it is vectorized where possible.
- martindevans 10y agoUnity scripting is in C#, but the engine itself isn't necessarily written in C#. The physics are based on physx (which I assume vectorises things). http://blogs.unity3d.com/2014/07/08/high-performance-physics-in-unity-5/ http://blogs.unity3d.com/2014/07/08/high-performance-physics...
- deleted 10y ago[deleted]
- dogma1138 10y agoNo part of a Unity game runs in a .NET VM or any other VM. They chose C# as the scripting language because C# is one of the most popular programming languages, it's extremely popular in the non-game dev development community, and it's probably the only non-Web language that most code academies teach for traditional development maybe other than Java. It's syntax is also pretty close to C and C++ which means developers with game dev background will feel at home as most game development is done in C++. Unreal Engine uses Unreal Script which is now pretty much C++ but it is also not compiled directly (although with Unreal Engine 4 and onwards it's much closer to direct compile than any other scripting language). Unity engine has it's own interpreter which then builds highly optimized C++ code and compiles it when you build the game. Unity Engine is a pretty decent engine with kickass performance when optimized, without fine optimization any general purpose engine including Unreal 4 acts like utter crap. I'm alpha/beta testing a few UE4 games atm and you can see just how bad performance can get even on a solid defacto industry standard like UE4 like when dynamic shadows tank a GTX Titan X (Maxwell) SLI setup to below 20 fps any time there are light sources that are not properly fenced and culled - e.g. explosions.
- KON_Air 10y agoYour last paragraph ticks me off so much about the current non-sequetor "industry standard". Most recent example I can give is that doesn't really care is EDF 4.1. It takes carpet bombing an entire city to make its FPS dip with hundreds if not thousands of gaint incest gibs (and four players) being flung across the map. Do they really need a bazillion shaders and dynamic shadows on everything?
- dogma1138 10y agoUnreal Engine is an industry standard when it comes to commercial general purpose engines. There are more unreal engine titles for any given version than any other engine on the market on PC's and consoles. On mobile unity is probably bigger atm.
- Chattered 10y agoYou sure? I was playing with Unity back in 2009 and you scripted both game and IDE atop mono. The .NET flavour of JS was being pushed, with code examples additionally in C# and Boo (!). I preferred to use F#.
- bitmapbrother 10y agoI'm surprised by how many people think Unity games are "basically C#". That's like saying Unreal Engine games are coded in Lua. Like Lua, C# is nothing but the scripting language. The Unity game engine that does all of the heavy lifting is coded in C++.
- Fifer82 10y agoshudder unity performance....
- dogma1138 10y agoPhysics are pretty cheap unless your game is a physics simulator. CPU performance is important when there is a lot going on (most of the frame latency is CPU side), and when the CPU's are really busy dealing with other stuff like heavy AI or tons of NPC's you get poor frame rates and scalability with GPU processing power. Good examples of real CPU hogs would be the latest Civ games as well as games like Assassin's Creed Unity. ACU is especially a CPU killer, if your CPU OC is stable playing ACU it's really stable, I've seen that game cause CPU's that are not technically overclocked crash on their normal boost clock when the memory XPS profile was loaded.
- justinlardinois 10y ago> Physics are pretty cheap unless your game is a physics simulator. The two games your parent named basically are physics simulators.
- dogma1138 10y agoI'm not saying they aren't :) It's just not every type of physics. Both of them are more or less indie titles also don't expect great optimizations from them. Minecraft is also CPU bottlenecked pretty much but that's because well the game was built with Java :)
- outworlder 10y agoEven though the JVM probably gets in the way of the kind of low-level optimizations we are talking about here, Java is not the main factor for the CPU usage. All those voxels take up a good chunk (heh) of processing time. They are not all static, you know. Not sure how much of that could be shifted to the GPU.
- derefr 10y agoWhy can't you do physics on the GPU, anyway? The integration step is matrix-multiplication, isn't it?
- Sanddancer 10y agoYou can. Nvidia bought physx, who made dedicated physics accelerators, and integrated its api into gpus for just that reason.
- creshal 10y agoOccasionally you can, but it comes with caveats, even for PhysX: • Only works on Windows • Only works with Nvidia graphics cards (and only them, cheap nvidia card for physx + AMD card for graphics will disable PhysX) • Not guaranteed to be faster for all cases, needs to be evaluated on a case-by-case basis So even if the physics engine can, not all game engines use it. The Unity devs e.g. stated that they won't bother with it, as the limitations make it unattractive to pour effort into.
- olaulaja 10y agoCollision detection and response are the hard parts and they are poorly suited for GPU implementation. Some specific cases (fluids, particles, maybe cloth) that don't require these in full work quite nicely and are used often enough (see common PhysX usage)
- kxyvr 10y agoSometimes, yes. Other times, no. If you're using an explicit integrator like a Runge–Kutta method such as RK4, then the answer is yes and the algorithms map pretty well onto a GPU. In that way, GPUs have been a huge boon to the scientific computing world. Though, personally, I find them a pain to program. However, if you use an implicit integrator like a backward Euler method, the answer is no because we need to solve a linear system. Yes, if we have a well defined problem it may be possible to design a custom preconditioner based on the physics of the problem that maps really well to a GPU. Those preconditioners take a huge amount of work to develop and, honestly, if you look at the last step of something like a multilevel method, it comes down to a direct factorization. Basically, direct dense and sparse factorizations do not currently map well to a GPU and these factorizations are extremely important to many scientific problems. Specifically, implicit time integrators depend on them to solve the linear systems involved and we need implicit integrators for stiff systems. Outside of integration, there are other situations where GPUs don't work well. In large scale optimization with equality constraints, there are linear systems that need to be solved and, most of the time, we need a direct factorization to solve these systems. That's why reduced spaced methods for things like parameter estimation are so popular. Basically, they're null space algorithms that eliminate the equality constraints by doing an implicit linear system solve using an explicit time integrator, which can map to something like a GPU. This leads to a host of other problems, but at least we can scale, sort of, sometimes. At the end of the day, most scientific problems based on continuum mechanics need really fast level 1, 2, and 3 BLAS operations. That's mostly enough for simulating physics based on explicit time integrators. For elliptic problems or problems that require implicit time integrators, we need factorizations. Most of the time, we can get away with LU, Choleski, QR, and SVD. Both dense and sparse are required. For optimization with equality constraints, factorizations are also required. By the way, if anyone wants to figure out how to do faster factorizations, dense and sparse, on whatever new hardware is coming out, that'd have an enormous impact on the scientific community. There are people working on it. There's not a lot of them.
- dogma1138 10y agoActually GPU's are bottlenecked by CPU's these days (low level API's will help a bit), GTX 1080's not to mention the Titan X are a really good example of hitting a CPU bottleneck like a brick wall at higher resolutions and higher core frequencies. Because of the single core performance unless you are playing a really CPU intensive game which has been optimized for multiple cores (more than 4) (or running an insane SLI setup 3-4 way and need the extra PCIE lanes) the 6700K with as high overclock as possible (4.6-4.7ghz) is pretty much the bare minimum for GTX 1080 or better GPU's and even that isn't enough.
- lqdc13 10y agoDepends on the game. Here's Bioshock infinite: http://images.anandtech.com/graphs/graph8426/67045.png http://images.anandtech.com/graphs/graph8426/67045.png Here is F1 2013: http://images.anandtech.com/graphs/graph8426/67044.png http://images.anandtech.com/graphs/graph8426/67044.png So sometimes it matters almost as much as regular productivity task (like compiling software): http://media.bestofmicro.com/ext/aHR0cDovL21lZGlhLmJlc3RvZm1pY3JvLmNvbS9WL1MvNDUwODU2L29yaWdpbmFsL3Zpc3VhbC1zdHVkaW8ucG5n/r_600x450.png http://media.bestofmicro.com/ext/aHR0cDovL21lZGlhLmJlc3RvZm1...
- taurath 10y agoI haven't been CPU performance locked in a PC game for over 6 years - I have upgraded my GPU every 2 years and I am finally approaching the point to which I'd gain a framerate benefit from upgrading my Sandy Bridge i7 920 (I have a GTX 980 ti GPU now). There are several outliers to this - some games are VERY cpu dependant (supreme commander, MMO's like planetside 2), and some which are EXTREMELY inefficient games (Minecraft) which require an order of magnitude more CPU power than it really needs due to architecture problems.
- Qwertious 10y agoWell it is, but if your CPU is getting its job done 1ms sooner, then the GPU now has an additional 1ms to do the rendering while delivering the same deadline. Which probably means it'll render more frames. Bottlenecking just means that improving the bottlenecked thing will result in the biggest improvement. The second-biggest performance limiter can still be a significant performance limiter.
- tarpherder 10y agoBig modern games are CPU limited mostly. GPU work can be scaled down very easily (even dynamically!) by reducing the rendering resolution and as such can be made to fit the limits, up to a point. Scaling the CPU side of things is a lot trickier. And although we get an increasing amount of cores in new CPUs, single core performance has not increased in the same way. Some things just don't want to be multi-threaded or must happen in-order. This then becomes the most limiting factor.
- Narann 10y agoThe real quote would have been: > Do CPU designers spend area on niche operations such as _binary-field_ multiplication? Sometimes, yes, but not much area. Given how CPUs are actually used, CPU designers see vastly more benefit to spending area on, e.g., vectorized floating-point multipliers. So, CPUs are not "optimized for video games", they are optimized for "vectorized floating-point multipliers". Something video game (and many others) benefits from.
- nemothekid 10y agoWhy are they optimized for vectorized floating-point multipliers? Does the CEO of Intel just tell all the engineers to do this because he likes multiplication?
- daveguy 10y agoThey are optimized for that because a lot of algorithms can make use of them, from quicksort/mergesort through image rendering and encryption. It is an easy optimization from a hardware perspective -- simple repetitive hardware structure. This is why GPUs are so powerful and games are not the only thing that benefits from this type of optimization. Matrix multiplication is also used in signal processing. The CEO asked, how can we optimize the use of our hardware for the most benefit? And SIMD with wide pipes is at the top of the list. Most of the post is about all the new algorithms that can take advantage of the hardware push. The hardware push is there because it is an easy use of hardware resources. This is also an optimization that compilers can readily take advantage of on a small scale (similar to pipelining) so the combination of benefit + ability to use + simplicity/low resource use makes it an inevitability.
- mcguire 10y agoA sort that uses vectorized floating point multiplication?
- sbierwagen 10y agoFrom 2008: http://www.vldb.org/pvldb/1/1454171.pdf http://www.vldb.org/pvldb/1/1454171.pdf Also: http://researcher.watson.ibm.com/researcher/files/jp-INOUEHRS/PACT2007-SIMDsort.pdf http://researcher.watson.ibm.com/researcher/files/jp-INOUEHR... and https://github.com/NumScale/boost.simd https://github.com/NumScale/boost.simd
- wmf 10y agoMaybe a better headline would be something like "How software crypto can be as fast as hardware crypto". I was curious about this after the WireGuard announcement so thanks to DJB for the explanation.
- sapphireblue 10y agoThis may be an unpopular opinion, but I find it completely fine and reasonable that CPUs are optimized for games and weakly optimized for crypto, because games are what people want. Sometimes I can't help but wonder how the world where there is no need to spend endless billions on "cybersecurity", "infosec" would look like. Perhaps these billions would be used to create more value for the people. I find it insane that so much money and manpower is spent on scrambling the data to "secure" it from vandal-ish script kiddies (sometimes hired by governments), there is definitely something unhealthy about it.
- camelNotation 10y agoPeople spend a lot of money on physical security as well. They put locks on their homes and cars, install safes in banks, drive money around in armored cars, hire armed guards for events, and pay for a police force in every municipality. The simple fact is that if your money is easy to get, someone will eventually take it without your permission. That is reality, but calling it "unhealthy" implies that the current state of things is somehow wrong. I agree with that premise, but it carries with it a lot of philosophical implications.
- wmf 10y agoAn interesting study on the growth of "guard labor": http://opinionator.blogs.nytimes.com/2014/02/15/one-nation-under-guard/ http://opinionator.blogs.nytimes.com/2014/02/15/one-nation-u...
- ythl 10y ago> That is reality, but calling it "unhealthy" implies that the current state of things is somehow wrong. I don't spend a lot of money on physical security. I leave my car and front door unlocked usually, and don't bother with security systems. If you find yourself having to lock and bolt everything under the sun lest it get damaged/stolen, then yes, I think it is an indication that the current state of things is wrong. There is something wrong with the economy/community/etc. in your area. I realize that "the internet" doesn't really have boundaries like physical communities do, but I too wish for a world where security was not an endless abyss sucking money into it and requiring security updates until the end of time. In other words - a world where you could leave the front door unlocked online without having to worry about malicious actors. It will never happen, of course (at least not until the Second Coming ;)
- joaomacp 10y agoOf course. Gamers are the biggest consumers of new, top of the line PC hardware.
- vonmoltke 10y agoI doubt gamers are outspending datacenters and owners of private clusters.
- agumonkey 10y agoWhat about lifetime ? datacenter aren't renewed every year. Many gamers upgrade on a yearly basis. Lot less money but maybe newer consumer hardware.
- serf 10y agoThere has been no need to upgrade yearly for games since about the Wolfdale era, so those types of people are getting more and more rare, and are motivated mostly by spec sheets rather than real-world performance. Many data centers go through a process of constant expansion and renewal, as they are competing with others and there is a larger financial incentive for them to do so.
- kemayo 10y agoVR has been causing a small resurgence in upgrades this year, since you need a fairly high-end graphics card for it. I.e. you need to have spent the price of a cheap computer on your GPU if you bought it last-gen, or somewhere above $250 if you're buying right now. Similarly, 4k displays require a lot of GPU power, though I think it's viewed as even more frivolous / excessive than building for VR.
- vonmoltke 10y agoThe number of gamers who upgrade yearly is fairly small, and the number who upgrade their base platform (CPU + mobo) yearly is even smaller. I would be very surprised if there were more than a million in the latter category. As for datacenters and compute farms, the large ones are upgrading portions of their systems yearly, if not expanding on top of that.
- pcwalton 10y agoGames are also representative of the apps that actually squeeze the performance out of CPUs. When you look at most desktop apps and Web servers, you see enormous wastes of CPU cycles. This is because development velocity, ease of development, and language ecosystems (Ruby on Rails, node.js, PHP, etc.) take priority over using the hardware efficiently in those domains. I don't think this is necessarily a huge problem; however, it does mean that CPU vendors are disincentivized to optimize for e.g. your startup's Ruby on Rails app, since the problem (if there is one) is that Ruby isn't using the functionality that already exists, not that the hardware doesn't have the right functionality available.
- munchbunny 10y agoI don't necessarily agree that it's a problem of the language ecosystems. In my experience games are one of the few areas where it is likely to be CPU bottlenecked and not I/O bottlenecked. My sample size is only the set of projects that I've personally worked on, but in the projects where I have intentionally profiled where the time is being spent, I have only ever run into UX-impacting CPU bottlenecks when working on games. This is spanning code I've written from assembly all the way up to Python. Not counting JS because the DOM is a bit of a black box to me. In almost every other case, the bottleneck was not being able to pull data out of physical storage or some network store fast enough. In some cases it was not being able to pull data from RAM fast enough. In a few cases it was not being able to pull data from a database fast enough due to needing to cover too big of a table, which I lump into the "waiting for I/O" category under the lightly investigated hypothesis that it's not because the CPU is having trouble iterating over the indices, but because the database can't keep the whole index in memory.
- koolba 10y ago> My sample size is only the set of projects that I've personally worked on, but in the projects where I have intentionally profiled where the time is being spent, I have only ever run into UX-impacting CPU bottlenecks when working on games. Try out any "enterprise" app that thinks its a good idea to load 25,000 widgets on one page. That'll show you the meaning of "CPU bottleneck".
- Philipp__ 10y agoARMA III could be the good example of CPU bottleneck. Or maybe it is badly optimized... Then we hit the hot topic of multicore vs singlecore performance.
- ohstopitu 10y agowith the latest update, ARMA III seems to have a massive FPS boost. So it was definitely not optimized earlier.
- swampthinker 10y agoI seem to perpetualy hear that with ARMA games.
- deleted 10y ago[deleted]
- imtringued 10y agoIn Arma 3 the most critical part, the AI logic, runs in a single thread which means AMD's CPU with low single core performance often struggle to reach 60fps.
- Qwertious 10y agoOne of the major problems with Arma 3 is that due to it's simulation nature, it has to simulate everything, rather than just a bubble around the player and then cutting corners everywhere else. This means it inherently must use a whole lot more CPU than your average videogame. It's quite possibly badly optimised too, but even if it weren't, Arma would eat CPU like crazy.
- joseraul 10y agoTL;DR To please the gaming market, CPUs develop large SIMD operations. ChaCha uses SIMD so it gets faster. AES needs array lookups (for its S-Box) and gets stuck.
- nitwit005 10y agoNot really. Just look through the feature lists of some newer processors: AES encryption support: https://en.wikipedia.org/wiki/AES_instruction_set https://en.wikipedia.org/wiki/AES_instruction_set Hardware video encoding/decoding support (I presume for phones): https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video It's more that it's relatively easy to make some instruction useful to a variety of video game problems, but difficult to do the same for encryption or compression. You tend to end up with hardware support for specific standards.
- apendleton 10y agoDid you read the post? This is specifically addressed. The AES hardware support requires a bunch of die area specifically for that purpose and still isn't that performant. Smaller-area CPUs don't spend the area and perform abysmally on AES, and even in CPUs that do include AES-NI, Chacha achieves comparable performance for the same security margin without any custom hardware support, just using the general vector instructions added to improve game performance. DJB expects that because vector math continues to improve while AES hardware does not, Chacha will soon outperform AES even on devices with hardware support.
- tptacek 10y agoI agree with the comment, but it would be better without that first sentence.
- nitwit005 10y agoThank you for pointlessly regurgitating much of his post? The fact that Intel put an encryption feature in their chip, which does indeed make that algorithm faster, would tend to indicate they wanted faster encryption wouldn't it? That some other algorithm could be faster still isn't really contradicting that.
- brohee 10y agoI'd wager that the goal wasn't so much speed (which is very rarely the issue) but security. It was way too hard to program a constant time AES implementation without AES-NI.
- rdtsc 10y agoWonder how a POWER8 CPU would handle it or if it is optimized differently. It obviously is not geared for the gaming market.
- gtirloni 10y agoNot sure about Power8 as I wasn't able to find anything conclusive. But if you believe Oracle's marketing efforts, the SPARC chips do much better than Power8 and Intel on that front. https://blogs.oracle.com/BestPerf/entry/20151025_aes_t7_2 https://blogs.oracle.com/BestPerf/entry/20151025_aes_t7_2
- Symmetry 10y agoSPARC chips are much more optimized for a certain intended set of workloads than x86 or POWER are so that's not surprising.
- rbanffy 10y agoI remember one x86 from VIA (2002 or so) that had a crypto accelerator unit, but, like with AVX, you have to write code specifically for it. It's the same as with SPARC or POWER (or xSeries) - you shouldn't expect them to be designed to be fast on specific crypto algorithms when using generic instructions.
- magila 10y agoOne important aspect DJB ignores is power efficiency. ChaCha achieves its high speed by using the CPU's vector units, which consume huge amounts of power when running at peak load. Dedicated AES-GCM hardware can achieve the same performance at a fraction of the power consumption, which is an important consideration for both mobile and datacenter applications. Gamers generally don't care about power consumption. When you've spent $1000 on the hardware an extra dollar or two on your electricity bill is no big deal.
- acqq 10y ago> CPU's vector units consume huge amounts of power when running at peak load. Dedicated AES-GCM hardware can achieve the same performance at a fraction of the power consumption Citation needed. Where did you get that idea? Please show how djb's vector code spends more power vs the built-in AES "dedicated hardware" instruction when, as he measures: "* Both ciphers are ~1.7 cycles/byte on Westmere (introduced 2010). * Both ciphers are ~1.5 cycles/byte on Ivy Bridge (introduced 2012). * Both ciphers are ~0.8 cycles/byte on Skylake (introduced 2015)." "even though AES-192 has "hardware support", a smaller key, a smaller block size, and smaller data limits" (his code is 256 bits and 12 rounds).
- tveita 10y agoThe parts of the CPU that are not in use can be turned off, so making full use of the vector units can raise the temperature of the CPU a fair bit compared to less demanding code. He's also comparing 12 rounds of ChaCha with 12-round AES, which may be fair, but realistically no one uses ChaCha12, they use ChaCha20.
- deleted 10y ago[deleted]
- wmf 10y agoAVX is so hot that Intel CPUs may have to clock down ~200 MHz when executing heavy AVX code to stay within their power/thermal limits. I have no idea if this hits DJB's code in reality. http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/performance-xeon-e5-v3-advanced-vector-extensions-paper.pdf http://www.intel.com/content/dam/www/public/us/en/documents/...
- xenadu02 10y agotl;dr: AES uses branches and is not optimized for vectorization. Other (newer) algorithms are designed with branchless vectorization in mind, which makes specialized hardware instructions unnecessary.
- speeder 10y agoAs a gamedev I found that... weird. A CPU for games would have very fast cores, larger cache, faster (less latency) branch prediction, fast apu and double floating point. Few games care about multicore, many "rules" are completely serial, and more cores doesn't help. Also, gigantic simd is nice, but most games never use it, unless it is ancient, because compatibility with old machines is important to have wide market. And again, many cpu demanding games are running serial algorithms with serial data, matrix are usually only essential to stuff that the gpu is doing anyway. To me, cpus are instead are optimized for intel biggest clients (server and office machines)
- Thaxll 10y agoModern Engines take advantage of every cores usually.
- ss248 10y agoDevelopers don't care. Games are usually optimized for 4 cores max. For example, i7-6700K (4 cores) perform better than i7-6950X (10 cores) in almost every modern game.
- johncolanduoni 10y agoThat's also because a 10 core chip takes a significant hit on single core performance over a 4 core one. It's also quite likely that spreading out over more cores would be counterproductive. Many problems are not parallizeable indefinitely.
- tarpherder 10y agoI don't understand how you can say such a blatantly false thing. Modern consoles have more than 4 cores available, do you really think we would let the other 3 go to waste? Large games will use all cores, our game uses 32 cores if you have them, we solved a bug because 1 guy had such a machine and reported an issue. 1 guy, from the public, and we fixed it the next update! But no, developers don't care, we don't even like games! In fact, we hate games! Please don't enjoy our games!
- tgarma1234 10y agoI really find it hard to believe that people for whom such an interest in security at the CPU level would buy "retail" processors like you and me have access to. I am no expert in the field but it just seems weird that there isn't a market for and producer of specialized processors that are more militarized or something. Why does everyone have access to the same Intel chips? I doubt that's actually the case. Am I wrong?
- tptacek 10y agoWe all use pretty much the same chips.
- pcwalton 10y ago> I really find it hard to believe that people for whom such an interest in security at the CPU level would buy "retail" processors like you and me have access to. DJB's interest here is specifically in creating algorithms that work well on general-purpose popular CPUs.
- DINKDINK 10y agoOff-topic: That's a great favicon
- wscott 10y agoNo, Intel CPUs are optimized to simulate CPUs Some stories from back around 2000 when designing CPUs at Intel. Some people did bemoan the fact the few software actually needed the performance in the processors we were building. One of the benchmarks where the performance is actually needed was ripping DVDs. That lead to the unofficial saying "The future of CPU performance is in copyright infringement." (Not seriously, mind you) However, here is a case where the CPUs were actually modified to improve one certain program. From: https://www.cs.rice.edu/~vardi/comp607/bentley.pdf https://www.cs.rice.edu/~vardi/comp607/bentley.pdf (section 2.3) "We ran these simulation models on either interactive workstations or compute servers – initially, these were legacy IBM RS6Ks running AIX, but over the course of the project we transitioned to using mostly Pentium® III based systems running Linux. The full-chip model ran at speeds ranging from 05-0.6 Hz on the oldest RS6K machines to 3-5 Hz on the Pentium® III based systems (we have recently started to deploy Pentium® 4 based systems into our computing pool and are seeing full-chip SRTL model simulation speeds of around 15 Hz on these machines)" You can see that the P6-based processors (PIII) were a lot faster than the RS6K's and the Wmt version (P4) was faster still? That program is csim and it is a program that does a really dumb translation of the SRTL model of the chip (think verilog) to C code that then gets compiled with GCC. (the Intel compiler choked) That code was huge and it had loops with 2M basic blocks. It totally didn't fit in any instruction cache for processors. Most processors assume they are running from the instruction cache and stall when reading from memory. Since running csim is one of the testcases we used when evaluating performance the frontend was designed to execute directly from memory. The frontend would pipeline cacheline fetches from memory which the decoders would unpack in parallel. It could execute at the memory read bandwidth. This was improved more on Wmt. This behavior probably helps some other read programs now, but at the time this was the only case we saw where it really mattered. The end of the section is unrelated but fun: "By tapeout we were averaging 5-6 billion cycles per week and had accumulated over 200 billion (to be precise, 2.384 * 1011) SRTL simulation cycles of all types. This may sound like a lot, but to put it into perspective, it is roughly equivalent to 2 minutes on a single 1 GHz CPU!" Games were important but at the time most of the performance came from the graphics card. In recent years Intel has improved the on-chip graphics and offloaded some of the 3d work to the processor using these vector extensions. That is to reclaim the money going to the graphic card companies.
- wangchow 10y agoThe form-factor for laptop screens are built for media consumption, even though the square form-factor is superior for productivity (I found an old Sony Vaio and the screen form-factor felt very pleasant). Seems the general consumption of media has dominated CPU design in addition to everything else in our computers.
- digi_owl 10y agoWell the wider screen format allows for a keyboard with a numpad now, without getting a massive "lip" below the keyboard.
- milesf 10y agoAnd because CPUs are optimized for both gamers and Windows, the world has access to lots of cheap, powerful hardware. I'm not a Microsoft fan, but I'm very appreciative to them for making this ecosystem possible. In fact, games have always driven the modern computer industry. Even Unix started because of a game (http://www.unix.org/what_is_unix/history_timeline.html http://www.unix.org/what_is_unix/history_timeline.html).
- stephenr 10y agoIsn't this exactly why HSM's exist - to provide optimised hardware crypto functionality? Honestly I would treat this the same as eg Ethernet - high end cards have hardware offload capabilities that the software stack can utilise to get better performance.
- Philipp__ 10y agoAnd what if games are better (or worse) optimised for certain type of hardware? So that way, you spend on new Intel CPU every 3 years. So the point is, what if some games are badly optimisied and run bad on certain hardware on purpose. Maybe it sounds like a conspiracy theory. But look, CPUs are stalling, Intel wants to sell it's things every year, what if they come to developers and say "Look make your game run 10% better on our latest hardware and we give you money"?
- rphlx 10y agoPerhaps that was true in the mid 90s, but today Intel optimizes x86_64 for its highest margin core business: server/datacenter workloads. Any resulting benefit to desktop PC gaming is appreciated, but it's a side effect rather than a primary design goal.