func getVGPUDevices()

in pkg/gpu/nvidia/nvidia.go [22:56]


func getVGPUDevices(vGPUCount int) []*pluginapi.Device {
	n, err := nvml.GetDeviceCount()
	check(err)

	var devs []*pluginapi.Device
	for i := uint(0); i < n; i++ {
		d, err := nvml.NewDevice(i)
		check(err)

		log.Printf("Device Memory: %d, vGPU Count: %d", uint(*d.Memory), vGPUCount)

		for j := uint(0); j < uint(vGPUCount); j++ {
			vGPUDeviceID := getVGPUID(d.UUID, j)
			dev := pluginapi.Device{
				ID:     vGPUDeviceID,
				Health: pluginapi.Healthy,
			}

			// TODO: Enable Affinity for kubernetes > 1.16.x
			//if d.CPUAffinity != nil {
			//	dev.Topology = &pluginapi.TopologyInfo{
			//		Nodes: []*pluginapi.NUMANode{
			//			&pluginapi.NUMANode{
			//				ID: int64(*(d.CPUAffinity)),
			//			},
			//		},
			//	}
			//}

			devs = append(devs, &dev)
		}
	}

	return devs
}