Installing Furiosa Device Plugin#

Furiosa Device Plugin#

The Furiosa device plugin implements the Kubernetes Device Plugin interface for FuriosaAI NPU devices, and its features are as follows:

  • Discovering the Furiosa NPU devices and registeriing to a Kubernetes cluster.

  • Tracking the health of the devices and reporting to a Kubernetes cluster.

  • Running AI workload on the top of the Furiosa NPU devices within a Kubernetes cluster.

Configuration#

The Furiosa NPU can be integrated into the Kubernetes cluster in various configurations. A single NPU card can either be exposed as a single resource or partitioned into multiple resources. Partitioning into multiple resources allows for more granular control.

The configuration structure is as follows:

config:
  resourceStrategy: generic
  debugMode: false
  disabledDeviceUUIDListMap:

resourceStrategy defines the resource unit of NPU scheduling in the cluster. The following table shows the available resource strategy:

NPU Configuration

Resource Name

Resource Count Per Card

generic

furiosa.ai/rngd

1

single-core

furiosa.ai/rngd-1core.6gb

8

dual-core

furiosa.ai/rngd-2core.12gb

4

quad-core

furiosa.ai/rngd-4core.24gb

2

debugMode enables or disables debug mode. The default value is false.

disabledDeviceUUIDListMap allows disabling specific devices on a per-node basis. This is structured as follows:

disabledDeviceUUIDListMap:
  node_a:
    - "uuid1"
    - "uuid2"
  node_b:
    - "uuid3"
    - "uuid4"

If disabledDeviceUUIDListMap is not configured, all devices are enabled by default.

Deploying Furiosa Device Plugin with Helm#

The Furiosa device plugin helm chart is available at furiosa-ai/helm-charts. To configure deployment as you need, you can modify charts/furiosa-device-plugin/values.yaml.

  • If resourceStrategy is not specified, the default value is "generic".

  • If debugMode is not specified, the default value is false.

  • If disabledDeviceUUIDListMap is not specified, the default value is empty list [].

You can deploy the Furiosa Device Plugin by running the following commands:

helm repo add furiosa https://furiosa-ai.github.io/helm-charts
helm repo update
helm install furiosa-device-plugin furiosa/furiosa-device-plugin -n kube-system