they work in Kubernetes*? • Intel accelerators • GPU • Intel® QuickAssist Technology (Intel® QAT) • FPGA • Challenges of using hardware accelerators in Kubernetes* * Other names and brands may be claimed as the property of others.
SmartNIC • GPU • FPGA • Other specialized co-processors • Highly optimized hardware for specific tasks • Can provide significant performance gain • Saving CPU cycles for other workloads • Require application support
Server Device Plugin Manager gRPC Server Register ListAndWatch Allocate PreStartContainer GetDevicePluginOptions • Alpha in 1.8 • Currently: beta * Other names and brands may be claimed as the property of others.
acceleration cards • Intel® Arria® 10 GX FPGA • Intel® Stratix® 10 SX FPGA • Intel® Xeon® Scalable processors with integrated FPGA • Workload types • Open Programmable Acceleration Engine • OpenCL* * Other names and brands may be claimed as the property of others.
CRI-O PreStart CRI-O Hook FPGA OPAE Kernel driver FPGA Device Plugin etcd Scheduler API Server Controller Manager FPGA Admission Controller Webhook Workload Discovery Device Plugin API Programming CRI * Other names and brands may be claimed as the property of others.
gaps on all levels • Kubernetes* to CRI • CRI to OCI Runtimes • Runtimes to CGroups • CGroups for accelerator drivers • “Infinite” amount of resources • Multifunctional engine units • “Compatible” resources Accelerator Engine Unit Engine Unit Engine RAM Engine RAM Kubernetes* Workload Workload Workload Workload Workload CRI Runtime CGroups Kernel Driver * Other names and brands may be claimed as the property of others.
generations of compatible GPUs • Specific combinations of kernel and user space libraries • Specific to workload ABIs for user space libraries • Intel® QAT • UIO vs. kernel driver APIs • DPDK vs. “normal” applications • OpenSSL* vs. BoringSSL* • Topology aware allocation * Other names and brands may be claimed as the property of others.
way to pass parameters for programming • Allocate() • PreStartContainer() • CRI Hooks • Different parameters for several instances of accelerators • Power management and security • Deallocate() • Complex topology between accelerators, CPUs and memory