diff --git a/level_zero/core/source/cmdlist.cpp b/level_zero/core/source/cmdlist.cpp index f01f0ad935..8de363a16a 100644 --- a/level_zero/core/source/cmdlist.cpp +++ b/level_zero/core/source/cmdlist.cpp @@ -8,10 +8,9 @@ #include "level_zero/core/source/cmdlist.h" #include "shared/source/command_stream/preemption.h" +#include "shared/source/device/device_info.h" #include "shared/source/memory_manager/memory_manager.h" -#include "opencl/source/device/device_info.h" - namespace L0 { CommandList::~CommandList() { if (cmdQImmediate) { diff --git a/level_zero/core/source/device.h b/level_zero/core/source/device.h index 2b4cbeaa17..a39ad13a15 100644 --- a/level_zero/core/source/device.h +++ b/level_zero/core/source/device.h @@ -19,11 +19,11 @@ #include struct _ze_device_handle_t {}; -struct DeviceInfo; namespace NEO { class Device; class MemoryManager; class SourceLevelDebugger; +struct DeviceInfo; } // namespace NEO namespace L0 { @@ -109,7 +109,7 @@ struct Device : _ze_device_handle_t { static Device *create(DriverHandle *driverHandle, NEO::Device *neoDevice); virtual NEO::PreemptionMode getDevicePreemptionMode() const = 0; - virtual const DeviceInfo &getDeviceInfo() const = 0; + virtual const NEO::DeviceInfo &getDeviceInfo() const = 0; virtual NEO::Device *getNEODevice() = 0; NEO::SourceLevelDebugger *getSourceLevelDebugger() { diff --git a/level_zero/core/source/device_imp.cpp b/level_zero/core/source/device_imp.cpp index 8cab0503fa..2c8f364f23 100644 --- a/level_zero/core/source/device_imp.cpp +++ b/level_zero/core/source/device_imp.cpp @@ -9,6 +9,7 @@ #include "shared/source/built_ins/sip.h" #include "shared/source/debug_settings/debug_settings_manager.h" +#include "shared/source/device/device_info.h" #include "shared/source/device/sub_device.h" #include "shared/source/execution_environment/execution_environment.h" #include "shared/source/execution_environment/root_device_environment.h" @@ -23,7 +24,6 @@ #include "shared/source/os_interface/os_time.h" #include "shared/source/source_level_debugger/source_level_debugger.h" -#include "opencl/source/device/device_info.h" #include "opencl/source/mem_obj/mem_obj.h" #include "opencl/source/program/program.h" @@ -620,7 +620,7 @@ NEO::PreemptionMode DeviceImp::getDevicePreemptionMode() const { return neoDevice->getPreemptionMode(); } -const DeviceInfo &DeviceImp::getDeviceInfo() const { +const NEO::DeviceInfo &DeviceImp::getDeviceInfo() const { return neoDevice->getDeviceInfo(); } diff --git a/level_zero/core/source/device_imp.h b/level_zero/core/source/device_imp.h index c7a89673ba..3b93d66ada 100644 --- a/level_zero/core/source/device_imp.h +++ b/level_zero/core/source/device_imp.h @@ -73,7 +73,7 @@ struct DeviceImp : public Device { DriverHandle *getDriverHandle() override; void setDriverHandle(DriverHandle *driverHandle) override; NEO::PreemptionMode getDevicePreemptionMode() const override; - const DeviceInfo &getDeviceInfo() const override; + const NEO::DeviceInfo &getDeviceInfo() const override; NEO::Device *getNEODevice() override; void activateMetricGroups() override; void processAdditionalKernelProperties(NEO::HwHelper &hwHelper, ze_device_kernel_properties_t *pKernelProperties); diff --git a/opencl/source/command_queue/gpgpu_walker_base.inl b/opencl/source/command_queue/gpgpu_walker_base.inl index 8530258c89..fe720d3c0b 100644 --- a/opencl/source/command_queue/gpgpu_walker_base.inl +++ b/opencl/source/command_queue/gpgpu_walker_base.inl @@ -20,7 +20,6 @@ #include "opencl/source/command_queue/command_queue_hw.h" #include "opencl/source/command_queue/gpgpu_walker.h" #include "opencl/source/command_queue/local_id_gen.h" -#include "opencl/source/device/device_info.h" #include "opencl/source/event/perf_counter.h" #include "opencl/source/event/user_event.h" #include "opencl/source/helpers/hardware_commands_helper.h" diff --git a/opencl/source/device/CMakeLists.txt b/opencl/source/device/CMakeLists.txt index aec331016c..2b1eab05e6 100644 --- a/opencl/source/device/CMakeLists.txt +++ b/opencl/source/device/CMakeLists.txt @@ -9,10 +9,10 @@ set(RUNTIME_SRCS_DEVICE ${CMAKE_CURRENT_SOURCE_DIR}/cl_device.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cl_device.h ${CMAKE_CURRENT_SOURCE_DIR}/cl_device_get_cap.inl + ${CMAKE_CURRENT_SOURCE_DIR}/cl_device_info.h ${CMAKE_CURRENT_SOURCE_DIR}/cl_device_vector.h ${CMAKE_CURRENT_SOURCE_DIR}/device_caps.cpp ${CMAKE_CURRENT_SOURCE_DIR}/device_info.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/device_info.h ${CMAKE_CURRENT_SOURCE_DIR}/device_info_map.h ) target_sources(${NEO_STATIC_LIB_NAME} PRIVATE ${RUNTIME_SRCS_DEVICE}) diff --git a/opencl/source/device/cl_device.h b/opencl/source/device/cl_device.h index 62ce1fbe59..d5df7306d8 100644 --- a/opencl/source/device/cl_device.h +++ b/opencl/source/device/cl_device.h @@ -10,7 +10,7 @@ #include "shared/source/utilities/reference_tracked_object.h" #include "opencl/source/api/cl_types.h" -#include "opencl/source/device/device_info.h" +#include "opencl/source/device/cl_device_info.h" #include "opencl/source/helpers/base_object.h" #include "engine_node.h" @@ -30,6 +30,7 @@ class PerformanceCounters; class Platform; class SourceLevelDebugger; class SyncBufferHandler; +struct DeviceInfo; struct EngineControl; struct HardwareCapabilities; struct HardwareInfo; diff --git a/opencl/source/device/device_info.h b/opencl/source/device/cl_device_info.h similarity index 83% rename from opencl/source/device/device_info.h rename to opencl/source/device/cl_device_info.h index c8e9e693b4..83f44f6320 100644 --- a/opencl/source/device/device_info.h +++ b/opencl/source/device/cl_device_info.h @@ -15,6 +15,8 @@ #include +namespace NEO { + // clang-format off struct ClDeviceInfo { cl_device_type deviceType; @@ -114,39 +116,4 @@ struct ClDeviceInfo { }; // clang-format on -struct DeviceInfo { - StackVec maxSubGroups; - double profilingTimerResolution; - uint64_t globalMemSize; - uint64_t localMemSize; - uint64_t maxMemAllocSize; - const char *ilVersion; - size_t image2DMaxHeight; - size_t image2DMaxWidth; - size_t image3DMaxDepth; - size_t imageMaxArraySize; - size_t imageMaxBufferSize; - size_t maxNumEUsPerSubSlice; - size_t maxParameterSize; - size_t maxWorkGroupSize; - size_t maxWorkItemSizes[3]; - size_t outProfilingTimerResolution; - size_t printfBufferSize; - uint32_t addressBits; - uint32_t computeUnitsUsedForScratch; - uint32_t errorCorrectionSupport; - uint32_t globalMemCachelineSize; - uint32_t imageSupport; - uint32_t maxClockFrequency; - uint32_t maxFrontEndThreads; - uint32_t maxOnDeviceQueues; - uint32_t maxReadImageArgs; - uint32_t maxSamplers; - uint32_t maxWriteImageArgs; - uint32_t numThreadsPerEU; - uint32_t vendorId; - uint32_t vmeAvcSupportsPreemption; - bool debuggerActive; - bool force32BitAddressess; - bool sharedSystemAllocationsSupport; -}; +} // namespace NEO diff --git a/opencl/source/device/device_info.cpp b/opencl/source/device/device_info.cpp index 1f027cf58a..d284f6bfe6 100644 --- a/opencl/source/device/device_info.cpp +++ b/opencl/source/device/device_info.cpp @@ -5,7 +5,7 @@ * */ -#include "opencl/source/device/device_info.h" +#include "shared/source/device/device_info.h" #include "shared/source/device/device.h" #include "shared/source/helpers/get_info.h" @@ -13,16 +13,17 @@ #include "opencl/source/device/cl_device.h" #include "opencl/source/device/cl_device_get_cap.inl" +#include "opencl/source/device/cl_device_info.h" #include "opencl/source/device/cl_device_vector.h" #include "opencl/source/device/device_info_map.h" #include "opencl/source/helpers/cl_device_helpers.h" #include "opencl/source/helpers/get_info_status_mapper.h" #include "opencl/source/platform/platform.h" -using DeviceInfoTable::Map; - namespace NEO { +using DeviceInfoTable::Map; + template inline void ClDevice::getStr(const void *&src, size_t &size, diff --git a/opencl/source/device/device_info_map.h b/opencl/source/device/device_info_map.h index 9f0b2575a9..27fc92797d 100644 --- a/opencl/source/device/device_info_map.h +++ b/opencl/source/device/device_info_map.h @@ -6,14 +6,18 @@ */ #pragma once +#include "shared/source/device/device_info.h" + #include "opencl/extensions/public/cl_ext_private.h" #include "opencl/source/device/cl_device.h" -#include "opencl/source/device/device_info.h" +#include "opencl/source/device/cl_device_info.h" #include "CL/cl_ext_intel.h" #include #include +namespace NEO { + namespace DeviceInfoTable { template @@ -158,4 +162,7 @@ template<> struct Map : template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; // clang-format on + } // namespace DeviceInfoTable + +} // namespace NEO diff --git a/opencl/source/gtpin/gtpin_callbacks.cpp b/opencl/source/gtpin/gtpin_callbacks.cpp index e43837b6b5..4d2f46bdc2 100644 --- a/opencl/source/gtpin/gtpin_callbacks.cpp +++ b/opencl/source/gtpin/gtpin_callbacks.cpp @@ -12,7 +12,6 @@ #include "opencl/source/command_queue/command_queue.h" #include "opencl/source/context/context.h" #include "opencl/source/device/cl_device.h" -#include "opencl/source/device/device_info.h" #include "opencl/source/gtpin/gtpin_defs.h" #include "opencl/source/gtpin/gtpin_hw_helper.h" #include "opencl/source/gtpin/gtpin_notify.h" diff --git a/opencl/source/gtpin/gtpin_init.cpp b/opencl/source/gtpin/gtpin_init.cpp index 3e2ce8ac06..5ad1769b85 100644 --- a/opencl/source/gtpin/gtpin_init.cpp +++ b/opencl/source/gtpin/gtpin_init.cpp @@ -9,7 +9,6 @@ #include "shared/source/device/device.h" -#include "opencl/source/device/device_info.h" #include "opencl/source/platform/platform.h" #include "CL/cl.h" diff --git a/opencl/test/unit_test/api/cl_enqueue_read_buffer_tests.inl b/opencl/test/unit_test/api/cl_enqueue_read_buffer_tests.inl index aefdd2293c..997fe14777 100644 --- a/opencl/test/unit_test/api/cl_enqueue_read_buffer_tests.inl +++ b/opencl/test/unit_test/api/cl_enqueue_read_buffer_tests.inl @@ -9,7 +9,7 @@ #include "opencl/source/command_queue/command_queue.h" #include "opencl/source/context/context.h" -#include "opencl/source/device/device_info.h" +#include "opencl/source/device/cl_device_info.h" #include "cl_api_tests.h" diff --git a/opencl/test/unit_test/device_queue/device_queue_tests.cpp b/opencl/test/unit_test/device_queue/device_queue_tests.cpp index 1568838527..2d6630fb05 100644 --- a/opencl/test/unit_test/device_queue/device_queue_tests.cpp +++ b/opencl/test/unit_test/device_queue/device_queue_tests.cpp @@ -5,7 +5,8 @@ * */ -#include "opencl/source/device/device_info.h" +#include "shared/source/device/device_info.h" + #include "opencl/source/helpers/dispatch_info.h" #include "opencl/test/unit_test/fixtures/device_host_queue_fixture.h" #include "opencl/test/unit_test/gen_common/matchers.h" diff --git a/shared/source/device/CMakeLists.txt b/shared/source/device/CMakeLists.txt index 8cd793623b..5ca826de87 100644 --- a/shared/source/device/CMakeLists.txt +++ b/shared/source/device/CMakeLists.txt @@ -9,6 +9,7 @@ set(NEO_CORE_DEVICE ${CMAKE_CURRENT_SOURCE_DIR}/device.cpp ${CMAKE_CURRENT_SOURCE_DIR}/device.h ${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/device_get_engine.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/device_info.h ${CMAKE_CURRENT_SOURCE_DIR}/root_device.cpp ${CMAKE_CURRENT_SOURCE_DIR}/root_device.h ${CMAKE_CURRENT_SOURCE_DIR}/sub_device.cpp diff --git a/shared/source/device/device.h b/shared/source/device/device.h index b3a062380e..36ff2fbb00 100644 --- a/shared/source/device/device.h +++ b/shared/source/device/device.h @@ -6,13 +6,13 @@ */ #pragma once +#include "shared/source/device/device_info.h" #include "shared/source/execution_environment/execution_environment.h" #include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/helpers/common_types.h" #include "shared/source/helpers/engine_control.h" #include "shared/source/helpers/hw_info.h" -#include "opencl/source/device/device_info.h" #include "opencl/source/os_interface/performance_counters.h" namespace NEO { diff --git a/shared/source/device/device_info.h b/shared/source/device/device_info.h new file mode 100644 index 0000000000..4fa6b996ec --- /dev/null +++ b/shared/source/device/device_info.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2017-2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#pragma once +#include + +#include "opencl/extensions/public/cl_ext_private.h" + +#include "CL/cl.h" +#include "CL/cl_ext.h" + +#include + +namespace NEO { + +struct DeviceInfo { + StackVec maxSubGroups; + double profilingTimerResolution; + uint64_t globalMemSize; + uint64_t localMemSize; + uint64_t maxMemAllocSize; + const char *ilVersion; + size_t image2DMaxHeight; + size_t image2DMaxWidth; + size_t image3DMaxDepth; + size_t imageMaxArraySize; + size_t imageMaxBufferSize; + size_t maxNumEUsPerSubSlice; + size_t maxParameterSize; + size_t maxWorkGroupSize; + size_t maxWorkItemSizes[3]; + size_t outProfilingTimerResolution; + size_t printfBufferSize; + uint32_t addressBits; + uint32_t computeUnitsUsedForScratch; + uint32_t errorCorrectionSupport; + uint32_t globalMemCachelineSize; + uint32_t imageSupport; + uint32_t maxClockFrequency; + uint32_t maxFrontEndThreads; + uint32_t maxOnDeviceQueues; + uint32_t maxReadImageArgs; + uint32_t maxSamplers; + uint32_t maxWriteImageArgs; + uint32_t numThreadsPerEU; + uint32_t vendorId; + uint32_t vmeAvcSupportsPreemption; + bool debuggerActive; + bool force32BitAddressess; + bool sharedSystemAllocationsSupport; +}; + +} // namespace NEO