I'm concern about hardware component that are involve in Direct Memory Access (DMA). I read that for DMA to work there is the need of DMA-controller, however I did not found if the same component is involve in the RDMA (Remote DMA) operation such as RDMA READ and RDMA WRITE. That why I'm asking what are the difference between DMA and RDMA ?
2 Answers
They are different. DMA is controlled by DMA controller in north chip on the mainboard. RDMA is controlled by your network card. And the switch also has to be configured in order to support RDMA devices.

- 33
- 5
DMA is usually accessing memory internal to the computer. RDMA is accessing memory of a computer across the network.
Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).
https://en.wikipedia.org/wiki/Direct_memory_access
Lots of cards implement DMA access to the computers memory to reduce the load on the CPU and improve performance, such as network cards, graphics cards, disk controllers, etc. Most modern computers have a number of generic and task specific DMA controllers.
Remote Direct Memory Access, RDMA, is the ability to get at a remote computers memory across the network potentially without CPU intervention. It is a network operation, as opposed to DMA which is usually internal to the computer or buses like Thunderbolt or PCIe. Newer network protocols such as NVidia (Mellanox) Infiniband or RoCE (RDMA over Converged Ethernet), support RDMA. This opens a set of newer ways to think about distributing problems. Arrays of GPUs or other custom FPGAs or ASICs can grab chunks of information from a computer to work on. There are newer disk drives that directly support NVMEoF, Non Volatile Memory Express over Fabric, that are connected directly over Infiniband or RoCE. You just connect your drives to network switches. With NVidia ConnectX-5, dual 100 Gbit, or ConnectX-6, dual 200 Gbit, links, you can connect your drives to network switches and have large arrays of drives. There are lots of vendors doing this, NVidia is just the one I have worked with.
Not so many years ago an internal disk drive to a computer would transfer 100 Mbits/second. Now you can have massive arrays of drives connected at 100, 200, 400 Gbits/second.

- 218
- 2
- 8