6 ms·
The biggest benefit I've found to running a 1950X isn't something I would have expected, but which perhaps I should have. True, it's much faster than my old sys
by Filligree 8y ago
The biggest benefit I've found to running a 1950X isn't something I would have expected, but which perhaps I should have. True, it's much faster than my old system for batch processing, but most of the time it's still idle. Even if it's running Chrome flat-out, as far as the 1950X is concerned, that's idle.
Because the two NUMA nodes are ~entirely independent, it's capable of running two independent processes at full speed. In practice, that means lower latencies and less jitter, and it's been noticeable. Folklore would have it that single-thread performance is the most important aspect of desktop performance, but that isn't what I've observed.
...it's also useful when I, e.g, decide to run a Factorio server on my desktop.
- mrkgnao 8y ago> Because the two NUMA nodes are ~entirely independent, it's capable of running two independent processes at full speed. I don't understand. From my (admittedly little better than layperson's) knowledge, I'm guessing the cores of most multicore processors have to compete for memory access...? Is there a good search term I can use to help me understand what's going on here?
- Osiris 8y agoThere are 2 dies in the 1950X, each one has 2 memory channels. Thus, it's possible to run a process on one (8-core) die that maxes out the memory bandwidth to it's two local DDR4 channels while the other die still has full bandwidth access to it's own DDR4 channels. Threadripper is able to switch between NUMA (non-uniform memory access) mode and "regular" mode. In NUMA, the OS knows that 2 channels are attached to 1 die and 2 channels on the other, thus allowing lower latencies because the OS knows what RAM to allocate based on which core the process is running on.
- gascan 8y agoAs a bonus, if you are explicitly NUMA & the OS/code does a good job, there's little line contention or resource sharing (e.g., caches) between die.
- Filligree 8y agoI found a significant performance benefit to keeping NUMA turned on when running Linux, for basically every workload. For Windows, it is the other way around. I hope they'll improve their NUMA handling, but I'm not holding my breath. The Linux kernel is clever about this. You can get some idea of what it does by looking at numactl, which lists the various scheduling modes -- though in practice the kernel does a great job without any user overrides, and actually using the command is likely to slow things down. Which is not to say that it can't occasionally be helpful, if you're trying to optimize the speed of a single thread. At a minimum, you can choose between optimizing for bandwidth (interleaving data on all four memory channels) or latency (putting everything in the local node). Usually you want the latter.
- vbezhenar 8y agoDoes it really work this way (with automatic memory and core pinning)? Both Windows and Linux can do that?
- blattimwind 8y agoNUMA means "(Explicitly) Non-Uniform Memory Access"; this means that some cores have easier (lower latency, higher bandwidth) access to some memory regions than others. In practice this means that memory controllers are partitioned amongst groups of cores, with some slower and often otherwise busy interconnect between those groups. The software implication is that if task X uses some bit of memory a lot, then that bit of memory better be node-local, i.e. easy to access for the core where task X is running.
- paulmd 8y agoThreadripper and Epyc are essentially multi-socket-in-a-package. There is an inter-processor link which is analogous to Intel QPI or DMI, it just runs between dies within a single socket instead of dies in separate sockets. Threadripper and Epyc present themselves as 2 or 4 separate NUMA nodes depending on model. Spreading a single task across multiple NUMA nodes usually hurts performance significantly (often slower than just running it on a single node using fewer threads), but you can run 2/4 separate tasks at pretty much full speed. The new WX processors are a little weird because two of the NUMA nodes have no direct access to RAM at all, they have to ask the other 2 dies to do it for them and pass it over.
- sandworm101 8y ago>> Folklore would have it that single-thread performance is the most important aspect of desktop performance There are a few places where it matters. We talk of "gaming" but that is too broad a term imho. Many AAA games do leverage AMD chips well. They know how to split loads across threads to maximize performance. But in recent years the hot games have come from indi developers. Pre-release titles from tiny developers aren't properly optimized. If you want to play kerbal space program, single-thread performance is vital (KSP's physics is still single-threaded iirc). If you want to surf the web while running a factorio server, AMD will work fine. But if you want to maximize the performance of that factorio server, the faster single-thread performance of Intel chips would be better.
- ReverseCold 8y agoKSP 1.1 finally added multithreading btw
- orbital-decay 8y agoOnly for different spacecraft, so it only really matters for some planetary bases. A single spacecraft is still processed in a single thread.
- sandworm101 8y agoWhen launching a rocket, that rocket's physics engine is still on a single thread. Given that the physics engine is the most CPU-intensive part of KSP, I'd say that KSP's support of multithreading is nominal at best. Multithreading aside: KSP's approach to physics also doesn't help them. Rather than make creative decisions re what should and shouldn't be calculated, they just hammer the physics thread with lots of calculations that have zero impact on the user experience. In a larger dev these would be optimized away.
- Twirrim 8y agoKSP is now owned by Take Two Interactive (since May). Here's hoping they can get those dev resources!
- adiusmus 8y agoI run 4 simultaneous factorio servers on my old 32gb laptop. How many servers is your 1950x capable of? How much ram do you have? The 1950x is looking like a viable upgrade right now as it’s becoming cheaper.
- Filligree 8y agoI have 32 GB of ram, but you could easily fit 128 GB if needed. Above that, I think sourcing the chips becomes difficult. If you aren't concerned with getting absolute maximum speed from the servers, then I'd think you could run 16 of 'em with only moderate degradation; perhaps 20-30% slower (per server) than a single server. Feel free to imagine the Clusterio applications.
- adiusmus 8y agoWe’re running 43 clusterio-like connected worlds here. Worlds allocated 8gb ram each. Less if we can get away with it by deleting unused chunks.
- Filligree 8y agoHow do you deal with biters? That's been the real blocker for me. I don't want to disable them entirely, but worlds need to keep running while there are no players in them. So...?
- adiusmus 8y agoUse deliberate antagonism. Create an artillery cluster with flamethrowers and uranium ammo turrets around outside. Space these outside your main base defences. Make them high priority for replenishment. Self contained solar power and accumulators as well as grid power. Don’t use laser turrets except for very inside of cluster. Use thick walls with mixture of solid walls on inside and every-other spacing on outer. Main base exterior walls use a mixture of uranium turrets, flamethrowers and laser turrets. Use laser turrets wrapped around large power pole within base. But no interior walls. Redundant connections using large power poles. Substations are for ordinary structures.
- ksec 8y ago> Folklore would have it that single-thread performance is the most important aspect of desktop performance, but that isn't what I've observed. It still is. It is only that we have approach the end of the performance limit, or it has approached the same as its competitor that you want to trade double the core count vs ~20% more maximum single thread performance.
- philwelch 8y agoOne instance of this might be "running a performance-intensive game fullscreen on one virtual desktop while having a browser open to read strategy guides on another virtual desktop". This is a common use case for me that also seems to be the first place where performance starts to diminish.
- paulmd 8y agoHaving a browser open uses approximately 0% CPU though. Streaming would be a better example.
- pedrocr 8y ago>Having a browser open uses approximately 0% CPU though. Not on the modern web it doesn't. A lot of pages are continuously running background tasks and refreshing over time.
- philwelch 8y agoIf you have "a browser" open, sure, if by "a browser" you mean a single browser tab on a not-resource-intensive page or with Javascript disabled. If by "a browser" you mean the dozens of tabs and half-dozen browser plugins the typical user is actually running, though...well, there's a reason Chrome comes with its own process monitor.
- Dylan16807 8y agoBut "strategy guides" are in the former category, aren't they? And for reference all my background tabs in chrome are using plenty of memory but <1% CPU total. It helps that the browser has aggressive throttling for background tabs. Edit: it's even more aggressive than I thought https://arstechnica.com/information-technology/2017/03/chrome-57-background-tab-suspension-download/ https://arstechnica.com/information-technology/2017/03/chrom...
- philwelch 8y agoI dunno what to say, man. It's a real problem that I've run into.
- nodesocket 8y agoI just upgraded from a 13" MacBook Pro with 2 cores to a 15" 2018 MacBook Pro with 6 cores (Intel cough, cough), the difference in performance is substantial and very noticeable. The folklore that increasing cores does not translate, feels outdated now that operating systems and applications are designed to utilize multiple cores. I do wonder if there is a point of diminishing returns though. 24, 32 cores, is it really worth the extra money?