diff --git a/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register.go b/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register.go index 0da4db0142..c78141ea95 100644 --- a/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register.go +++ b/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register.go @@ -94,7 +94,7 @@ func parseNvidiaNumaInfo(idx int, nvidiaTopoStr string) (int, error) { } klog.V(5).InfoS("nvidia-smi topo -m row output", "row output", words, "length", len(words)) if strings.Contains(words[0], fmt.Sprint(idx)) { - if words[numaAffinityColumnIndex] == "N/A" { + if len(words) <= numaAffinityColumnIndex || words[numaAffinityColumnIndex] == "N/A" { klog.InfoS("current card has not established numa topology", "gpu row info", words, "index", idx) return 0, nil } diff --git a/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register_test.go b/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register_test.go index 5c1530878e..6356ededdb 100644 --- a/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register_test.go +++ b/pkg/device-plugin/nvidiadevice/nvinternal/plugin/register_test.go @@ -67,6 +67,14 @@ func Test_parseNvidiaNumaInfo(t *testing.T) { want: 0, wantErr: false, }, + { + name: "NUMA Affinity is empty", + idx: 0, + nvidiaTopoStr: `GPU0 CPU Affinity NUMA Affinity GPU NUMA ID +GPU0 X`, + want: 0, + wantErr: false, + }, } for _, tt := range tests {