You need to make full use of the bandwidth for this to be an overall win.
You need to make full use of the bandwidth for this to be an overall win.
We (Netflix CDN) are currently bandwidth limited for serving TLS encrypted video using software ktls. (~100Gb/s on broadwell, 150-160Gb/s on skylake/cascade lake, 220Gb/s on EPYC Rome). So I'd love to have twice the bandwidth. With twice the bandwidth, I think we could probably serve 400Gb/s from a single Rome based box.
Note that I'm also looking forward to trying new kTLS offload NICs that should cut the bandwidth requirements.. those are a much more viable short-term path forward.
There is also a thread in HN if you're interested [1].
The 220g is from a prototype with a Rome CPU in a Naples-designed motherboard, with 4 Mellanox ConnectX-4 100GbE NICs. 2 of them are limited to Gen 3 x8 (since it is a Naples generation mobo).
If you hear people in the US complaining about their internet connection, it is because the local duopoly of telephone and cable company is failing them. In terms of industrial fiber, the competition is fierce and you can light up Nx100G to almost anywhere in the country.
I worked on a few CDN projects, and on a DC project for Alibaba. Even in 2013, I think, all big CDNs used Intel hardware accelerators.
The beauty of this approach is that if you need more TLS bandwidth, you just plug more TLS cards, and you are done.
Otherwise, it's impressive to see how much TLS throughput people can get on CPUs today. Back in 2013, the best accelerator was only able to pull like 30Gb/s per card
Looks a lot now, but back then you didn't have server CPUs with gazillion cores on the cheap.
It was also about getting more bandwidth to a single server. 20Gb/s was a practical limit per mainstream server, but with accelerators you could've multiplied it many times more than the fastest CPU on the market.
You also didn't have the AES instruction set to improve the SSL performance.
- disk DMA writes page from disk into DRAM
- CPU (or PCIe crypto accel DMA) reads page from DRAM
- CPU (or PCIe crypto accel DMA) writes encrypted page to DRAM
- NIC DMA reads encrypted page from DRAM
Nothing changes from a memory bandwidth standpoint if its the CPU or a PCIE device doing those middle 2 steps. With "NIC TLS" (eg, inline hardware TLS) accelerators that sit on the NIC, those 2 middle steps can be eliminated, and condensed to the pre-crypto dataflow - disk DMA writes page from disk to DRAM
- NIC DMA reads page from DRAM to NICBack then it was a realm of custom FPGA setups with very few niches like digital TV broadcasting, or expensive VPN appliances.
Ideally, I would've liked it a lot if the NIC could've spoken directly with the raid card or NVME using PCIE P2P... dreaming too big
When I commented, I was assuming that people would be moving memory from RAM to the CPU to do something useful with it. If you are just dumping memory to the network, it would be more efficient to skip moving the memory to the CPU all together, or to even skip a normal CPU completely and just have network cards with a lot of RAM.