Check out my first novel, midnight's simulacra!
Intel QAT
QuickAssist Technology is a family of Intel PCIe and on-die accelerators, plus associated software. It's available on some Xeon Scalable 4th Gen processors, and QAA 8960/QAA 8970 PCIe cards. It covers cryptography and compression.
On Linux, QAT requires (out-of-tree as of 2023) kernel modules, firmware, and a userspace component. qat_service is a systemd service responsible for loading necessary kernel modules and enabling endpoints via the adf_ctl binary. VFIO/UIO are used together with a standard TX/RX ringbuffer (or alternately callbacks) to submit work and get results from the QAT endpoints, typically through the QuickAssist API.
QAT hardware 2.0 and above support shared virtual memory, rather than requiring work be submitted in physically contiguous, pinned memory. This requires Linux 6.2 or above, and the kernel command line parameter intel_iommu=on,sm_on.