Recommended Posts

In reference to OCing i5s and i7s, I would challenge you to go look at benchmarks, for example: http://techreport.com/review/23246/inside-the-second-gaming-performance-with-today-cpus

 

Notice how there is very little variation between i5s and i7s of the same generation and specs?

 

Overclocking is it's own topic. :)

 

Looking at those benchmarks the most telling is the multitasking benchmark, lead by the i7s. The others, are close enough. One of the poorest performing (due to bad coding IMO) for me was Arkham City with DX11. Led by the i7.

 

I think with x64 and enough memory, i7s should show their worth. I agree generations are important, that's the whole point of processor improvement.

 

I say if cost is not prohibitive, get the best processor you can afford.

 

I'll leave this to the programmers, but here are a few interesting tidbits on the notion of x64 and performance:

 

http://www.viva64.com/en/k/0003/

 

 

General notes from MS, server related but probably generally applicable:

  • A 64-bit architecture provides more and wider general-purpose registers, which contribute to greater overall application speed. When there are more registers, there is less need to write persistent data to memory and then have to read it back just a few instructions later. Function calls are also faster in a 64-bit environment because as many as four arguments at a time can be passed in registers to a function.
  • Poor performance in 32-bit systems is often not the result of a lack of available memory, but the unavailability of large enough blocks of continuous memory. In a typical Windows SharePoint Services 3.0 deployment, Windows, Internet Information Services (IIS), common language runtime (CLR), ASP.NET, SharePoint Products and Technologies, SSPs, and MDACs can all claim a portion of a server?s available virtual memory and can leave a 32-bit address space quite fragmented. When the CLR or SharePoint services request new memory blocks, it can be difficult to find a 64-MB segment in the crowded 32-bit address space. A 64-bit system offers practically unlimited address space for user mode processes.

  • Even 32-bit applications can benefit from increased virtual memory address space when they are running in a 64-bit environment. For example, although a 32-bit application is still restricted to 4 GB of virtual memory, it no longer has to share that memory space with the operating system. As a result, it receives an effective increase in available virtual memory.

 

 

  1. Sure, as I said, you have more registers to play around with and ABI changes in x86_64. The former, can and does reduce register spilling in general, but it doesn't necessarily result in notable performance gains. Do you have any benchmarks showing that simple recompilation results in great performance benefits (besides a website that just arbitrarily states so without any evidence)? The latter (changes to calling conventions) are unlikely to really increase performance all that much. You have issues if function calls are the significant overhead in your program.

     

  2. Wider registers don't contribute to performance if you weren't using 64 bit types in the first place. Chances are that most applications aren't. It's just is not done in typical usage unless specifically needed.

     

  3. I'm not really sure where MS is going with this 32 bit memory fragmentation argument. It seems to me, they are being deliberately misleading here by suggesting that processes all share a single virtual address space (VAS). Let me be very clear, each process has its own distinct virtual address space -- it begins completely non-fragmented at the start of a process. The fragmentation to which MS is referring would only occur within a process if the particular process allocated large amounts of memory (2-3GB) in small chunks within its VAS and then proceeded to deallocate some of them, etc. It could potentially become an issue only over-time within the one process -- but make note, it wouldn't affect any other process on the system since they do not share their virtual address space with other processes.

     

  4. It is important to make a distinction between virtual memory fragmentation and physical memory fragmentation. The latter is not changed just because you have a larger virtual address space per process. At the end of the day your VAS still maps back to physical memory and your physical memory is of a finite size -- and allocated in the same manner regardless of whether you are using a 32 bit kernel or 64 bit kernel.

     

  5. Sure, applications don't have to the share parts of their virtual address space with the OS so they can allocate more memory. That's a given and the one good reason to use a 64-bit OS. I'm not arguing against this. I'm just asking what is the clear-zero-effort performance advantages to moving to an x64 OS? I see your link, but they haven't shown an tangible evidence that what they say is true. I'd welcome benchmarks showing that there is a clear advantage. I would believe a 5% increase simply because of the better register allocation, but a 20% seems rather unlikely and contrived.

Overclocking is it's own topic. :)

 

Looking at those benchmarks the most telling is the multitasking benchmark, lead by the i7s. The others, are close enough. One of the poorest performing (due to bad coding IMO) for me was Arkham City with DX11. Led by the i7.

 

I think with x64 and enough memory, i7s should show their worth. I agree generations are important, that's the whole point of processor improvement.

 

I say if cost is not prohibitive, get the best processor you can afford.

 

Of course, it was lead by an i7 that costs $1K...

 

