# ix-feature-discovery **Repository Path**: deep-spark/ix-feature-discovery ## Basic Information - **Project Name**: ix-feature-discovery - **Description**: IX Feature Discovery 能够自动为K8S集群节点上可用的天数智芯加速卡生成标签。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2025-03-06 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IX Feature Discovery IX Feature Discovery for Kubernetes is a software component that allows you to automatically generate labels for the set of IX GPUs available on a node. ## Prerequisites The list of prerequisites for running the IX Featyre Discovery is described below: - Kubernetes version >= 1.22 - All worker nodes must run the same operating system version. - IX driver pre-installed. - Make sure the IX GPUs have been installed if you want to see the labels for the set of IX GPUs. - Node Feature Discovery (NFD) deployed on each node you want to label with the local source configured. ## Quick Start ### Build binary and image 1. Clone the repository and into the project directory ```bash $ git clone https://gitee.com/deep-spark/ix-feature-discovery.git $ cd ix-feature-discovery ``` 2. Build the executable binary to the "build" directory ```bash $ make binary $ ls build/ix-feature-discovery build/ix-feature-discovery ``` 3. Build the image ```bash ## build the image with default registry and version $ make image ... Successfully built d5db897cf230 Successfully tagged iluvatarcorex/ix-feature-discovery:v0.1.0 ## build the image with customize registry and version $ REGISTRY=my-registry VERSION=v0.2.1 make image ... Successfully built d5db897cf230 Successfully tagged my-registry/ix-feature-discovery:v0.2.1 ``` ***Note***: the image name is corresponding to the image in daemonset yaml, don't make it change at will. ### Node Feature Discovery (NFD) The first step is to make sure that [Node Feature Discovery](https://github.com/kubernetes-sigs/node-feature-discovery) is running on every node you want to label. The following command will deploy NFD in your cluster by minimal steps. (see [Quick Start](https://kubernetes-sigs.github.io/node-feature-discovery/v0.14/get-started/quick-start.html)) ```bash $ sudo kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.14.2 ``` **Note:** Please see the instructions below for [Deployment via `helm`](https://kubernetes-sigs.github.io/node-feature-discovery/v0.14/deployment/helm.html) when deploying in a production setting. Check if node-feature-discovery is deployed successfully in kubernetes cluster. ```bash $ sudo kubectl get pods -n node-feature-discovery NAME READY STATUS nfd-master-55b47d658-c64vf 1/1 Running nfd-worker-thgdj 1/1 Running ``` ### Deploy IX Feature Discovery The next step is to run IX Feature Discovery on each node as a Daemonset. ```bash $ sudo kubectl apply -f deployment/static/ix-feature-discovery.yaml ``` Check if ix-feature-discovery is deployed successfully in kubernetes cluster: ```bash $ sudo kubectl get pods -n node-feature-discovery NAME READY STATUS ix-feature-discovery-stzt5 1/1 Running nfd-master-55b47d658-c64vf 1/1 Running nfd-worker-thgdj 1/1 Running ``` ### Verifying Everything Works With both NFD and IX-Feature-Discovery deployed and running, you should now be able to see IX related labels appearing on any nodes that have IX GPUs installed on them. ```bash $ kubectl get nodes -o yaml apiVersion: v1 items: - apiVersion: v1 kind: Node metadata: ... labels: iluvatar.com/cuda.runtime-version.full=10.2 iluvatar.com/cuda.runtime-version.major=10 iluvatar.com/cuda.runtime-version.minor=2 iluvatar.com/gpu.count=2 iluvatar.com/gpu.machine=X580-G30 iluvatar.com/gpu.memory=32768 iluvatar.com/gpu.product=BI-V150S iluvatar.com/ix.driver-version.full=4.1.0 iluvatar.com/ix.driver-version.major=4 iluvatar.com/ix.driver-version.minor=1 iluvatar.com/ix.driver-version.revision=0 iluvatar.com/ix.timestamp=1731665058 ... ... ``` ## Generated Labels Below is the list of the labels generated by IX Feature Discovery and their description. | Label | Description | | ------------------------------------------- | ------------------------------------------------------------------- | | iluvatar.com/ix.timestamp=1731548913 | Timestamp, the number of seconds elapsed since January 1, 1970 UTC. | | iluvatar.com/ix.driver-version.full=4.2.0 | Full IX driver version | | iluvatar.com/ix.driver-version.major=4 | Major version of IX driver version | | iluvatar.com/ix.driver-version.minor=2 | Minor version of IX driver version | | iluvatar.com/ix.driver-version.revision=0 | Revision of IX driver version | | iluvatar.com/cuda.runtime-version.full=10.2 | Full CUDA runtime version | | iluvatar.com/cuda.runtime-version.major=10 | Major version of CUDA runtime version | | iluvatar.com/cuda.runtime-version.minor=2 | Minor version of CUDA runtime version | | iluvatar.com/gpu.present=true | Node has GPU available | | iluvatar.com/gpu.machine=X580-G30 | Machine Type | | iluvatar.com/gpu.product=BI-V150S | GPU Model | | iluvatar.com/gpu.count=2 | GPU Count | | iluvatar.com/gpu.memory=32768 | GPU Memory, Unit MB | ## License Copyright (c) 2025 Iluvatar CoreX. All rights reserved. This project has an Apache-2.0 license, as found in the [LICENSE](LICENSE) file.