Giter Site home page Giter Site logo

todaywasawesome / intel-device-plugins-for-kubernetes Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rojkov/intel-device-plugins-for-kubernetes

0.0 0.0 0.0 8.43 MB

Collection of Intel device plugins for Kubernetes

License: Apache License 2.0

Makefile 0.97% Python 1.17% Go 91.61% Shell 3.96% Dockerfile 2.29%

intel-device-plugins-for-kubernetes's Introduction

Intel Device Plugins for Kubernetes Device Plugins for Kubernetes

Build Status Go Report Card GoDoc

Table of Contents

About

This repository contains a framework for developing plugins for the Kubernetes device plugins framework, along with a number of device plugin implementations utilising that framework.

Prerequisites

Prerequisites for building and running these device plugins include:

Plugins

The below sections detail existing plugins developed using the framework.

GPU device plugin

The GPU device plugin supports Intel GVT-d device passthrough and acceleration using GPUs of the following hardware families:

  • Integrated GPUs within Intel Core processors
  • Intel Xeon processors
  • Intel Visual Compute Accelerator (Intel VCA)

The demo subdirectory contains both a GPU plugin demo video as well as code for an OpenCL FFT demo.

FPGA device plugin

The FPGA device plugin supports FPGA passthrough for the following hardware:

  • Intel Arria 10
  • Intel Stratix 10

The FPGA plugin comes as three parts.

Refer to each individual sub-components documentation for more details. Brief overviews of the sub-components are below.

The demo subdirectory contains a video showing deployment and use of the FPGA plugin. Sources relating to the demo can be found in the opae-nlb-demo subdirectory.

device plugin

The FPGA device plugin is responsible for discovering and reporting FPGA devices to kubelet.

admission controller

The FPGA admission controller webhook is responsible for performing mapping from user-friendly function IDs to the Interface ID and Bitstream ID that are required for FPGA programming. It also implements access control by namespacing FPGA configuration information.

CRI-O prestart hook

The FPGA prestart CRI-O hook performs discovery of the requested FPGA function bitstream and programs FPGA devices based on the environment variables in the workload description.

QAT device plugin

The QAT plugin supports device plugin for Intel QAT adapters, and includes code showing deployment via DPDK.

The demo subdirectory includes details of both a QAT DPDK demo and a QAT OpenSSL demo. Source for the OpenSSL demo can be found in the relevant subdirectory.

Details for integrating the QAT device plugin into Kata Containers can be found in the Kata Containers documentation repository.

VPU device plugin

The VPU device plugin supports Intel VCAC-A card (https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/media-analytics-vcac-a-accelerator-card-by-celestica-datasheet.pdf) the card has:

  • 1 Intel Core i3-7100U processor
  • 12 MyriadX VPUs
  • 8GB DDR4 memory

The demo subdirectory includes details of a OpenVINO deployment and use of the VPU plugin. Sources can be found in openvino-demo

Demos

The demo subdirectory contains a number of demonstrations for a variety of the available plugins.

Developers

For information on how to develop a new plugin using the framework, see the Developers Guide and the code in the device plugins pkg directory.

Running E2E tests

Currently the E2E tests require having a Kubernetes cluster already configured on the nodes with the hardware required by the device plugins. Also all the container images with the executables under test must be available in the cluster. Given these two conditions are satisfied one can run the tests with

$ go test -v ./test/e2e/...

In case you want to run only certain tests, e.g. QAT ones, then run

$ go test -v ./test/e2e/... -args -ginkgo.focus "QAT"

If you need to specify paths to your custom kubeconfig containing embedded authentication info then add the -kubeconfig argument:

$ go test -v ./test/e2e/... -args -kubeconfig /path/to/kubeconfig

The full list of available options can be obtained with

$ go test ./test/e2e/... -args -help

Also it is possible to run the tests which don't depend on hardware without a pre-configured Kubernetes cluster. Just make sure you have Kind installed on your host and run

$ make test-with-kind

Supported Kubernetes versions

Releases are made under the github releases area. Supported releases and matching Kubernetes versions are listed below:

Branch Kubernetes branch/version
release-0.17 Kubernetes 1.17 branch v1.17.x
release-0.15 Kubernetes 1.15 branch v1.15.x
release-0.11 Kubernetes 1.11 branch v1.11.x

Related code

A related Intel SRIOV network device plugin can be found in this repository

intel-device-plugins-for-kubernetes's People

Contributors

bart0sh avatar mythi avatar rojkov avatar kad avatar alekdu avatar askervin avatar swatisehgal avatar zhenyw avatar qmfrederik avatar ipuustin avatar jascott1 avatar przemeklal avatar poussa avatar uniemimu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.