19 ms·
64 Core Threadripper 3990X CPU Review
- axilmar 7y agoThe article presents the situation as if limiting the number of threads by the operating system is not a conscious choice by Microsoft but a natural law that cannot be avoided. Microsoft deliberately does these limitations in order to force people to pay more for its sofware. It's a shame, really.
- Semaphor 7y agoIsn’t that the same with a lot of hardware? Like CPUs where you have to pay more to get a feature unlocked that’s there but unusable when you do not pay extra? And also the same for almost all software with multiple feature sets. I don’t understand why it’s bad when MS does it.
- dsr_ 7y agoI assert that it's usually bad when anyone does it, because it is evidence that they have excess market power. If there were enough competition, they couldn't produce a thing with capabilities x,y, and z and then charge an unlock fee for y and z.
- rat9988 7y ago>it is evidence that they have excess market power. Tesla doesn't and they still dot it.
- ClumsyPilot 7y agoDoesnt it? It has huge brand value, a great niche, mass flowing... it's almost apple of cars.
- bostonpete 7y agoLots of complex software systems are sold this way, allowing customers to add-on features a la carte. I don't see that as a bad thing -- allows people who only need a subset of the functionality to only pay for what they need. Oftentimes, the functionality is sitting there waiting to be unlocked.
- Semaphor 7y agoSo for example LINQPad [0] has excessive market power? It’s a REPL for C#. [0]: https://www.linqpad.net/Purchase.aspx https://www.linqpad.net/Purchase.aspx (Purchase site has the version comparison) edit: I’d actually go as far as saying that by your definition almost every good software tool has excessive market power.
- undersuit 7y agoYour software is all the same quality. The copy one customer has doesn't have a series of bits in it that are mistakes in the production that can't be removed. Everyone's binary is capable of the same actions. Software is malleable, hardware by it's very name is less so.
- 7952 7y agoThe alternative may be that having a single price point would price some consumers out of the market.
- zaarn 7y agoMost mainframe manufacturers will ship you a mainframe that has been configured way above what the customer ordered. Because in most cases the customer will upgrade and changing a license key is cheaper than building and shipping a new mainframe.
- sounds 7y agoSibling comments assert that software with unlocks demonstrates the importance of allowing "locks" on capabilities. That's the "affirming the consequent" fallacy. Specifically, siblings start from the true statement that: people buy software with locks. They then affirm the consequent, that software with locks is the correct market solution.
- maccard 7y agoHardware is _kind of_ different. Hardware is usually binned for tolerances/expected demand. e.g. the manufacturing process for an i5 and an i3 might be the same, but the acceptable tolerances for an i3 are lower. If the part fails the test for an i5, it will be sold as an i3, and the extra features disabled. This makes sense, otherwise you run into a bad press part lottery. (of course they do also bin based on demand/sales, which is scummy.)
- ChuckNorris89 7y ago>of course they do also bin based on demand/sales, which is scummy. Why is this scummy? It's a free market and it's not a life saving drug, they can ask for whatever they want, nobody is forcing you to buy it. That's like saying "Software engineers are paid according to demand/market which is scummy." The best business strategy for companies and professionals alike is to find a niche with less competition where you are a leader(cough, monopoly, cough) and charge whatever the market will bear. If Apple/Microsoft/AMD/Intel can get away with that it means the market can bear it. The fact that you don't like it, is another issue.
- bobbob1921 7y agoi agree , you can also add vmware to this list. they ship a free (and great imo) hypervisor which has full features built in, with only a license key unlocking those advanced (and expensive) features. this also applies to almost every piece of demoware software.
- zozbot234 7y agoBecause it's price gouging. They would be actively restricting supply of their highest-performing parts for no other reason than to charge a higher price for them. Software engineers don't do this, they're highly paid because demand is so huge that it outstrips even an ample supply. Of course, in practice, it can be hard to tell whether intentional "crippling" is going on. Yield problems are common and might manifest in the exact same way, after all - for example, chips that don't "make timing" for their design frequency can be sold for lower specs.
- analognoise 7y agoThat's an uncharitable take - that pricing model supports some seriously good engineers doing amazing work. And how many people could afford tens of thousands of dollars for hardware but can't afford... Googles it... $84 a year per user. Or $168 for E5 per year. That just doesn't strike me as Microsoft being bad?
- daemin 7y agoSupporting only 64 processors in a group on a 64bit operating system seems like a reasonable and sane technical solution. It means you can use a single 64bit variable as a bitmask for various processor related functions in a process. I would bet that many other bits of software also have this limitation because they too thought that using a 64bit value for a processor mask would be sufficient.
- kijin 7y agoA 6-bit variable would be enough to hold 64 values.
- Adrock 7y agoThat doesn’t allow you to use it as a bit mask, which is what OP was saying.
- phamilton 7y agoAnother way to express this is that a 64-bit value can express every combination of processors, so if you want to say something like "this process should run on these 12 specific processors" you can do so in a single 64-bit value.
- thedance 7y agoThere are loads of places where it’s more convenient to test a bit vector than compare a scalar value. It’s just cheaper at runtime. Of course it may be possible to cheaply extend the bit vector scheme to 128 bits or even 256 fairly easily, using the native vector registers. But I bet Windows still supports some pretty old models of CPUs.
- dragontamer 7y agoBut you need 64-bits to represent affinity masks and scheduling. IE: Which of the 64-cores are available for a thread to schedule into. ---------- Furthermore, your Threadripper 3990x should ONLY really be pushing affinities for across a 8c / 16-thread die anyway, at least as far as the Windows scheduler is concerned. Windows programmers should use multiple thread groups for different 16-thread CCX. Because its extremely costly to move all of your local state from one die's L3 cache into another. https://images.anandtech.com/doci/15318/amd_rome-678_678x452_575px_678x452_678x452.png https://images.anandtech.com/doci/15318/amd_rome-678_678x452... Look at the chip, like physically look at it. AMD has 9x chips here (1x I/O die for memory, and 8x compute chips, each with 8x cores). You really only want to be moving threads within those 8x cores, because moving a thread across chips is less efficient. So the ideal world, people would understand Windows's scheduler and work around it. Instead of complaining about how it is different from Linux's. Windows's Thread groups being 64-sized is reasonable for the job it wants to do... and there are other parts of the API that allow you to work across Window's 64-sized processor groups. In particular, to increase your affinities across to a 2nd processor group.
- jgaa 7y agoThe easy solution is to run Linux.
- smallstepforman 7y agoYou misspelt Haiku.
- artificial 7y agoI want to believe.
- traskjd 7y agoGiven the yet-unreleased new kernel only starts to add support for Zen3, I’m not sure this is entirely true.
- bildung 7y agoThe 3990X is Zen2, Zen3 isn't released yet.
- Fnoord 7y agoAnd Zen2 works perfectly fine on Linux. What does not work (confirmed on my Ryzen 3900X) is k10temp.
- AbacusAvenger 7y agoDoes not work in what way? Doesn't report anything, reports incorrect values, what? It seems to be working fine for me on kernel 5.5.0 on a 3800x and on a 3950x...
- Fnoord 7y agoIt lacks a lot of data like vcore, CCX, etc. See e.g. [1] [1] https://www.phoronix.com/scan.php?page=news_item&px=K10temp-Could-Improve-5.6 https://www.phoronix.com/scan.php?page=news_item&px=K10temp-...
- pella 7y agohttps://news.ycombinator.com/item?id=22266386 https://news.ycombinator.com/item?id=22266386
- logicchains 7y agoI'm curious, to anyone working on Windows kernel development, at what point does a feature/scheduler improvement become so good that people decide "nah, this is way too cool to put in Windows Home Edition, let's feature-gate it to the enterprise version instead!"?
- dvdbloc 7y agoI wish I could see a statistic on the number of people that would have bought Win 10 Home to run on their 64 core machine if only it had support for 64 cores!
- 0xfaded 7y agoBuy a 64-core processor and futureproof against the coming 64-core Windows
- tinco 7y agoIt's going to happen soon. AmD's high end consumer model is already very close to that number. When these become commonplace, say in 8 years, someone might find something fun or productive to do with 64 cores, and it's gonna suck if your OS is the bottleneck.
- rubber_duck 7y ago> When these become commonplace, say in 8 years Someone is going to run an OS from 2020 on a brand new machine in an age where 64 threads is common place ? These things get segmented according to market - home is tailored to suit commonplace.
- AlfeG 7y agoYou mean all those people still running Windows 7 in 2020?
- rubber_duck 7y ago
- tbenst 7y agoWish they’d review on Linux. Windows does not seem like the target audience given all the limitations.
- nattmat 7y agohttps://www.phoronix.com/scan.php?page=article&item=3990x-threadripper-linux&num=1 https://www.phoronix.com/scan.php?page=article&item=3990x-th...
- btmorex 7y agoI agree. An even bigger problem is that most of the benchmark suite is completely irrelevant to what these CPU's are going to be used for. These are meant for servers. They should keep that in mind when selecting what benchmarks and which operating system to use.
- atq2119 7y agoThe Threadripper CPUs are meant for workstations / high-end desktops (HEDT), not servers. For servers, you'd want the EPYC line. The benchmark selection is somewhat reasonable, though yes, you'd want some Linux tests in there.
- thedance 7y agoYou just answered the question. It would be interesting to see TR and EPYC head-to-head in server workloads, to confirm or deny the theory that EPYC is better for them.
- Forgivenessizer 7y ago"Not everyone needs 64 cores, and AMD has been very clear about this in their messaging." Can people stop saying that sort of thing? Yes, you might not need it now, but eventually everybody will need even more.
- numlock86 7y agoThe last benchmark is interesting: > 1080p60 HEVC at 3500 bitrate with "Fast" preset - 319 fps Ok, why were these parameters chosen? What's the application? I recommend everyone to look at 1080p60 video footage encoded with h265 with the "fast" encoder preset at 3500 bitrate. Calling it terrible would be a compliment. Unless you encode really slow and visual easy motion, which brings up the question why you would need 60 fps in the first place. Even at the "medium" preset with 1080p60 you should - regardless of application - be at least in the 5000+ range with your bitrate. And even that comes with a lot of trade offs, because that's just where live streaming starts.
- Sesse__ 7y agoI believe most of these benchmarks were set at a time when you simply couldn't run x265 on “slow” on any reasonable CPU if you ever wanted it to complete. But yes, I'd really like CPU benchmarkers to move to higher-quality presets for video encoding, because they do tend to have different kinds of performance curves. Fun fact: There's no point in running x265 on the fastest presets unless you absolutely need to have HEVC; x264 on slow is faster _and_ gives better quality per bit. See the second graph on https://blogs.gnome.org/rbultje/2015/09/28/vp9-encodingdecoding-performance-vs-hevch-264/ https://blogs.gnome.org/rbultje/2015/09/28/vp9-encodingdecod... (a few years old, the situation is likely to look similar but not identical).
- ksec 7y ago>(a few years old, the situation is likely to look similar but not identical). x265 has made massive improvement over the years, 2015 x265 wasn't even considered good; despite all of its hype, or another way to think about it is how well x264 managed to squeeze every last bit of detail possible.
- Sesse__ 7y agoIIRC, I redid this graph in early 2019 (using Tears of Steel), and it looked pretty similar.
- ageofwant 7y agoHonestly. Windows is just a waste on that architecture as it stands. Run Linux as base OS and give 8 cores to the Windows VM should you have use for it.
- rbanffy 7y ago64 threads ought to be enough for anyone. If I am investing USD 4000 on a CPU, I'd probably go for the EPYC part for 500 more and twice the memory bandwidth. It'd be interesting to run these benchmarks under perf to see how many L3 cache misses happen and how much they cost in cycles.
- tuananh 7y agoEPYC is only 500usd more? btw, the cost for server component would probably be more expensive too right?
- philjohn 7y agoPlus lower base and boost clocks
- rbanffy 7y agoThat is somewhat offset by twice as much memory bandwidth. Every L3 miss on a 3990X is twice as expensive as it's on the 7702P
- dragontamer 7y agoAnd the EPYC uses higher latency RDIMMs and LRDIMM RAM. Traditionally, server RAM (RDIMM or LRDIMMs) is 50ns+ slower than consumer UDIMMs. Video games and pointer-chasing care more about that latency figure than bandwidth. I'm sure there are bandwidth-bound tasks, but any latency-bound task would prefer highly-clocked, over-volted (1.35V) DDR4 UDIMMs at 3200 MT/s CAS16 or faster. Server RDIMMs are naturally slower, due to the register (and LRDIMMs are probably even slower). RDIMMs and LRDIMMs are designed for capacity more so than latency: you can have 1TB of LRDIMMs RAM on one machine but all the RAM runs slightly slower (3200MT/s maybe CAS22 or slower) as a result.
- tuananh 7y ago> 50ns+ slower than consumer UDIMMs. is that like twice as slow?
- govg 7y agoUnsure how to tag people like dang, but is it possible to change the link or the title? The link is for page 3 of the review, which is a broader discussion about multi-threading on Windows.
- thomasahle 7y ago288MB Cache. I wonder if we'll ever be given some control about how and what computations are cached. It seems like a lot of memory to leave to simple heuristics.
- TaylorAlexander 7y agoI’ve heard these “simple heuristics” are multi-megabyte neural networks these days. I believe I heard that claim in this video: https://youtu.be/ymcOLL2qEg8 https://youtu.be/ymcOLL2qEg8
- pas 7y agoUsually branch prediction is what ANNs are used for in CPUs. Caches usually operate as complicated pseudo-LRUs. https://stackoverflow.com/questions/22597324/what-cache-invalidation-algorithms-are-used-in-actual-cpu-caches https://stackoverflow.com/questions/22597324/what-cache-inva... It's possible that Tesla does something different that makes sense in their specific situation, but general purpose CPUs - as far as I know - don't use NNs for this.
- Sesse__ 7y agoRyzen and some ARMs use perceptrons for branch prediction. It's essentially a single-layer neural network with no nonlinearity at the end. Multi-megabyte NNs for a normal branch predictor would be impossible; way too high latency to be useful.
- tasubotadas 7y agoReading this makes me mad that Python still hasn't sorted its business out with GIL.
- glangdale 7y agoDon't know why the downvotes; this limitation of Python is really hard to fathom. IIRC they had a project to remove it and it went into the weeds somehow (I think it made performance worse?)
- bildung 7y agoBecause e.g. nodejs has a GIL, too, and apparently no one thinks this is a problem. For web applications one usually has a software chain like web server <-> wsgi server <-> dozens of python instances. Standalone processes just implement threading, which also is fairly easy (as far as theading itself can be easy). Scientific libraries like scipy can use parallel processes automatically in the background (using things like BLAS), as long as the data is modelled correctly.
- tasubotadas 7y agoI just gonna repost what I've written before about this before: The current state of threading and parallel processing in Python is a joke. While they are still clinging to the GIL and single-core performance, the rest of the world is moving to 32 core (consumer) CPUs. Python's performance, in general, is a crappy[1] and is beaten even by PHP these days. All the people that suggest relying on multiprocessing probably haven't done anything that's CPU and Memory intensive because if you have a code that operates on a "world-state" each new process will have to copy that from a parent. If the state takes ~10GB each process will multiply that. Others keep suggesting Cython. Well, guess what? If I am required to use another programming language to use threads, I might as well go with Go/Rust/Java instead and save the trouble of dabbling with two languages. So where does that leave (pure-)Python? It can only be used in I/O bound applications where the performance of the VM itself doesn't matter. So it's basically only used by web/desktop applications that CRUD the databases. It's really amazing that the machine learning community has managed to hack around that with C-based libraries like SciPy and NumPy. However, my suggestion would be to drop GIL and copy the whatever model has been working for Go/Java/C#. If you can't drop GIL because some esoteric features depend on that, then drop them as well. [1] https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/python.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- wewake 7y agoThis article is more about Windows 10 limitations than 3990K. Good read though.
- sgt 7y agoNow imagine a Beowulf cluster of these.
- tareqak 7y agoWhat is the latest on just turning of SMT/Hyperthreading? Then you don't run into the greater than 64 threads issue with this CPU? I remember there being a reason to turn it off unrelated to performance, but I do not remember if there was more than one reason [0]. [0] https://marc.info/?l=openbsd-tech&m=153504937925732&w=2 https://marc.info/?l=openbsd-tech&m=153504937925732&w=2
- bluedino 7y agoOr save $1990 and just buy the 3970X
- masklinn 7y agoThe 3970X has half the threads because it has half the cores, not because SMT is disabled. You may want to avoid the issue by giving up 10% if your performances, less so by giving up 50%.
- gameswithgo 7y ago3970X also has much higher clock rates though! Might be a net win for some workloads.
- tareqak 7y agoYes, but if you care about 64 threads without the possible side-channel issues that SMT currently/theoretically has, then you are back to the 3990X. For what it is worth, I have an AMD Ryzen 2700X Eight-Core Processor that I got in 2018, and I keep SMT off. I do some light gaming with it, and I am happy. I did not notice a big drop in performance, but I did not truly measure the difference.
- exabrial 7y agoThe article is more about a bug in Windows and it's scheduler than actual benchmarks.
- ajross 7y agoTo be fair, scheduler misfeatures are a whole lot more interesting than benchmarks that scale in expected ways.
- thedance 7y agoComputers exist to run software. If the computer doesn’t actually run the software well, then it’s not interesting that it seems powerful on paper.
- aschismatic 7y agoThe title is misleading because the submitted link is to the third section of the review. A link to the full review was submitted last Friday [0]. [0] https://news.ycombinator.com/item?id=22266386 https://news.ycombinator.com/item?id=22266386
- nxc18 7y agoNot sure who needs to hear this, but another _huge_ Windows 10 limitation: no support for nested virtualization on amd processors. This means Ryzen users can’t benefit from a bunch of security improvements and also things like the new Windows 10X emulator can’t work. Kind of off topic, but it’s the kind of nasty surprise I wouldn’t want to get after deciding to buy, so hope this helps someone. https://windowsserver.uservoice.com/forums/295047-general-feedback/suggestions/31734808-nested-virtualization-for-amd-epyc-and-ryzen https://windowsserver.uservoice.com/forums/295047-general-fe...
- sebazzz 7y agoIs this an limitation on the processor or on Windows itself? Since virtualization is not part of x86 but rather vendor specific, is the AMD implementation difficult?
- nxc18 7y agoIt appears to be a Windows limitation - I'm not an expert, but my understanding is that AMD supports all the same extensions for it (under AMD rather than Intel branding) and it appears the Windows team is (finally) working on it. I understand that other hypervisors do support nested virt on AMD. To be fair to the Windows team, AMD in the data center / pro desktops wasn't really viable for a very long time, so its understandable that it wasn't prioritized.
- traskjd 7y agohttps://twitter.com/withinrafael/status/1227505393439346688?s=21 https://twitter.com/withinrafael/status/1227505393439346688?... Sounds like it’s coming.
- alg0rith 7y agoMeanwhile, AMD's Navi doesnt have stable drivers...