From 4aef9925b0c6c6ade1a60aa3069ec77d6fff4a9a Mon Sep 17 00:00:00 2001 From: Jaime Arteaga Date: Tue, 1 Feb 2022 01:46:54 +0000 Subject: [PATCH] Add support for zeDeviceGetP2PProperties Related-to: LOCI-2784 Signed-off-by: Jaime Arteaga --- level_zero/core/source/device/device_imp.cpp | 12 +- .../unit_tests/sources/device/test_device.cpp | 135 ++++++++++++++++++ shared/source/gen11/hw_info_ehl.cpp | 4 +- shared/source/gen11/hw_info_icllp.cpp | 2 + shared/source/gen11/hw_info_lkf.cpp | 4 +- shared/source/gen12lp/hw_info_adlp.cpp | 4 +- shared/source/gen12lp/hw_info_adls.cpp | 4 +- shared/source/gen12lp/hw_info_dg1.cpp | 4 +- shared/source/gen12lp/hw_info_rkl.cpp | 4 +- shared/source/gen12lp/hw_info_tgllp.cpp | 4 +- shared/source/gen8/hw_info_bdw.cpp | 4 +- shared/source/gen9/hw_info_bxt.cpp | 2 + shared/source/gen9/hw_info_cfl.cpp | 2 + shared/source/gen9/hw_info_glk.cpp | 4 +- shared/source/gen9/hw_info_kbl.cpp | 2 + shared/source/gen9/hw_info_skl.cpp | 2 + shared/source/helpers/hw_info.h | 4 +- .../source/xe_hp_core/hw_info_xe_hp_sdv.cpp | 4 +- shared/source/xe_hpc_core/hw_info_pvc.cpp | 4 +- shared/source/xe_hpg_core/hw_info_dg2.cpp | 4 +- 20 files changed, 195 insertions(+), 14 deletions(-) diff --git a/level_zero/core/source/device/device_imp.cpp b/level_zero/core/source/device/device_imp.cpp index 94daf33383e05..70089b4c98988 100644 --- a/level_zero/core/source/device/device_imp.cpp +++ b/level_zero/core/source/device/device_imp.cpp @@ -303,7 +303,17 @@ ze_result_t DeviceImp::getComputeProperties(ze_device_compute_properties_t *pCom ze_result_t DeviceImp::getP2PProperties(ze_device_handle_t hPeerDevice, ze_device_p2p_properties_t *pP2PProperties) { - pP2PProperties->flags = 0; + + DeviceImp *peerDevice = static_cast(Device::fromHandle(hPeerDevice)); + if (this->getNEODevice()->getHardwareInfo().capabilityTable.p2pAccessSupported && + peerDevice->getNEODevice()->getHardwareInfo().capabilityTable.p2pAccessSupported) { + pP2PProperties->flags = ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS; + if (this->getNEODevice()->getHardwareInfo().capabilityTable.p2pAtomicAccessSupported && + peerDevice->getNEODevice()->getHardwareInfo().capabilityTable.p2pAtomicAccessSupported) { + pP2PProperties->flags |= ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS; + } + } + return ZE_RESULT_SUCCESS; } diff --git a/level_zero/core/test/unit_tests/sources/device/test_device.cpp b/level_zero/core/test/unit_tests/sources/device/test_device.cpp index 71edb5daee861..786ba61333535 100644 --- a/level_zero/core/test/unit_tests/sources/device/test_device.cpp +++ b/level_zero/core/test/unit_tests/sources/device/test_device.cpp @@ -1804,6 +1804,141 @@ TEST_F(MultipleDevicesTest, givenTwoRootDevicesFromSameFamilyThenCanAccessPeerSu EXPECT_EQ(ZE_RESULT_SUCCESS, res); } +template +struct MultipleDevicesP2PFixture : public ::testing::Test { + void SetUp() override { + NEO::MockCompilerEnableGuard mock(true); + VariableBackup mockDeviceFlagBackup(&MockDevice::createSingleDevice, false); + + std::vector> devices; + NEO::ExecutionEnvironment *executionEnvironment = new NEO::ExecutionEnvironment(); + executionEnvironment->prepareRootDeviceEnvironments(numRootDevices); + + NEO::HardwareInfo hardwareInfo = *NEO::defaultHwInfo; + + hardwareInfo.capabilityTable.p2pAccessSupported = p2pAccessDevice0; + hardwareInfo.capabilityTable.p2pAtomicAccessSupported = p2pAtomicAccessDevice0; + executionEnvironment->rootDeviceEnvironments[0]->setHwInfo(&hardwareInfo); + + hardwareInfo.capabilityTable.p2pAccessSupported = p2pAccessDevice1; + hardwareInfo.capabilityTable.p2pAtomicAccessSupported = p2pAtomicAccessDevice1; + executionEnvironment->rootDeviceEnvironments[1]->setHwInfo(&hardwareInfo); + + memoryManager = new ::testing::NiceMock(*executionEnvironment); + executionEnvironment->memoryManager.reset(memoryManager); + deviceFactory = std::make_unique(numRootDevices, numSubDevices, *executionEnvironment); + + for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { + devices.push_back(std::unique_ptr(deviceFactory->rootDevices[i])); + } + driverHandle = std::make_unique>(); + driverHandle->initialize(std::move(devices)); + + context = std::make_unique(driverHandle.get()); + EXPECT_NE(context, nullptr); + for (auto i = 0u; i < numRootDevices; i++) { + auto device = driverHandle->devices[i]; + context->getDevices().insert(std::make_pair(device->toHandle(), device)); + auto neoDevice = device->getNEODevice(); + context->rootDeviceIndices.insert(neoDevice->getRootDeviceIndex()); + context->deviceBitfields.insert({neoDevice->getRootDeviceIndex(), neoDevice->getDeviceBitfield()}); + } + } + + DebugManagerStateRestore restorer; + std::unique_ptr> driverHandle; + MockMemoryManagerMultiDevice *memoryManager = nullptr; + std::unique_ptr deviceFactory; + std::unique_ptr context; + + const uint32_t numRootDevices = 2u; + const uint32_t numSubDevices = 2u; +}; + +using MultipleDevicesP2PDevice0Access0Atomic0Device1Access0Atomic0Test = MultipleDevicesP2PFixture<0, 0, 0, 0>; +TEST_F(MultipleDevicesP2PDevice0Access0Atomic0Device1Access0Atomic0Test, WhenCallingGetP2PPropertiesWithBothDevicesHavingNoAccessSupportThenNoSupportIsReturned) { + L0::Device *device0 = driverHandle->devices[0]; + L0::Device *device1 = driverHandle->devices[1]; + + ze_device_p2p_properties_t p2pProperties = {}; + device0->getP2PProperties(device1, &p2pProperties); + + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS); + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS); +} + +using MultipleDevicesP2PDevice0Access0Atomic0Device1Access1Atomic0Test = MultipleDevicesP2PFixture<0, 0, 1, 0>; +TEST_F(MultipleDevicesP2PDevice0Access0Atomic0Device1Access1Atomic0Test, WhenCallingGetP2PPropertiesWithOnlyOneDeviceHavingAccessSupportThenNoSupportIsReturned) { + L0::Device *device0 = driverHandle->devices[0]; + L0::Device *device1 = driverHandle->devices[1]; + + ze_device_p2p_properties_t p2pProperties = {}; + device0->getP2PProperties(device1, &p2pProperties); + + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS); + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS); +} + +using MultipleDevicesP2PDevice0Access1Atomic0Device1Access0Atomic0Test = MultipleDevicesP2PFixture<1, 0, 0, 0>; +TEST_F(MultipleDevicesP2PDevice0Access1Atomic0Device1Access0Atomic0Test, WhenCallingGetP2PPropertiesWithOnlyFirstDeviceHavingAccessSupportThenNoSupportIsReturned) { + L0::Device *device0 = driverHandle->devices[0]; + L0::Device *device1 = driverHandle->devices[1]; + + ze_device_p2p_properties_t p2pProperties = {}; + device0->getP2PProperties(device1, &p2pProperties); + + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS); + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS); +} + +using MultipleDevicesP2PDevice0Access1Atomic0Device1Access1Atomic0Test = MultipleDevicesP2PFixture<1, 0, 1, 0>; +TEST_F(MultipleDevicesP2PDevice0Access1Atomic0Device1Access1Atomic0Test, WhenCallingGetP2PPropertiesWithBothDevicesHavingAccessSupportThenSupportIsReturned) { + L0::Device *device0 = driverHandle->devices[0]; + L0::Device *device1 = driverHandle->devices[1]; + + ze_device_p2p_properties_t p2pProperties = {}; + device0->getP2PProperties(device1, &p2pProperties); + + EXPECT_TRUE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS); + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS); +} + +using MultipleDevicesP2PDevice0Access1Atomic0Device1Access1Atomic1Test = MultipleDevicesP2PFixture<1, 0, 1, 1>; +TEST_F(MultipleDevicesP2PDevice0Access1Atomic0Device1Access1Atomic1Test, WhenCallingGetP2PPropertiesWithBothDevicesHavingAccessSupportAndOnlyOneWithAtomicThenSupportIsReturnedOnlyForAccess) { + L0::Device *device0 = driverHandle->devices[0]; + L0::Device *device1 = driverHandle->devices[1]; + + ze_device_p2p_properties_t p2pProperties = {}; + device0->getP2PProperties(device1, &p2pProperties); + + EXPECT_TRUE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS); + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS); +} + +using MultipleDevicesP2PDevice0Access1Atomic1Device1Access1Atomic0Test = MultipleDevicesP2PFixture<1, 1, 1, 0>; +TEST_F(MultipleDevicesP2PDevice0Access1Atomic1Device1Access1Atomic0Test, WhenCallingGetP2PPropertiesWithBothDevicesHavingAccessSupportAndOnlyFirstWithAtomicThenSupportIsReturnedOnlyForAccess) { + L0::Device *device0 = driverHandle->devices[0]; + L0::Device *device1 = driverHandle->devices[1]; + + ze_device_p2p_properties_t p2pProperties = {}; + device0->getP2PProperties(device1, &p2pProperties); + + EXPECT_TRUE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS); + EXPECT_FALSE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS); +} + +using MultipleDevicesP2PDevice0Access1Atomic1Device1Access1Atomic1Test = MultipleDevicesP2PFixture<1, 1, 1, 1>; +TEST_F(MultipleDevicesP2PDevice0Access1Atomic1Device1Access1Atomic1Test, WhenCallingGetP2PPropertiesWithBothDevicesHavingAccessAndAtomicSupportThenSupportIsReturned) { + L0::Device *device0 = driverHandle->devices[0]; + L0::Device *device1 = driverHandle->devices[1]; + + ze_device_p2p_properties_t p2pProperties = {}; + device0->getP2PProperties(device1, &p2pProperties); + + EXPECT_TRUE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS); + EXPECT_TRUE(p2pProperties.flags & ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS); +} + TEST_F(MultipleDevicesTest, givenTwoRootDevicesFromSameFamilyThenCanAccessPeerReturnsTrue) { L0::Device *device0 = driverHandle->devices[0]; L0::Device *device1 = driverHandle->devices[1]; diff --git a/shared/source/gen11/hw_info_ehl.cpp b/shared/source/gen11/hw_info_ehl.cpp index fde79fe349feb..d985dbe8397aa 100644 --- a/shared/source/gen11/hw_info_ehl.cpp +++ b/shared/source/gen11/hw_info_ehl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2021 Intel Corporation + * Copyright (C) 2019-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -80,6 +80,8 @@ const RuntimeCapabilityTable EHL::capabilityTable{ false, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen11/hw_info_icllp.cpp b/shared/source/gen11/hw_info_icllp.cpp index 3aa383a51e9c0..1f1559f44a5ca 100644 --- a/shared/source/gen11/hw_info_icllp.cpp +++ b/shared/source/gen11/hw_info_icllp.cpp @@ -81,6 +81,8 @@ const RuntimeCapabilityTable ICLLP::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen11/hw_info_lkf.cpp b/shared/source/gen11/hw_info_lkf.cpp index 4289d2ee9ef58..3923864de38fc 100644 --- a/shared/source/gen11/hw_info_lkf.cpp +++ b/shared/source/gen11/hw_info_lkf.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2021 Intel Corporation + * Copyright (C) 2019-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -80,6 +80,8 @@ const RuntimeCapabilityTable LKF::capabilityTable{ false, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen12lp/hw_info_adlp.cpp b/shared/source/gen12lp/hw_info_adlp.cpp index 3667d158b052a..223931e2042e8 100644 --- a/shared/source/gen12lp/hw_info_adlp.cpp +++ b/shared/source/gen12lp/hw_info_adlp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -78,6 +78,8 @@ const RuntimeCapabilityTable ADLP::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported true // fusedEuEnabled }; diff --git a/shared/source/gen12lp/hw_info_adls.cpp b/shared/source/gen12lp/hw_info_adls.cpp index 101eadba52391..57ce1737c2c01 100644 --- a/shared/source/gen12lp/hw_info_adls.cpp +++ b/shared/source/gen12lp/hw_info_adls.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -78,6 +78,8 @@ const RuntimeCapabilityTable ADLS::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported true // fusedEuEnabled }; diff --git a/shared/source/gen12lp/hw_info_dg1.cpp b/shared/source/gen12lp/hw_info_dg1.cpp index 802b7b87ce63f..ee961edef470a 100644 --- a/shared/source/gen12lp/hw_info_dg1.cpp +++ b/shared/source/gen12lp/hw_info_dg1.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -86,6 +86,8 @@ const RuntimeCapabilityTable DG1::capabilityTable{ true, // levelZeroSupported false, // isIntegratedDevice true, // supportsMediaBlock + true, // p2pAccessSupported + false, // p2pAtomicAccessSupported true // fusedEuEnabled }; diff --git a/shared/source/gen12lp/hw_info_rkl.cpp b/shared/source/gen12lp/hw_info_rkl.cpp index 2851c85a9094c..dc0142c498529 100644 --- a/shared/source/gen12lp/hw_info_rkl.cpp +++ b/shared/source/gen12lp/hw_info_rkl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -78,6 +78,8 @@ const RuntimeCapabilityTable RKL::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported true // fusedEuEnabled }; diff --git a/shared/source/gen12lp/hw_info_tgllp.cpp b/shared/source/gen12lp/hw_info_tgllp.cpp index 7771670fa397f..834606f6446b6 100644 --- a/shared/source/gen12lp/hw_info_tgllp.cpp +++ b/shared/source/gen12lp/hw_info_tgllp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2021 Intel Corporation + * Copyright (C) 2019-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -82,6 +82,8 @@ const RuntimeCapabilityTable TGLLP::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported true // fusedEuEnabled }; diff --git a/shared/source/gen8/hw_info_bdw.cpp b/shared/source/gen8/hw_info_bdw.cpp index 4156328bda984..0768edd3eb978 100644 --- a/shared/source/gen8/hw_info_bdw.cpp +++ b/shared/source/gen8/hw_info_bdw.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 Intel Corporation + * Copyright (C) 2018-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -85,6 +85,8 @@ const RuntimeCapabilityTable BDW::capabilityTable{ false, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen9/hw_info_bxt.cpp b/shared/source/gen9/hw_info_bxt.cpp index cfafdead640b3..badd69d64d714 100644 --- a/shared/source/gen9/hw_info_bxt.cpp +++ b/shared/source/gen9/hw_info_bxt.cpp @@ -82,6 +82,8 @@ const RuntimeCapabilityTable BXT::capabilityTable{ false, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen9/hw_info_cfl.cpp b/shared/source/gen9/hw_info_cfl.cpp index dbca891fcc404..7b10f7f9ac262 100644 --- a/shared/source/gen9/hw_info_cfl.cpp +++ b/shared/source/gen9/hw_info_cfl.cpp @@ -77,6 +77,8 @@ const RuntimeCapabilityTable CFL::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen9/hw_info_glk.cpp b/shared/source/gen9/hw_info_glk.cpp index 805db729fdfbc..06db1862626d3 100644 --- a/shared/source/gen9/hw_info_glk.cpp +++ b/shared/source/gen9/hw_info_glk.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 Intel Corporation + * Copyright (C) 2018-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -77,6 +77,8 @@ const RuntimeCapabilityTable GLK::capabilityTable{ false, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen9/hw_info_kbl.cpp b/shared/source/gen9/hw_info_kbl.cpp index 879cdf6ed2cf1..97be4b39b83d2 100644 --- a/shared/source/gen9/hw_info_kbl.cpp +++ b/shared/source/gen9/hw_info_kbl.cpp @@ -77,6 +77,8 @@ const RuntimeCapabilityTable KBL::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/gen9/hw_info_skl.cpp b/shared/source/gen9/hw_info_skl.cpp index f6147c738e76f..e9971d1e46b0c 100644 --- a/shared/source/gen9/hw_info_skl.cpp +++ b/shared/source/gen9/hw_info_skl.cpp @@ -85,6 +85,8 @@ const RuntimeCapabilityTable SKL::capabilityTable{ true, // levelZeroSupported true, // isIntegratedDevice true, // supportsMediaBlock + false, // p2pAccessSupported + false, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/helpers/hw_info.h b/shared/source/helpers/hw_info.h index 1fb80f3ff0cfb..92c4734e1ed47 100644 --- a/shared/source/helpers/hw_info.h +++ b/shared/source/helpers/hw_info.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 Intel Corporation + * Copyright (C) 2018-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -65,6 +65,8 @@ struct RuntimeCapabilityTable { bool levelZeroSupported; bool isIntegratedDevice; bool supportsMediaBlock; + bool p2pAccessSupported; + bool p2pAtomicAccessSupported; bool fusedEuEnabled; }; diff --git a/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp b/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp index 244472da90382..bf3a9b884c8fd 100644 --- a/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp +++ b/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -82,6 +82,8 @@ const RuntimeCapabilityTable XE_HP_SDV::capabilityTable{ true, // levelZeroSupported false, // isIntegratedDevice true, // supportsMediaBlock + true, // p2pAccessSupported + false, // p2pAtomicAccessSupported true // fusedEuEnabled }; diff --git a/shared/source/xe_hpc_core/hw_info_pvc.cpp b/shared/source/xe_hpc_core/hw_info_pvc.cpp index 143f719070c50..ea869098c679f 100644 --- a/shared/source/xe_hpc_core/hw_info_pvc.cpp +++ b/shared/source/xe_hpc_core/hw_info_pvc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -90,6 +90,8 @@ const RuntimeCapabilityTable PVC::capabilityTable{ true, // levelZeroSupported false, // isIntegratedDevice false, // supportsMediaBlock + true, // p2pAccessSupported + true, // p2pAtomicAccessSupported false // fusedEuEnabled }; diff --git a/shared/source/xe_hpg_core/hw_info_dg2.cpp b/shared/source/xe_hpg_core/hw_info_dg2.cpp index d161feed7c1cd..848403a2b174d 100644 --- a/shared/source/xe_hpg_core/hw_info_dg2.cpp +++ b/shared/source/xe_hpg_core/hw_info_dg2.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -82,6 +82,8 @@ const RuntimeCapabilityTable DG2::capabilityTable{ true, // levelZeroSupported false, // isIntegratedDevice true, // supportsMediaBlock + true, // p2pAccessSupported + false, // p2pAtomicAccessSupported true // fusedEuEnabled };