Add USM support flags
Change-Id: I36ef2eaf22ea75c28efd83a91ac3ef9e8961a824
This commit is contained in:
parent
8bbb719a97
commit
c7274c60e7
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2019 Intel Corporation
|
||||
# Copyright (C) 2019-2020 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
@ -8,6 +8,7 @@ set(NEO_UNIFIED_MEMORY
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/unified_memory.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/unified_memory.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/usm_memory_support.h
|
||||
)
|
||||
|
||||
set_property(GLOBAL PROPERTY NEO_UNIFIED_MEMORY ${NEO_UNIFIED_MEMORY})
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
constexpr uint64_t UNIFIED_SHARED_MEMORY_ACCESS = 1 << 0;
|
||||
constexpr uint64_t UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS = 1 << 1;
|
||||
constexpr uint64_t UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS = 1 << 2;
|
||||
constexpr uint64_t UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS = 1 << 3;
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2017-2019 Intel Corporation
|
||||
* Copyright (C) 2017-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
|
@ -8,7 +8,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "core/helpers/hw_info.h"
|
||||
#include "public/cl_ext_private.h"
|
||||
#include "core/unified_memory/usm_memory_support.h"
|
||||
|
||||
#include "igfxfmid.h"
|
||||
|
||||
|
@ -28,11 +28,11 @@ class HwInfoConfig {
|
|||
int configureHwInfo(const HardwareInfo *inHwInfo, HardwareInfo *outHwInfo, OSInterface *osIface);
|
||||
virtual int configureHardwareCustom(HardwareInfo *hwInfo, OSInterface *osIface) = 0;
|
||||
virtual void adjustPlatformForProductFamily(HardwareInfo *hwInfo) = 0;
|
||||
virtual cl_unified_shared_memory_capabilities_intel getHostMemCapabilities() = 0;
|
||||
virtual cl_unified_shared_memory_capabilities_intel getDeviceMemCapabilities() = 0;
|
||||
virtual cl_unified_shared_memory_capabilities_intel getSingleDeviceSharedMemCapabilities() = 0;
|
||||
virtual cl_unified_shared_memory_capabilities_intel getCrossDeviceSharedMemCapabilities() = 0;
|
||||
virtual cl_unified_shared_memory_capabilities_intel getSharedSystemMemCapabilities() = 0;
|
||||
virtual uint64_t getHostMemCapabilities() = 0;
|
||||
virtual uint64_t getDeviceMemCapabilities() = 0;
|
||||
virtual uint64_t getSingleDeviceSharedMemCapabilities() = 0;
|
||||
virtual uint64_t getCrossDeviceSharedMemCapabilities() = 0;
|
||||
virtual uint64_t getSharedSystemMemCapabilities() = 0;
|
||||
uint32_t threadsPerEu;
|
||||
};
|
||||
|
||||
|
@ -45,11 +45,11 @@ class HwInfoConfigHw : public HwInfoConfig {
|
|||
}
|
||||
int configureHardwareCustom(HardwareInfo *hwInfo, OSInterface *osIface) override;
|
||||
void adjustPlatformForProductFamily(HardwareInfo *hwInfo) override;
|
||||
cl_unified_shared_memory_capabilities_intel getHostMemCapabilities() override;
|
||||
cl_unified_shared_memory_capabilities_intel getDeviceMemCapabilities() override;
|
||||
cl_unified_shared_memory_capabilities_intel getSingleDeviceSharedMemCapabilities() override;
|
||||
cl_unified_shared_memory_capabilities_intel getCrossDeviceSharedMemCapabilities() override;
|
||||
cl_unified_shared_memory_capabilities_intel getSharedSystemMemCapabilities() override;
|
||||
uint64_t getHostMemCapabilities() override;
|
||||
uint64_t getDeviceMemCapabilities() override;
|
||||
uint64_t getSingleDeviceSharedMemCapabilities() override;
|
||||
uint64_t getCrossDeviceSharedMemCapabilities() override;
|
||||
uint64_t getSharedSystemMemCapabilities() override;
|
||||
|
||||
protected:
|
||||
HwInfoConfigHw() {}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation
|
||||
* Copyright (C) 2019-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
|
@ -9,27 +9,27 @@
|
|||
|
||||
namespace NEO {
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<gfxProduct>::getHostMemCapabilities() {
|
||||
return (CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL);
|
||||
uint64_t HwInfoConfigHw<gfxProduct>::getHostMemCapabilities() {
|
||||
return (UNIFIED_SHARED_MEMORY_ACCESS | UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS);
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<gfxProduct>::getDeviceMemCapabilities() {
|
||||
return (CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL);
|
||||
uint64_t HwInfoConfigHw<gfxProduct>::getDeviceMemCapabilities() {
|
||||
return (UNIFIED_SHARED_MEMORY_ACCESS | UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS);
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<gfxProduct>::getSingleDeviceSharedMemCapabilities() {
|
||||
return (CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL);
|
||||
uint64_t HwInfoConfigHw<gfxProduct>::getSingleDeviceSharedMemCapabilities() {
|
||||
return (UNIFIED_SHARED_MEMORY_ACCESS | UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS);
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<gfxProduct>::getCrossDeviceSharedMemCapabilities() {
|
||||
uint64_t HwInfoConfigHw<gfxProduct>::getCrossDeviceSharedMemCapabilities() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<gfxProduct>::getSharedSystemMemCapabilities() {
|
||||
uint64_t HwInfoConfigHw<gfxProduct>::getSharedSystemMemCapabilities() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ set(IGDRCL_SRCS_tests_memory_manager
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/physical_address_allocator_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/surface_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/unified_memory_manager_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/unified_memory_tests.cpp
|
||||
)
|
||||
|
||||
get_property(NEO_CORE_UNIFIED_MEMORY_TESTS GLOBAL PROPERTY NEO_CORE_UNIFIED_MEMORY_TESTS)
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "core/unified_memory/unified_memory.h"
|
||||
#include "core/unified_memory/usm_memory_support.h"
|
||||
#include "public/cl_ext_private.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
TEST(UnifiedMemoryTests, givenCLUSMMemorySupportFlagsWhenUsingUnifiedMemorySupportFlagsThenEverythingMatch) {
|
||||
static_assert(CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL == UNIFIED_SHARED_MEMORY_ACCESS, "Flags value difference");
|
||||
static_assert(CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL == UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS, "Flags value difference");
|
||||
static_assert(CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL == UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS, "Flags value difference");
|
||||
static_assert(CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL == UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS, "Flags value difference");
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2018-2019 Intel Corporation
|
||||
* Copyright (C) 2018-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
|
@ -21,27 +21,27 @@
|
|||
namespace NEO {
|
||||
|
||||
template <>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<IGFX_UNKNOWN>::getHostMemCapabilities() {
|
||||
uint64_t HwInfoConfigHw<IGFX_UNKNOWN>::getHostMemCapabilities() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<IGFX_UNKNOWN>::getDeviceMemCapabilities() {
|
||||
uint64_t HwInfoConfigHw<IGFX_UNKNOWN>::getDeviceMemCapabilities() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<IGFX_UNKNOWN>::getSingleDeviceSharedMemCapabilities() {
|
||||
uint64_t HwInfoConfigHw<IGFX_UNKNOWN>::getSingleDeviceSharedMemCapabilities() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<IGFX_UNKNOWN>::getCrossDeviceSharedMemCapabilities() {
|
||||
uint64_t HwInfoConfigHw<IGFX_UNKNOWN>::getCrossDeviceSharedMemCapabilities() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
cl_unified_shared_memory_capabilities_intel HwInfoConfigHw<IGFX_UNKNOWN>::getSharedSystemMemCapabilities() {
|
||||
uint64_t HwInfoConfigHw<IGFX_UNKNOWN>::getSharedSystemMemCapabilities() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue