intel-device-plugins-for-ku.../demo
Tuomas Katila e5b2264fcc
Merge pull request #2026 from AmitGujar/main
Switching from i915 to DXG for GPU Acceleration in Kubernetes on WSL
2025-03-31 14:10:59 +03:00
..
accel-config-demo demo: accel-config: update test script 2024-08-05 14:54:19 +03:00
crypto-perf crypto-perf: move to libipsec-mb2 2024-12-13 07:40:23 +02:00
dlb-dpdk-demo Dockerfiles: fix warning for 'FromAsCasing' 2024-11-05 03:38:54 -08:00
dlb-libdlb-demo dlb, demo: update dlb to 8.5.2 2023-10-31 15:30:54 -07:00
dsa-dpdk-dmadevtest dsa: dpdk example workload and use it in e2e 2025-02-07 13:42:24 +02:00
intel-opencl-icd demo: opencl-icd: fix repo key install 2024-05-22 10:27:30 +03:00
opae-nlb-demo Revert "revertme: upgrade unstable-slim demo images to update libc" 2024-05-22 10:35:41 +03:00
openssl-qat-engine QAT: add testapp of qatengine 2024-10-30 03:57:05 -07:00
sgx-aesmd-demo demo: move SGX images to Ubuntu 22.04 2022-11-28 18:20:27 +02:00
sgx-sdk-demo update sgx-sdk-demo content 2024-05-03 12:57:43 +03:00
build-image.sh ci: use ubuntu-24.04 runners 2024-08-15 09:52:01 +03:00
dlb-dpdk-demo-pod.yaml dlb:Add memory request and limit for demo pods 2021-11-15 00:58:54 -08:00
dlb-init.sh images: use buildkit again 2023-12-08 08:01:22 +02:00
dlb-libdlb-demo-pf-pod.yaml e2e-dlb: make tests working in Simics 2022-06-17 14:22:33 +03:00
dlb-libdlb-demo-pod.yaml dlb:Add memory request and limit for demo pods 2021-11-15 00:58:54 -08:00
dlb-libdlb-demo-vf-pod.yaml e2e-dlb: run only one command to test VF setup 2022-06-17 14:22:40 +03:00
dsa-accel-config-demo-pod.yaml demo: IAA/DSA: deploy with SYS_RAWIO capabilities 2024-08-05 14:55:28 +03:00
dsa-dpdk-dmadevtest.yaml dsa: dpdk example workload and use it in e2e 2025-02-07 13:42:24 +02:00
dsa.conf dsa: dpdk example workload and use it in e2e 2025-02-07 13:42:24 +02:00
iaa-accel-config-demo-pod.yaml demo: IAA/DSA: deploy with SYS_RAWIO capabilities 2024-08-05 14:55:28 +03:00
iaa.conf iaa/dsa: add driver_name for default configs 2024-09-24 09:06:32 +03:00
idxd-init.sh iaa: Switch to device type "iaa" 2022-10-28 10:51:18 +03:00
intelfpga-job.yaml demo: rename clearlinux-demo-opae to opae-nlb-demo 2019-09-06 21:28:59 +03:00
intelgpu-job-wsl.yaml Added WSL support for intelgpu job, updated job name, corrected alignment. 2025-03-31 13:25:59 +05:30
intelgpu-job.yaml Added WSL support for intelgpu job, updated job name, corrected alignment. 2025-03-31 13:25:59 +05:30
openssl-qat-engine-pod.yaml demo: openssl-qat-engine: move to RuntimeClass 2018-11-28 22:59:17 +02:00
qat-autoreset.sh qat: init: detect all system QAT devices 2025-03-21 08:54:05 +02:00
qat-init.sh qat: init: detect all system QAT devices 2025-03-21 08:54:05 +02:00
readme.md Edited demo-readme. Replaced 'master' with 'main' on line 22, 23, 24, 48, 77, 89, 94, 122, 130, 141, and 159. Skipped instance of 'master' on line 146. 2021-02-18 12:26:55 +02:00
screencast-dsa-accel-config.sh rename image dsa-accel-config-demo -> accel-config-demo 2022-06-08 21:00:54 +03:00
screencast-fpga-orchestrated.sh screencast: use shell argument $0 instead of embedded filenames 2022-04-19 20:55:40 +08:00
screencast-fpga-preprogrammed.sh screencast: use shell argument $0 instead of embedded filenames 2022-04-19 20:55:40 +08:00
screencast-qat-dpdk.sh qat_dpdk_app: drop generic 2024-05-07 20:46:12 +03:00
screencast-qat.sh screencast: use shell argument $0 instead of embedded filenames 2022-04-19 20:55:40 +08:00
screencast-sgx.sh sgx: add QuoteVerification demo and cleanup hostNetwork dependency 2023-08-31 14:23:19 +03:00
test-fpga-orchestrated.yaml fpga: update demo 2020-07-01 19:43:59 +03:00
test-fpga-preprogrammed.yaml FPGA demo: add screencast for preprogrammed mode 2020-06-30 17:02:05 +03:00

