StrangerGuy
Diamond Member
- May 9, 2004
- 8,443
- 124
- 106
Intel ticks are like super boring compared to their tocks. Ivy is no exception.
You are completely wrong. Haswell isn't about IPC at all. I'd be surprised if they made any significant changes on that front. Instead, Haswell is about SPMD and hardware transactional memory.I think Haswell may cure world hunger if its as good as the people here think.
Also, "early 2013" for Haswell seems like a joke. My prediction is next June and it will be a 12-15% IPC increase over IB.
I could be completely wrong, but I think people are way too optimistic about Haswell.
It's best to stop talking about IPC in isolation altogether, because it doesn't say anything about the effective performance for applications (just like the MHz myth). AVX2 doubles the amount of work that can be done per instruction.
It's really a very different situation. When SSE2 was introduced, it was still executed on 64-bit execution units. And since there were many lacking instructions, it was very hard to obtain any speedup over 32-bit scalar code. Furthermore, it took years for major compilers to support it, and because of the complications they do a lousy job.In this case you can, because both AVX and TSX requires optimizations. It's just like with SSE2. IPC gains on the other hand, will show without recompiling.
I'll keep my 2700k for now
You are completely wrong. Haswell isn't about IPC at all. I'd be surprised if they made any significant changes on that front. Instead, Haswell is about SPMD and hardware transactional memory.
It's best to stop talking about IPC in isolation altogether, because it doesn't say anything about the effective performance for applications (just like the MHz myth). AVX2 doubles the amount of work that can be done per instruction. In the case of load operations it can even do up to eight times more work per cycle. And hardware transactional memory will enable lots of applications which previously had bad multi-core scaling behavior to synchronize tasks between cores much more efficiently. It also opens the door to automated threading by the compiler.
So unless you thoroughly understand the implications of these technologies, please don't say people's expectations are too high. These features have been fully confirmed and are eagerly awaited by professionals.
Likewise, TSX can be used by the operating system after downloading an update.
Yeah but that's silly because it totally depends on how it's being used. Haswell makes vectorization and multi-threading a lot more efficient, so with little effort software that was previously single-threaded and scalar can run up to 32 times faster! So talking about an IPC improvement of ~15% is downright stupid, regardless of what meaning is given to it. If that's all the speedup you're getting out of Haswell, you're running horribly unoptimized software, end of story. Developers will no longer have any excuse for not using your CPU's computing power to its fullest.I am pretty sure people who say "IPC improvements between generations" mean "Performance Per Watt" or "Performance Per Clock" and just don't think about the exact meaning of the acronym they choose to use.
Got the tracking on my 3570K. Will be here tuesday
Yeah but that's silly because it totally depends on how it's being used. Haswell makes vectorization and multi-threading a lot more efficient, so with little effort software that was previously single-threaded and scalar can run up to 32 times faster! So talking about an IPC improvement of ~15% is downright stupid, regardless of what meaning is given to it. If that's all the speedup you're getting out of Haswell, you're running horribly unoptimized software, end of story. Developers will no longer have any excuse for not using your CPU's computing power to its fullest.
I understand that less knowledgeable people would like to put a percentage on how much better one CPU is compared to another, but it just doesn't work that way. It's like putting a percentage on how much better a new car is compared to your previous one. It's downright impossible without qualifying the metrics and circumstances.
Haswell is revolutionary but you shouldn't try to use old metrics to valuate it.
Who cares about single-threaded software? Expecting it to be any faster is like expecting your new car to be any faster than your old one when waiting for a traffic light.Oh yea sure, just like Hyperthreading could be taken advantage of with single threaded applications if you run enough of them simultaneously.
The problem with trying to improve IPC is diminishing returns. You need caches that are twice as big to gain maybe 10% tops. That's utterly ridiculous! Oh and it doesn't help all software either, just the ones that have working sets which don't fit into the old cache size.No doubt technologies like Hyperthreading, TSX, and AVX are important. But they are not like adding caches or having better branch prediction that even an application from 20 years ago would be faster.
Who cares about single-threaded software?
....
Also, once applications are properly multi-threaded and vectorized, it's fairly straightforward to scale to more cores and wider vectors. So it's basically a one-time effort and the incentive is huge.
Wrong guess pal. I'm a software development lead. And before you make any more guesses, I've written a lock-free hierarchical task dispatcher. You?Let me guess. You are a hardware guy. You never wrote a single line of code in your life.
Yes, which is precisely why engineers like me are excited about TSX. It makes problems like deadlock, convoying, priority inversion, etc. a lot more manageable or even go away.Programming parallel algorithms is hard.
Duh. Of course not "all" problems can be "easily" parallelized. But AVX2 and TSX are unmistakably a huge leap forward to make a lot more problems vectorizable and threadable, and more easily too.Not all problems can easily be parallelized.
True, but that's due to a lack of hardware more than anything else. Why would anyone invest time and money into creating (free) tools while current CPUs still have a broken SIMD model and inefficient thread synchronization? Like I said before, it's a cost/gain issue. But Haswell offers no less than four incentives to make all layers of software more suited for parallelization:There are very few tools for programmers.
That's exactly why we have OpenCL and other forms of SPMD programming. It offers a seemingly sequential programming model but it really is massively parallel under the hood. GPUs have relied on it for decades and there are no major issues for application developers to write robust and scalable code. And while SPMD is an explicit programming model, there's also a huge opportunity for legacy sequential code to be auto-vectorized and auto-threaded by compilers. AVX2 and TSX make that feasible.And most programmers have a hard time writing sequential code already. For them it's even trickier to write good, robust and scalable parallel code.
I didn't say it doesn't matter. Heck, in an ideal world we'd have 100 GHz single-core processors by now so developers didn't have to deal with the issues of parallelization at all. But the reality is that IPC has hit a wall so instead of investing lots of transistors into it for little gain, we instead need technology which makes parallelization a much more attractive solution. Haswell offers exactly that, and then some.Ergo, single-thread performance does matter and will matter for a long time to come.
How? Is it an engineering sample or something?
Who cares about single-threaded software? Expecting it to be any faster is like expecting your new car to be any faster than your old one when waiting for a traffic light.
There are three types of single-threaded software:
1) Old software that doesn't need any higher performance.
2) Outdated software for which a multi-threaded version/alternative exists.
3) Software for which the cost/gain of multi-threading hasn't been worthwhile yet.
Haswell's TSX support can't help (1) and (2), nor does it have to! But it helps (3) in two big ways. It makes synchronization more efficient so the gains go up, and it simplifies things for developers so the cost goes down. And to a large extent it will be used by the operating system and middleware, so application developers will benefit from it without much if any effort on their end.
The problem with trying to improve IPC is diminishing returns. You need caches that are twice as big to gain maybe 10% tops. That's utterly ridiculous! Oh and it doesn't help all software either, just the ones that have working sets which don't fit into the old cache size.
So I'd much rather see Intel (and AMD) add functionality which has the potential to speed things up by 3000%! Yes it takes some developer effort, but it's easily worth it. Also, once applications are properly multi-threaded and vectorized, it's fairly straightforward to scale to more cores and wider vectors. So it's basically a one-time effort and the incentive is huge. TSX is specifically intended to make it easy for developers to achieve high gains, and AVX2 finally offers a vector equivalent of every relevant scalar operations, and is specified to be scalable up to 1024-bit. So with new software you'll see an instant speedup when upgrading. Single-threaded non-vectorized code will become a thing of the past so we should not use them for performance evaluation.
Saying that Haswell might only increase the IPC by a small amount isn't doing it any justice. It's ridiculous to look at the 10% (if that) while ignoring the 3000% potential.
Also keep in mind that CPUs usually last 3 years or more. I still have a Nehalem and at the time I bought it some people said 4 cores was overkill but today they feel pretty stupid. Likewise a Haswell CPU may not offer much benefit on day one but I'm sure as hell it's going to last a lot longer than an Ivy Bridge and the latter doesn't offer much over my Nehalem.
Wrong guess pal. I'm a software development lead. And before you make any more guesses, I've written a lock-free hierarchical task dispatcher. You?
Fully agree. It could be a major step forward.Yes, which is precisely why engineers like me are excited about TSX.
So we seem to agree. Not much has been done regarding tools. And thus parallel programming is up to the individual programmer to deal with.True, but that's due to a lack of hardware more than anything else. Why would anyone invest time and money into creating (free) tools while current CPUs still have a broken SIMD model and inefficient thread synchronization?
Even if Haswell is so good, it will take years for the effect to tripple down. First the software tools need to be build. Compilers, debuggers, etc. Heck, maybe we first need to settle on a good model to work with. Then people need to learn to use those tools. Then the software has to be written and deployed. I don't think this will be done in a few years. Until that time, single-thread software and performance matters.Software development won't be the same after Haswell.
Your first sentence was: "Who cares about single-threaded software".I didn't say it doesn't matter.
I fully agree with you (of course). But that has nothing to do with today's situation. Single-threaded software and performance still matters.Heck, in an ideal world we'd have 100 GHz single-core processors by now so developers didn't have to deal with the issues of parallelization at all. But the reality is that IPC has hit a wall so instead of investing lots of transistors into it for little gain, we instead need technology which makes parallelization a much more attractive solution. Haswell offers exactly that, and then some.