We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 

Improve Your Data Center Performance With The New QDMA Shell

Xilinx Employee
Xilinx Employee
1 2 1,304

By Curt Wortman, Sr. Product Marketing Manager in Data Center Group


Xilinx’s new streaming QDMA (Queue Direct Memory Access) shell platform, available on Alveo™ accelerator cards, provides developers with a low latency direct streaming connection between host and kernels. The QDMA shell includes a high-performance DMA that uses multiple queues optimized for both high bandwidth and high packet count data transfers.

The QDMA shell provides

  • Streaming directly to continuously running kernels
  • High bandwidth and low latency transfers
  • Kernel support for both AXI4-Stream and AXI4 Memory Mapped

Streaming directly to continuously running kernels allows for immediate ingestion of data to offer the fastest computation result provided immediately back to the host. The QDMA solution is ideal for applications that require small packet performance at low latency.

XDMA Shell vs QDMA Shell Rev2.png


What’s the Difference between QDMA and other DMAs?

The main difference between QDMA and other DMA offerings is the concept of queues, derived from the “queue set” concepts of Remote Direct Memory Access (RDMA) from high-performance computing (HPC) interconnects. These queues can be individually configured by interface type. Based on how the DMA descriptors are loaded for a single queue, each queue provides a very low overhead option for continuous update functionality.


What’s Your Best Option?

Let’s look at a detailed comparison between the XDMA and QDMA to guide you through the selection of the best DMA suited for your application.

Shell comparison.png


For more information on the QDMA shell, visit https://www.xilinx.com/member/qdma-shell.html.



I was under the impression XDMA is capable of streaming? Or are you just stating that typically that's not how it's used with shells?

Xilinx Employee
Xilinx Employee

@adrian.h, thank you for the question. There are two different shells: XDMA and QDMA. Only the QDMA shell is capable of streaming directly into FPGA logic and immediately start working upon the data. The XDMA shell requires data to be first moved from host memory to the FPGA memory (DDR4 DIMMs or PLRAM) before the FPGA logic can start processing the data, which impacts latency through the additional step.