Demo

Table of Contents

Demo overview

Acceleration of compute and data processing of workloads like video transcoding, compression, and encryption is enabled in Kubernetes with the Device Plugin Framework. This repository contains a set of Kubernetes plugins and instructions to enable Intel devices for the acceleration of your workloads orchestrated by Kubernetes.

The current list of supported Intel Device Plugins includes:

We have included an example demo and configuration information for the Intel Device Plugins for Kubernetes below. Please join us on the sig-node-rtk channel on kubernetes.slack.com to ask questions, contribute to the community, and learn about the work we are doing with Kubernetes and the Device Plugin Framework.

Intel® GPU Device Plugin demo video

The screencast demonstrates the deployment of the Intel® GPU Device Plugin for Kubernetes including Kubeless Function as a Service (FaaS) media transcoder JavaScript function. The media transcoding workload is scheduled on two different worker nodes. Only one worker node has a GPU. The time difference in transcoding speed is captured.

Demo platform configuration

  • Hardware 2-nodes
    • 1x Virtual Machine on Intel® Xeon® E5-2687 CPU @ 3.0 GHz
    • 1x Intel® NUC KIT NUC6i7KYK (Skull Canyon) with Intel integrated GPU
  • Software
    • Ubuntu* 18.04 (Kernel: 4.15.0-36-generic)
    • Kubernetes* 1.11
    • Docker* 18.3.1
    • Intel® GPU Device Plugin built from main branch

Screencast

Intel® GPU Device Plugin demo

Intel® FPGA Device Plugin demo videos

The screencasts demonstrate the deployment of the Intel® FPGA Device Plugin for Kubernetes.

  • Demo 1 executes a native loopback 3 (NLB3) workload in preprogrammed mode
  • Demo 2 executes NLB3 workload in orchestrated mode
  • Demo 3 runs an OpenCL workload to do English letters recognition, and compares time used with and without FPGA to show the acceleration.

The demos begin with a fully configured Kubernetes cluster.

Demo 1 and 2 (NLB3) platform configuration

  • Hardware
    • 1-node, Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
    • Total memory 62 GB
    • 2 x Intel® Arria® 10 GX FPGA Programmable Acceleration Card(PAC)
  • Software
    • openSUSE Leap 15.1 (Kernel: 5.4.5-1.g47eef04-default)
    • Kubernetes* 1.17
    • CRI-O 1.13.1 (for orchestrated mode)
    • Docker 19.03.1 (for preprogrammed mode)
    • runc 1.0.0-rc8
    • Intel® FPGA Device Plugin built from main branch

