2
0
Add MS HWS support. PAL reports just one compute engine
in that mode and runtime needs extra logic to detect RT queues.

Change-Id: I011f1f1b18dec6a7195a4f1fe939f8029bc269ae


[ROCm/clr commit: 622c714165]
Este cometimento está contido em:
German Andryeyev
2020-02-28 19:05:17 -05:00
ascendente a753002d41
cometimento d4e8dd876b
3 ficheiros modificados com 25 adições e 21 eliminações
+16 -19
Ver ficheiro
@@ -902,27 +902,24 @@ bool Device::create(Pal::IDevice* device) {
return false;
}
const auto& computeProp = properties().engineProperties[Pal::EngineTypeCompute];
// Find the number of available engines
for (uint i = 0; i < properties().engineProperties[Pal::EngineTypeCompute].engineCount; ++i) {
if (properties().engineProperties[Pal::EngineTypeCompute].capabilities[i].flags.exclusive) {
if ((properties()
.engineProperties[Pal::EngineTypeCompute]
.capabilities[i]
.queuePrioritySupport == Pal::SupportQueuePriorityRealtime) &&
(properties().engineProperties[Pal::EngineTypeCompute].maxNumDedicatedCu > 0)) {
if (exclusiveComputeEnginesId_.find(ExclusiveQueueType::RealTime0) !=
exclusiveComputeEnginesId_.end()) {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime1, i});
} else {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime0, i});
}
} else if (properties()
.engineProperties[Pal::EngineTypeCompute]
.capabilities[i]
.queuePrioritySupport == Pal::SupportQueuePriorityMedium) {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::Medium, i});
for (uint i = 0; i < computeProp.engineCount; ++i) {
const auto& computeCaps = computeProp.capabilities[i];
if ((computeCaps.queuePrioritySupport & Pal::SupportQueuePriorityRealtime) &&
(computeProp.maxNumDedicatedCu > 0)) {
if (exclusiveComputeEnginesId_.find(ExclusiveQueueType::RealTime0) !=
exclusiveComputeEnginesId_.end()) {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime1, i});
} else {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime0, i});
}
} else {
}
if (computeCaps.queuePrioritySupport & Pal::SupportQueuePriorityMedium) {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::Medium, i});
}
if (computeCaps.queuePrioritySupport & Pal::SupportQueuePriorityNormal) {
computeEnginesId_.push_back(i);
}
}