mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 13:33:02 +08:00
fix: Track Sub Device Hierarchy for use by Metrics Library
Related-To: LOCI-4819 - When communicating with the Metrics Libraries, if one is using a specific sub device, then the correct physical sub device index and number of sub devices must be used. - When Affinity Mask is set, this hierarchy information is lost, therefore the sub device hierarchy data is stored in a map to each "device" to be returned to the user allowing for the correct sub device information to be passed to the metrics library. Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
873b3d4241
commit
5c75449508
@@ -51,6 +51,7 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
|
||||
}
|
||||
bool isExposingSubDevicesAsDevices() const { return this->subDevicesAsDevices; }
|
||||
bool isCombinedDeviceHierarchy() const { return this->combinedDeviceHierarchy; }
|
||||
bool getSubDeviceHierarchy(uint32_t index, std::tuple<uint32_t, uint32_t, uint32_t> *subDeviceMap);
|
||||
bool areMetricsEnabled() { return this->metricsEnabled; }
|
||||
void setFP64EmulationEnabled() {
|
||||
fp64EmulationEnabled = true;
|
||||
@@ -64,6 +65,10 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
|
||||
std::unique_ptr<OsEnvironment> osEnvironment;
|
||||
std::vector<std::unique_ptr<RootDeviceEnvironment>> rootDeviceEnvironments;
|
||||
void releaseRootDeviceEnvironmentResources(RootDeviceEnvironment *rootDeviceEnvironment);
|
||||
// Map of Sub Device Indicies set during Affinity Mask in the form of:
|
||||
// <RootDeviceIndex, SubDeviceIndex, SubDeviceCount>
|
||||
// Primarily used by the Metrics Library to communicate the actual Sub Device Index being used in queries.
|
||||
std::unordered_map<uint32_t, std::tuple<uint32_t, uint32_t, uint32_t>> mapOfSubDeviceIndices;
|
||||
|
||||
protected:
|
||||
static bool comparePciIdBusNumber(std::unique_ptr<RootDeviceEnvironment> &rootDeviceEnvironment1, std::unique_ptr<RootDeviceEnvironment> &rootDeviceEnvironment2);
|
||||
|
||||
Reference in New Issue
Block a user