OpenCL Queue Families extension 1/n

Basic implementation, some things will be tweaked in future commits

Related-To: NEO-5120
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
This commit is contained in:
Maciej Dziuban
2020-11-16 11:43:03 +00:00
committed by Compute-Runtime-Automation
parent 2be1b36422
commit 14f92cc7a1
16 changed files with 621 additions and 109 deletions

View File

@@ -360,6 +360,26 @@ void ClDevice::initializeCaps() {
}
}
const std::vector<std::vector<EngineControl>> &queueFamilies = this->getDevice().getEngineGroups();
if (queueFamilies.size() > 0) {
for (int queueFamilyIndex = 0; queueFamilyIndex < static_cast<int>(EngineGroupType::MaxEngineGroups); queueFamilyIndex++) {
const std::vector<EngineControl> &enginesInFamily = queueFamilies.at(queueFamilyIndex);
if (enginesInFamily.size() > 0) {
cl_queue_family_properties_intel properties;
properties.capabilities = CL_QUEUE_CAPABILITY_ALL_INTEL;
properties.count = static_cast<cl_uint>(enginesInFamily.size());
properties.properties = deviceInfo.queueOnHostProperties;
deviceInfo.queueFamilyProperties.push_back(properties);
}
}
} else {
cl_queue_family_properties_intel properties;
properties.capabilities = CL_QUEUE_CAPABILITY_ALL_INTEL;
properties.count = 1;
properties.properties = deviceInfo.queueOnHostProperties;
deviceInfo.queueFamilyProperties.push_back(properties);
}
deviceInfo.preemptionSupported = false;
deviceInfo.maxGlobalVariableSize = ocl21FeaturesEnabled ? 64 * KB : 0;
deviceInfo.globalVariablePreferredTotalSize = ocl21FeaturesEnabled ? static_cast<size_t>(sharedDeviceInfo.maxMemAllocSize) : 0;