code: func DeviceHandleByIndex(idx uint) (Device, error) {
  	if C.nvmlHandle == nil {
  		return Device{}, errLibraryNotLoaded
  	}
  	var dev C.nvmlDevice_t
  	r := C.nvmlDeviceGetHandleByIndex(C.uint(idx), &dev)
  	return Device{dev}, errorString(r)
  }
docs: // DeviceHandleByIndex returns the device handle for a particular index.
  // The indices range from 0 to DeviceCount()-1. The order in which NVML
  // enumerates devices has no guarantees of consistency between reboots.