So let's be specific here: what you are saying is that the top-of-the-line high-end extreme edition i7 that cost $1000+ is a measly 5 FPS better than the nearest i5 which cost $200+. And ignoring the fact that i7s with similar specs to the i5s have 1-2 FPS difference. And ignoring the fact that ivybridge i5s are seeing better FPS than sandybridge i7s. All shadowed by the fact that these are all running 80-90 FPS...

 

I think that anti-proves your point that i7s have performance gains over i5s in terms of FPS...

  1.  

  2. Wider registers don't contribute to performance if you weren't using 64 bit types in the first place. Chances are that most applications aren't. It's just is not done in typical usage unless specifically needed.

     

  3.  
  4.  
  5. Sure, applications don't have to the share parts of their virtual address space with the OS so they can allocate more memory. That's a given and the one good reason to use a 64-bit OS. I'm not arguing against this. I'm just asking what is the clear-zero-effort performance advantages to moving to an x64 OS? I see your link, but they haven't shown an tangible evidence that what they say is true. I'd welcome benchmarks showing that there is a clear advantage. I would believe a 5% increase simply because of the better register allocation, but a 20% seems rather unlikely and contrived.

 

 

All your points sound sound to me. Then again, so do everyone elses. I'll leave the debating of this topic to programmers but do want to comment on two of your points:

 

2. Then based on what you are saying, x64 does provide the opportunity for enhanced program performance buy choosing to utilize the wider registers?

 

5. Programmers are paid enough to exercise plenty of effort to deliver the benefits of the powerful resources available on today's desktops, lol. To not do so would result in what Skin is afraid of, sloppy code that doesn't actually utilize current high end system resources.

 

A multiple core processor is no better than a single core processor if programmers don't make the effort to take advantage.  And for a long time now they haven't really; or is it that the technology base just wasn't there in enough numbers to make it viable to even bother?. It's good to see them moving in that direction.

Of course, it was lead by an i7 that costs $1K...

 

So let's be specific here: what you are saying is that the top-of-the-line high-end extreme edition i7 that cost $1000+ is a measly 5 FPS better than the nearest i5 which cost $200+. And ignoring the fact that i7s with similar specs to the i5s have 1-2 FPS difference. And ignoring the fact that ivybridge i5s are seeing better FPS than sandybridge i7s. All shadowed by the fact that these are all running 80-90 FPS...

 

I think that anti-proves your point that i7s have performance gains over i5s in terms of FPS...

 

I haven't really ignored anything. I've already said previously the extreme's are not worth it. At least not for gaming. I have also said that because games haven't been optimized for x64 or multicore/threads, that there isn't that much of a difference at the high ends. But I do believe as x64 does become the norm and optimized and there is memory headroom, i7s will show their worth.

 

If BF4 x64 and NFS x64 benchmarks show similar results, I will say, for gaming only, you might as well stick with an i5, there's no reason to get an i7. Right now I just don't believe that, in spite of how close the benchmarks are.

All your points sound sound to me. Then again, so do everyone elses. I'll leave the debating of this topic to programmers but do want to comment on two of your points:

 

2. Then base on what you are saying, x64 does provide the opportunity for enhanced program performance buy choosing to utilize the wider registers?

 

5. Programmers are paid enough to exercise plenty of effort to deliver the benefits of the powerful resources available on today's desktops, lol. To not do so would result in what Skin is afraid of, sloppy code that doesn't actually utilize current high end system resources.

 

A multiple core processor is no better than a single core processor if programmers don't make the effort to take advantage. And for a long time now they haven't really. It's good to see them moving in that direction.

 

2. Yeah, x64 does provide opportunity for enhancement if you are using 64 bit types in a 32 bit program (int64_t for example), then you would  to be doing multiple operations instead of 1 64-bit operation so there is the potential performance benefit from that. But, 95% of programs aren't going to be doing that. You only do such things if you need numbers larger than the range that 32-bit types offer.

 

5. Sure, if you go out of your way specifically, you can definitely see performance benefits. But, I don't believe you'll see them for free in general.

 

And, I agree that multi-core processors are rarely taken advantage of. They aren't even effectively taken advantage of in HPC where it counts. A common myth is that you get free performance with multi-core, but that's simply not the case. It is a large effort to parallelize domain specific problems in most cases.

2. Yeah, x64 does provide opportunity for enhancement if you are using 64 bit types in a 32 bit program (int64_t for example), then you would  to be doing multiple operations instead of 1 64-bit operation so there is the potential performance benefit from that. But, 95% of programs aren't going to be doing that. You only do such things if you need numbers larger than the range that 32-bit types offer.

 

