WarpDrive is a framework that accessing hardware accelerator in user space. Introduce the framework in the user space.
WarpDrive is based on IOMMU SVA (Shared Virtual Address) Technology. It can share the same virtual address between CPU and accelerator. It could avoid to expose physical address to vendor driver in user space. It could also avoid to copy memory in vendor driver that is in user space.
There're two main parts in WarpDrive User Space. One is libwd that provides the ability to access UACCE that is the kernel part in WarpDrive. Vendor driver in user space could access memory mapping from UACCE by libwd. And the other part is algorithm library.
If vendor driver isn't common to do the generalization and abstraction, it has to provide an interface to apps. If vendor driver is common, then the interface of vendor driver is integrated in algorithm library. So apps could access either customize interface in special vendor driver or general interface in algorithm library.
Kernel Engineer (Linaro)
WarpDrive User Space Reposigory