Intel Details New Data Streaming Accelerator For Future CPUs - Linux Support Started
The "Data Streaming Accelerator" (DSA) is a new block on future Intel CPUs that hasn't been talked about much publicly... Until now. Intel's open-source crew has begun detailing DSA for future Intel CPUs that will offer high-performance data movement and transformation operations. The Linux driver enablement has begun.
The Intel Data Streaming Accelerator is the successor to QuickData Technology and is designed to offer high-performance streaming and transformation operations for storage / networking / persistent memory. "The goal is to provide higher overall system performance for data mover and transformation operations, while freeing up CPU cycles for higher level functions. Intel DSA enables high performance data mover capability to/from volatile memory, persistent memory, memory-mapped I/O, and through a Non-Transparent Bridge (NTB) device to/from remote volatile and persistent memory on another node in a cluster. Enumeration and configuration is done with a PCI Express compatible programming interface to the Operating System (OS) and can be controlled through a device driver."
An Intel Data Accelerator Driver (IDXD) is in development for the Linux kernel (and similar drivers for other operating systems). This kernel driver will provide the necessary bits so applications can mmap to the device for accessing the work queues, an API for in-kernel use of these work queues, support for virtual devices to expose Intel DSA to guest operating systems, and a sysfs interface for topology and other handling of work queues.
In user-space Intel is developing an accel-config utility for understanding the devices, providing an API that can be used by applications, controlling devices, and creating VFIO-mediated devices for exposing to guest VMs.
Given the complexity of the Data Streaming Accelerator design and touching different subsystems, the upstreaming process will take a while. Intel has begun publishing code for their in-progress Linux driver on GitHub.
Intel's open-source team has begun publishing additional Data Streaming Accelerator details on 01.org.
Intel doesn't specifically spell out when the DSA will begin appearing in future Intel CPUs, but the documentation so far does mention the ENQCMD instruction. That instruction is being introduced with Intel's Xeon Sapphire Rapids processors so presumably the DSA will be introduced there, which would make sense considering the initial timing of this Linux hardware enablement effort and it taking quite some time.
The Intel Data Streaming Accelerator is the successor to QuickData Technology and is designed to offer high-performance streaming and transformation operations for storage / networking / persistent memory. "The goal is to provide higher overall system performance for data mover and transformation operations, while freeing up CPU cycles for higher level functions. Intel DSA enables high performance data mover capability to/from volatile memory, persistent memory, memory-mapped I/O, and through a Non-Transparent Bridge (NTB) device to/from remote volatile and persistent memory on another node in a cluster. Enumeration and configuration is done with a PCI Express compatible programming interface to the Operating System (OS) and can be controlled through a device driver."
An Intel Data Accelerator Driver (IDXD) is in development for the Linux kernel (and similar drivers for other operating systems). This kernel driver will provide the necessary bits so applications can mmap to the device for accessing the work queues, an API for in-kernel use of these work queues, support for virtual devices to expose Intel DSA to guest operating systems, and a sysfs interface for topology and other handling of work queues.
In user-space Intel is developing an accel-config utility for understanding the devices, providing an API that can be used by applications, controlling devices, and creating VFIO-mediated devices for exposing to guest VMs.
Given the complexity of the Data Streaming Accelerator design and touching different subsystems, the upstreaming process will take a while. Intel has begun publishing code for their in-progress Linux driver on GitHub.
Intel's open-source team has begun publishing additional Data Streaming Accelerator details on 01.org.
Intel doesn't specifically spell out when the DSA will begin appearing in future Intel CPUs, but the documentation so far does mention the ENQCMD instruction. That instruction is being introduced with Intel's Xeon Sapphire Rapids processors so presumably the DSA will be introduced there, which would make sense considering the initial timing of this Linux hardware enablement effort and it taking quite some time.
31 Comments