5. Sure, if you go out of your way specifically, you can definitely see performance benefits. But, I don't believe you'll see them for free in general.

 

And, I agree that multi-core processors are rarely taken advantage of. They aren't even effectively taken advantage of in HPC where it counts. A common myth is that you get free performance with multi-core, but that's simply not the case. It is a large effort to parallelize domain specific problems in most cases.

All too true.

 

As an exercise for those that are merely curious, I submit no less than the original Supreme Commander OR Supreme Commander: Forged Alliance.  Both are multicore-aware out of the box, and both are, in fact, quite old - the first shipped before Windows Vista.  (And, in case you are wondering, both will run quite happily in Windows 8 or 8.1.)  It was the original Supreme Commander that made the advantages merely of multicore support rather obvious when it came to gaming - however, how many multicore-aware games have followed it?

  • Like 1

sometimes i wonder (after reading posts of quite many in this thread) if people know that 32bit binary with LAA can address directly 4GB

and there are methods you can address beyond that indirectly , so much for the 64bit buzz ...

imho 64bit addressing over 4GB is ofcourse innevible outcome but it's more important when you go way beyond just 6 or 8GB :)

(aka sorry consoles you can't compete, PC master race wins)

sometimes i wonder (after reading posts of quite many in this thread) if people know that 32bit binary with LAA can address directly 4GB

and there are methods you can address beyond that indirectly , so much for the 64bit buzz ...

imho 64bit addressing over 4GB is ofcourse innevible outcome but it's more important when you go way beyond just 6 or 8GB :)

(aka sorry consoles you can't compete, PC master race wins)

 

I'm not really sure what you are arguing here since LAA only gives your 4GB for 32-bit programs on 64-bit Windows (and only 3GB for 32-bit programs on 32-bit Windows with PAE enabled). Not at all the same thing as being able to address terabytes of data in the case of native 64-bit programs.

 

Also, how exactly would you address more than 4GB if the registers where you can store addresses are all effectively 32-bit width in 32-bit programs?

 

EDIT: http://en.wikipedia.org/wiki/X32_ABI -- forgot about that, I'd like to see a 32-bit OS using that (or 64 bit compatibility layer for 32-bit programs) -- alas, that'll never happen for Windows.

You can address more than 4GB of RAM under a 32bit OS if you're smart (especially since Windows and such operate with PAE enabled which gives you a 36bit address space I think)

But really, what's the point? Running as a 64bit app under a 64bit OS gives you the extra RAM without having to do manual mapping. This game is fairly resource intensive, so the CPU required to run it would be 64bit anyway (Since Intel/AMD haven't made 32bit CPUs outside of ultra low end for a long time).

  • Like 1

You can address more than 4GB of RAM under a 32bit OS if you're smart (especially since Windows and such operate with PAE enabled which gives you a 36bit address space I think)

But really, what's the point? Running as a 64bit app under a 64bit OS gives you the extra RAM without having to do manual mapping. This game is fairly resource intensive, so the CPU required to run it would be 64bit anyway (Since Intel/AMD haven't made 32bit CPUs outside of ultra low end for a long time).

 

Looks like you are right about addressing more than 4GB of RAM per process: http://sqlserverfinebuild.codeplex.com/wikipage?title=SQL+Server+AWE+Property (scroll to section Hardware for Extending 32-bit addressing).

 

I honestly had no idea that there were new instructions for this.

 

The interesting part in how this works is that it means that you can't actually use or address anything above the 32-bit address range normally (via normal move instructions) and instead have to copy the data in/out of your 32-bit address range via special instructions. This makes sense considering that the registers would still be 32-bits and thus unable to address anything above that range. The 36-bit extension you mentioned is just to allow processors to address up to 64GB. They could have presumably chose any size and done the same thing with these instruction extensions.

 

I can see why you'd rarely really see programs that did this. I can't imagine the overhead and performance costs are nil to address above 4GB in this case. It is more like a shim of anything. In any case, you learn something new everyday.

You can address more than 4GB of RAM under a 32bit OS if you're smart (especially since Windows and such operate with PAE enabled which gives you a 36bit address space I think)

But really, what's the point? Running as a 64bit app under a 64bit OS gives you the extra RAM without having to do manual mapping. This game is fairly resource intensive, so the CPU required to run it would be 64bit anyway (Since Intel/AMD haven't made 32bit CPUs outside of ultra low end for a long time).

And both have made x64 low-end CPUs for quite a long stretch as well - or have we forgotten that Celeron (Intel), Sempron/Turion (AMD) are x64?

 