Demo 3 (OpenCL) platform configuration

  • Hardware
    • Multi-node, FPGA host has 24 cores Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
    • Total memory 195 GB
    • Intel® FPGA Programmable Acceleration Card D5005
  • Software
    • Centos 7 (Kernel: 3.10.0-1062.12.1.el7.x86_64) on worker node host
    • Kubernetes* 1.17
    • CRI-O 1.17.3
    • Intel® FPGA Device Plugin built from main branch

Demo steps

  1. Validate the status of the Kubernetes cluster.
  2. Provision the Intel® FPGA Device Plugin.
  3. Create bitstream storage (for orchestrated mode only)
  4. Run the NLB3 or OpenCL workload.

Screencasts

  • Intel® FPGA Device Plugin deployment in preprogrammed mode and NLB workload:

  • Intel® FPGA Device Plugin deployment with orchestrated/region mode and NLB workload:

  • Intel® FPGA Device Plugin deployment with orchestrated/region mode and OpenCL workload:

Intel® SGX Device Plugin demo videos

This video demonstrates the Intel® Software Guard Extensions ECDSA Quote Generation in Kubernetes*

  • Hardware
    • 1-node, 3rd Generation Intel® Xeon® Scalable Platform, code-named “Ice Lake”
  • Software
    • 18.04.5 LTS
    • Kubernetes* 1.19
    • containerd 1.3.3
    • Intel® SGX Device Plugin built from main branch
    • Intel® SGX SDK 2.12 and DCAP 1.9
    • node-feature-discovery 0.6.0

Demo steps

  1. Validate the status of the Kubernetes cluster.
  2. Provision node-feature-discovery.
  3. Provision the Intel® SGX Device Plugin using Intel® Device Plugin Operator.
  4. Check the SGX resources and labels are correctly registered.
  5. Run Intel® SGX DCAP ECDSA Quote Generation in both "out-of-proc" and "in-proc" modes.

Screencasts

Intel® SGX Device Plugin and SGX DCAP ECDSA Quote Generation demo

Intel® QuickAssist Technology Device Plugin OpenSSL demo video

The screencast demonstrates the deployment of the Intel® QAT Device Plugin for Kubernetes and executes a sample QAT accelerated OpenSSL workload with the OCI compatible Kata Containers runtime, a lightweight Virtual Machine (VM) that feels and performs like traditional containers, but provides the workload isolation and security advantages of VMs. The demo begins with a fully configured Kubernetes cluster and Kata Containers runtime for workloads.

Demo platform configuration

  • Hardware
    • 1-node, 2x Intel® Xeon® CPU E5-2687W v4 @ 3.00GHz
    • Total memory 251 GB DDR4
    • Intel® QAT C62x chipset
  • Software
    • OpenSUSE* 15 (Kernel:4.12.14-lp150.12.22-default)
    • Kubernetes* 1.12
    • Containerd 1.2
    • Kata Containers* 1.3.0
    • Intel® QAT Device Plugin built from main
    • QAT 1.7 L.4.3.0-00033

Demo steps

  1. Load the host drivers and prepare the virtual function (VF) devices.
  2. Check the Kubernetes cluster is in good shape.
  3. Deploy the Intel® QAT device plugin for Kubernetes.
  4. Deploy an Intel® QAT Accelerated OpenSSL workload.
  5. Testing!

Screencast

Intel® QAT Device Plugin deployment

Intel® QuickAssist Technology Device Plugin with DPDK demo video

Demo steps

  1. Check health of Kubernetes nodes.
  2. Check for allocatable resources.
  3. List QAT Virtual Functions.
  4. Deploy QAT Device Plugin as a Daemonset.
  5. Check again for allocatable resources.
  6. List QAT Virtual Functions again, ensuring they are now bound to DPDK driver.
  7. View pod specification file for pod requesting QAT VFs.
  8. Create pod requesting QAT VFs.
  9. Get a shell to the running container and run a DPDK application.

Screencast

Intel® QAT Device Plugin with DPDK: