The System Bottleneck Shifts to PCI-Express
nextplatform.com
nextplatform.com
[1] http://www.tomshardware.com/news/amd-threadripper-vega-pcie-...
As it gets harder each year to improve CPU performance, the HPC community has shifted to more workload-specific accelerators, most notably GPUs for high-throughput parallel data processing. These accelerators still rely on the host CPU to dispatch commands, but in recent years we've seen workloads really focus on and target the accelerator device (eg neural networks on the GPU).
If one wants to build a multi-GPU cluster, then the CPU quite plainly "gets in the way" - performance can very quickly be bottlenecked by weak inter-device bandwidth (PCIe 3.0 x16 = 16GB/s, vs. the GTX 1080 Ti onboard DRAM's ~500 GB/s). Not to mention the fact that the PCIe controller is on the CPU die, meaning inter-node bandwidth and latency also strictly favor the CPU.
For large-scale systems, the value proposition of multi-GPU is greatly neutered by reliance on the PCIe bus, and so Intel stays relevant for many applications. And for the last 5 years, Intel's utter dominance of the HPC/server market meant that they could limit PCIe lanes without much pressure from their customers. With Ryzen/EPYC (128 PCIe 3.0 lanes!!) that old order looks set to change.
Even there the CPU can be the bottleneck. I have a Samsung 960 Pro that's theoretically capable of 3GB/s reads but when you use disk encryption even with AES-NI the processor can only do ~2GB/s.
NVIDIA is also in a tough spot in that they can't cooperate too closely with either Intel or AMD now that the race for accelerators is heating up. Understandably they're pretty psyched about Tegra but I'm not sure I'd want to rely on that and I bet they don't either.
Memory is also really slow too, but AMD's 6+ memory controllers will help.
What's interesting in this article is that the bus is becoming a local bottleneck between various system resources. (cpu/gpu/accelerators)
Even having enough bandwidth, handling 25 GB/s data, except for hardware-accelerated network processing, is very hard when current processors have 60 GB/s of RAM bandwidth (DDR4, dual channel), and even with zero-copy modern OS is going to be hard for the CPU to process the packets on continuous full load. That's mind blowing, and amazing :-)
And yes, IB is designed such that the NIC HW can offload quite a lot, and the rest is indeed done in userspace without kernel involvement in the hot paths.
That being said, it's possible to run more or less the IB protocol stack on ethernet hardware, it's called ROCE (RDMA over converged ethernet). Somewhat amazingly, latency is actually quite competitive with IB.
The 6-pin PCIE power connectors can handle 75W, the 8-pins 150W, according to the specs. Some video cards have multiples of these connectors, to allow for very high power consumption. If more power is needed they'll just add more and require a bigger power supply.
From what I hear, most all of the major DL research labs are using 4U servers with 8 of either the 1080ti or the Titan Xp rather than the SXM2 Teslas. On the other hand, all of the cloud providers seem to be sticking with the Tesla products, and pricing GPU instances commensurately. I really wish there were a cloud provider that offered instances with the gamer cards in them so that companies in the DL field weren't effectively forced to buy and manage their own hardware.
See this comment of mine: https://news.ycombinator.com/item?id=14597486
Why not just connect high performance devices directly to hypertransport, Infinity fabric, QPI, or whatever the fast cache coherent serial interface of the day is?
These things would make cards cost many times more than they currently do which isn't feasible. Better a "slow" standard that works.
These days Intel's putting Omnipath on-package for Xeon Phi and Skylake. Likely it's still a PCI-Express connection, but it doesn't count against the total available lanes for external cards.
Hmm, why? Intel executed well with Nehalem while AMD stumbled, leaving HTX even more niche than it already was, or do you mean there was some fundamental (technical) problem with it?
> These days Intel's putting Omnipath on-package for Xeon Phi and Skylake. Likely it's still a PCI-Express connection, but it doesn't count against the total available lanes for external cards.
Assuming the parts with integrated omni-path use the same socket, some pins will be needed for the OPA connection, no? Presumably pins that were reserved for PCIe in the normal chips, I'd guess...
I would think that's dependent on the specific platform more than anything. For example, on a cache coherent architecture like the Freescale T2080, if a PCI device writes to some RAM location that's currently cached, the line automatically gets invalidated. There’s this whole “coherency fabric” thing which handles all of the snooping and interaction between the peripherals.
https://developer.arm.com/products/system-design/development...
It seems like we'll be sticking with PCIe x4 interfaces for SSDs for quite a while; client/consumer use cases don't allow for higher pin counts, and at the moment there's not much reason to prefer using half as many SSDs with twice the lane count for enterprise storage, especially when it means none of the parts can be shared with the client/consumer ecosystem.
It's not about general purpose computing.
Pretty specific. Good article.
I wonder, does the author know how network cards are attached to CPU? There is no magic, apparently. And on most desktops you can not even have a full size video card and a 10GE adapter working simultaneously at full speed. And this bottleneck is in CPU (its interfaces).