Users have stalled because they have been ABLE to stall (the "no need to move" argument).

And both have made x64 low-end CPUs for quite a long stretch as well - or have we forgotten that Celeron (Intel), Sempron/Turion (AMD) are x64?

 

Users have stalled because they have been ABLE to stall (the "no need to move" argument).

 

I don't think users themselves are stalling more than the industry was once maturing in terms of OS and driver compatibility. All of that happened long ago though. They don't ship even computers pre-installed with 32-bit OSes anymore. Game developers just make 32-bit builds of games to ensure maximum compatibility which isn't particularly surprising if you consider that most people don't have more than 4GB of memory anyway. What's the point of forcing additional requirements that would potentially lower sales and gain you nothing?

I don't think users themselves are stalling more than the industry was once maturing in terms of OS and driver compatibility. All of that happened long ago though. They don't ship even computers pre-installed with 32-bit OSes anymore. Game developers just make 32-bit builds of games to ensure maximum compatibility which isn't particularly surprising if you consider that most people don't have more than 4GB of memory anyway. What's the point of forcing additional requirements that would potentially lower sales and gain you nothing?

However, running x64 DOES have advantages in sub-4GB RAM situations (primarily stability/robustness) making a mockery of the longtime arguments of x32 apologists that there were no advantages to x64 below 4 GB of RAM.

 

There are advantages in the operating system space, and there are advantages in the application space as well - in both cases, while there is no real alternative if you have more than 4 GB of system RAM, the advantages start below that number - in terms of stability and robustness alone, they start at half that, if not less.  (All of my testing,  both in bare-metal and virtual-machine usage, has borne that out - and it's not unique to Windows; look at Linux, UNIX, or even the BSDs.)

The browser-addon space is a bit of a chicken-and-egg situation, as the application space and the gaming space has also been - the advantages have to be made obvious, and that takes trailblazing.  There are trailblazing applications, and now games - what is needed now are trailblazers in the browser-add-on space.)

I don't think users themselves are stalling more than the industry was once maturing in terms of OS and driver compatibility. All of that happened long ago though. They don't ship even computers pre-installed with 32-bit OSes anymore. Game developers just make 32-bit builds of games to ensure maximum compatibility which isn't particularly surprising if you consider that most people don't have more than 4GB of memory anyway. What's the point of forcing additional requirements that would potentially lower sales and gain you nothing?

 

Not to mention the previous generation of consoles forcing titles to maintain ~512MB as the absolute minimum target.

However, running x64 DOES have advantages in sub-4GB RAM situations (primarily stability/robustness) making a mockery of the longtime arguments of x32 apologists that there were no advantages to x64 below 4 GB of RAM.

 

There are advantages in the operating system space, and there are advantages in the application space as well - in both cases, while there is no real alternative if you have more than 4 GB of system RAM, the advantages start below that number - in terms of stability and robustness alone, they start at half that, if not less.  (All of my testing,  both in bare-metal and virtual-machine usage, has borne that out - and it's not unique to Windows; look at Linux, UNIX, or even the BSDs.)

The browser-addon space is a bit of a chicken-and-egg situation, as the application space and the gaming space has also been - the advantages have to be made obvious, and that takes trailblazing.  There are trailblazing applications, and now games - what is needed now are trailblazers in the browser-add-on space.)

 

Can you back your claim of stability/robustness advantages up with some citations and specifics? As far as I know, there is nothing in the x64 portions of the ISA that would yield advantages in these areas. The only effective differences in the modes from a practical standpoint is that you have larger/more registers, can address more memory, and you have some additional x86_64 specific instructions.

 

Unless you are talking about security advantages in terms of ASLR, I don't see any inherent reason why 64-bit OSes would be at a stability advantage. I've honestly never heard of anyone suggesting that x64 OSes are inherently more stable before.

When Microsoft transitioned to 64bit they took the opportunity to close down the kernel (PatchGuard) and enforce strict controls on drivers, that's about it for stability.

 

Yup, I entirely agree with this. Driver signing and enforcement of no kernel patching for x64 Windows certainly helps at the software level, but that isn't inherit to x64 as an architecture. It's just a policy by MS. It is also worth noting that enforcement at the x64 level for Windows also largely mitigates the same issues on the 32-bit front because:

  • Vendors going through the certification and driver signing procedure for 64-bit builds tend go through them for 32-built builds also even though technically they aren't required to do so. One large reason probably being that uncertified drivers give warnings if you install them and why wouldn't you certify your drivers and product for the OS where you are going to run it?
  • It killed the market for kernel patching in general. Why continue to design software that implements security through kernel patches if it is incompatible with any newly purchased computers?

