Initial draft to implement Fabric Vertex Apis using Driver Handle Information

Implement the below APIs
- zeFabricVertexGetExp
- zeFabricVertexGetSubVerticesExp
- zeFabricVertexGetPropertiesExp
- zeFabricVertexGetDeviceExp

Related-To: LOCI-3332

Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
This commit is contained in:
Joshua Santosh Ranjan
2022-08-06 14:07:03 +00:00
committed by Compute-Runtime-Automation
parent 3a962a2d52
commit b81366f741
13 changed files with 386 additions and 1 deletions

View File

@@ -626,3 +626,23 @@ zeGetImageExpProcAddrTable(
driver_ddiTable.core_ddiTable.ImageExp = *pDdiTable;
return result;
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeGetFabricVertexExpProcAddrTable(
ze_api_version_t version,
ze_fabric_vertex_exp_dditable_t *pDdiTable) {
if (nullptr == pDdiTable)
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) ||
ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version))
return ZE_RESULT_ERROR_UNSUPPORTED_VERSION;
ze_result_t result = ZE_RESULT_SUCCESS;
pDdiTable->pfnGetExp = L0::zeFabricVertexGetExp;
pDdiTable->pfnGetSubVerticesExp = L0::zeFabricVertexGetSubVerticesExp;
pDdiTable->pfnGetPropertiesExp = L0::zeFabricVertexGetPropertiesExp;
pDdiTable->pfnGetDeviceExp = L0::zeFabricVertexGetDeviceExp;
driver_ddiTable.core_ddiTable.FabricVertexExp = *pDdiTable;
return result;
}

View File

@@ -9,7 +9,9 @@
#include "level_zero/core/source/context/context.h"
#include "level_zero/core/source/device/device.h"
#include "level_zero/core/source/driver/driver_handle.h"
#include "level_zero/core/source/event/event.h"
#include "level_zero/core/source/fabric/fabric.h"
#include "level_zero/core/source/image/image.h"
#include "level_zero/core/source/kernel/kernel.h"
@@ -52,6 +54,36 @@ ze_result_t zeEventQueryTimestampsExp(
return L0::Event::fromHandle(hEvent)->queryTimestampsExp(L0::Device::fromHandle(hDevice), pCount, pTimestamps);
}
ze_result_t zeFabricVertexGetExp(
ze_driver_handle_t hDriver,
uint32_t *pCount,
ze_fabric_vertex_handle_t *phVertices) {
return L0::DriverHandle::fromHandle(hDriver)->fabricVertexGetExp(pCount, phVertices);
}
ze_result_t zeFabricVertexGetSubVerticesExp(
ze_fabric_vertex_handle_t hVertex,
uint32_t *pCount,
ze_fabric_vertex_handle_t *phSubvertices) {
return L0::FabricVertex::fromHandle(hVertex)->getSubVertices(pCount, phSubvertices);
}
ze_result_t zeFabricVertexGetPropertiesExp(
ze_fabric_vertex_handle_t hVertex,
ze_fabric_vertex_exp_properties_t *pVertexProperties) {
return L0::FabricVertex::fromHandle(hVertex)->getProperties(pVertexProperties);
}
ze_result_t zeFabricVertexGetDeviceExp(
ze_fabric_vertex_handle_t hVertex,
ze_device_handle_t *phDevice) {
return L0::FabricVertex::fromHandle(hVertex)->getDevice(phDevice);
}
} // namespace L0
extern "C" {
@@ -99,4 +131,34 @@ zeEventQueryTimestampsExp(
return L0::zeEventQueryTimestampsExp(hEvent, hDevice, pCount, pTimestamps);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeFabricVertexGetExp(
ze_driver_handle_t hDriver,
uint32_t *pCount,
ze_fabric_vertex_handle_t *phVertices) {
return L0::zeFabricVertexGetExp(hDriver, pCount, phVertices);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeFabricVertexGetSubVerticesExp(
ze_fabric_vertex_handle_t hVertex,
uint32_t *pCount,
ze_fabric_vertex_handle_t *phSubvertices) {
return L0::zeFabricVertexGetSubVerticesExp(hVertex, pCount, phSubvertices);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeFabricVertexGetPropertiesExp(
ze_fabric_vertex_handle_t hVertex,
ze_fabric_vertex_exp_properties_t *pVertexProperties) {
return L0::zeFabricVertexGetPropertiesExp(hVertex, pVertexProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeFabricVertexGetDeviceExp(
ze_fabric_vertex_handle_t hVertex,
ze_device_handle_t *phDevice) {
return L0::zeFabricVertexGetDeviceExp(hVertex, phDevice);
}
} // extern "C"

View File

@@ -49,4 +49,22 @@ ze_result_t zetMetricGroupCalculateMultipleMetricValuesExp(
uint32_t *pMetricCounts,
zet_typed_value_t *pMetricValues);
ze_result_t zeFabricVertexGetExp(
ze_driver_handle_t hDriver,
uint32_t *pCount,
ze_fabric_vertex_handle_t *phVertices);
ze_result_t zeFabricVertexGetSubVerticesExp(
ze_fabric_vertex_handle_t hVertex,
uint32_t *pCount,
ze_fabric_vertex_handle_t *phSubvertices);
ze_result_t zeFabricVertexGetPropertiesExp(
ze_fabric_vertex_handle_t hVertex,
ze_fabric_vertex_exp_properties_t *pVertexProperties);
ze_result_t zeFabricVertexGetDeviceExp(
ze_fabric_vertex_handle_t hVertex,
ze_device_handle_t *phDevice);
} // namespace L0