Until now, only the OpenCL code would set the device Vendor information.
To prepare for later code that always needs this information, it is not
set also for the CUDA and SYCL code paths with (hopefully) reasonable
default values.
Change-Id: Ifb3180dff2c5b13aedd8e6808c172ea322d5cea8
DeviceStatus status;
//! ID of the device.
int id;
-
+ //! Device vendor.
+ DeviceVendor deviceVendor;
#if GMX_GPU_CUDA
//! CUDA device properties.
cudaDeviceProp prop;
char vendorName[256]; //!< Device vendor name.
int compute_units; //!< Number of compute units.
int adress_bits; //!< Number of address bits the device is capable of.
- DeviceVendor deviceVendor; //!< Device vendor.
size_t maxWorkItemSizes[3]; //!< Workgroup size limits (CL_DEVICE_MAX_WORK_ITEM_SIZES).
size_t maxWorkGroupSize; //!< Workgroup total size limit (CL_DEVICE_MAX_WORK_GROUP_SIZE).
#elif GMX_GPU_SYCL
memset(&prop, 0, sizeof(cudaDeviceProp));
stat = cudaGetDeviceProperties(&prop, i);
- deviceInfoList[i] = std::make_unique<DeviceInformation>();
- deviceInfoList[i]->id = i;
- deviceInfoList[i]->prop = prop;
+ deviceInfoList[i] = std::make_unique<DeviceInformation>();
+ deviceInfoList[i]->id = i;
+ deviceInfoList[i]->prop = prop;
+ deviceInfoList[i]->deviceVendor = DeviceVendor::Nvidia;
const DeviceStatus checkResult = (stat != cudaSuccess) ? DeviceStatus::NonFunctional
: checkDeviceStatus(*deviceInfoList[i]);
size_t i = deviceInfos.size() - 1;
- deviceInfos[i]->id = i;
- deviceInfos[i]->syclDevice = syclDevice;
- deviceInfos[i]->status = checkDevice(i, *deviceInfos[i]);
+ deviceInfos[i]->id = i;
+ deviceInfos[i]->syclDevice = syclDevice;
+ deviceInfos[i]->status = checkDevice(i, *deviceInfos[i]);
+ deviceInfos[i]->deviceVendor = DeviceVendor::Unknown;
}
return deviceInfos;
}