I am more interested when games will actually start using high amounts of RAM and CPU.

6GB RAM is chump change.

 

Based on many of the comments in this thread, 6GB is apparently not chump change for many Neowinians. :P

Mantle won't "supercharge" it.

That depends how much they're pushing.  If you're assuming the same workload in either D3D or Mantle, might not be a big boost, but they could offer higher detail levels or a different shader loadout with Mantle.

 

Personally I highly doubt Watch Dogs will support Mantle...look how long it took Ubisoft to support dx11 at all outside of Assassins Creed, heh.  Might be considerably less complicated than the jump from dx9 to dx11, but we'll see.

This topic is now closed to further replies.
  • Posts

    • Interesting image choice... reminds me of the human centipede poster
    • Get $50 of aloSIM Mobile Data Traveler eSim credit for just $24.97 by Steven Parker Today's highlighted deal comes via our Apps + Software section of the Neowin Deals store, where you can save 50% off aloSIM Mobile Data Traveler Lifetime eSim Credit: Pay $24.97 for $50. Stay connected affordably in 120+ countries/regions with your own lifetime eSIM! An eSIM is a digital SIM card. It's basically just mobile data. Once it's activated on your device, it can connect you to data networks in other countries – giving you an internet connection with NO roaming charges. With aloSIM, you can load prepaid eSIM data packages onto your phone, tablet, or computer. Your lifetime eSIM never expires, so it's yours forever and there are never any monthly charges. You'll get $50 in eSIM data credit, which is almost always enough to cover all your data roaming needs for a full year. But if you run out of data, you can always top up your lifetime eSIM and stay connected internationally. Pay $24.97 for a lifetime eSIM with $50 in travel data credit Use your eSIM to join data networks in 120+ countries Install your lifetime eSIM on a compatible device to roam on local data networks Your lifetime eSIM never expires, and can be topped up with more data anytime Many data packages cost as little as $4.50 and last 7 days. Depending on the package you choose, the length of time varies. Good to know Length of access: lifetime For NEW customers only Instant digital redemption Once you add your $50 credit to your aloSim account you have up to 12-months to use it — after that your credit will expire When you pay for a data plan you also get a free phone number (via Hushed) for the same duration of your plan that was purchased - IE 7 day eSim plan gives you a free 7-day phone number Purchased coupon must be redeemed and used within 12 months This deal is not stackable (one offer per aloSIM account) A $4.50 data package will last 7 days The data DOES expire, and you WILL NOT have any leftover data for your next trip unless it takes place within the validity period. While the eSIM never expires, the actual data package is only valid for the length of time stated at purchase (i.e. seven days after activation, 30 days after activation, etc.) So if you buy a seven-day package and only use a tiny bit, that package is still going to expire after seven days. Access options: mobile (check compatibility) Max number of device(s): 1 Updates included Here's the deal: This aloSIM Mobile Data Traveler eSim $50 Credit normally costs ... $50, but it can be yours for just $24.97 for a limited time, a saving of $25 (50% off). For specifications, and license info please click the link below. Get this aloSIM Mobile Data Traveler eSim for just $24.97 (was $50) Although priced in U.S. dollars, this deal is available for digital purchase worldwide. Support queries If you have queries or need support for any of the Neowin Deals, please use the contact form here. Neowin Deals are managed and sold by StackCommerce who represent Neowin on an affiliate basis. Why we post these deals We post these because we earn commission on each sale so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. So for those that keep moaning and complaining, be thankful we're still online for you to even do that. Other ways to support Neowin Whitelist Neowin by not blocking our ads Create a free member account to see fewer ads Make a donation to support our day to day running costs Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: Neowin benefits from revenue of each sale made through our branded deals site powered by StackCommerce.
    • WordArt was cool. We now have color fonts as a substitute although Word only supports COLRv0 and COLRv1 (Fraud OS 11 only). The OpenType SVG color font format needs to be supported by Office. Adobe's apps support it
  • Recent Achievements

    • First Post
      DrWankel earned a badge
      First Post
    • Reacting Well
      DrWankel earned a badge
      Reacting Well
    • Week One Done
      Supreme Spray LV earned a badge
      Week One Done
    • One Month Later
      Genuinetonerink- Dubai earned a badge
      One Month Later
    • Week One Done
      Genuinetonerink- Dubai earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      498
    2. 2
      +Edouard
      158
    3. 3
      PsYcHoKiLLa
      90
    4. 4
      Steven P.
      74
    5. 5
      Michael Scrip
      72
  • Tell a friend

    Love Neowin? Tell a friend!