mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 23:03:02 +08:00
feature: add support for Panther Lake platform
Related-To: NEO-12803 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
8e41928eb8
commit
bb1a125f0c
15
opencl/source/xe3_core/CMakeLists.txt
Normal file
15
opencl/source/xe3_core/CMakeLists.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
#
|
||||
# Copyright (C) 2025 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
if(SUPPORT_XE3_CORE)
|
||||
set(RUNTIME_SRCS_XE3_CORE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
)
|
||||
|
||||
target_sources(${NEO_STATIC_LIB_NAME} PRIVATE ${RUNTIME_SRCS_XE3_CORE})
|
||||
set_property(GLOBAL PROPERTY RUNTIME_SRCS_XE3_CORE ${RUNTIME_SRCS_XE3_CORE})
|
||||
endif()
|
||||
|
||||
20
opencl/source/xe3_core/buffer_xe3_core.cpp
Normal file
20
opencl/source/xe3_core/buffer_xe3_core.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/mem_obj/buffer_base.inl"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
using Family = Xe3CoreFamily;
|
||||
static auto gfxCore = IGFX_XE3_CORE;
|
||||
|
||||
template class BufferHw<Family>;
|
||||
|
||||
#include "opencl/source/mem_obj/buffer_factory_init.inl"
|
||||
} // namespace NEO
|
||||
29
opencl/source/xe3_core/cl_gfx_core_helper_xe3_core.cpp
Normal file
29
opencl/source/xe3_core/cl_gfx_core_helper_xe3_core.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/helpers/populate_factory.h"
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/helpers/cl_gfx_core_helper_base.inl"
|
||||
#include "opencl/source/helpers/cl_gfx_core_helper_xehp_and_later.inl"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
using Family = Xe3CoreFamily;
|
||||
static auto gfxCore = IGFX_XE3_CORE;
|
||||
|
||||
#include "opencl/source/helpers/cl_gfx_core_helper_factory_init.inl"
|
||||
#include "opencl/source/helpers/cl_gfx_core_helper_pvc_and_later.inl"
|
||||
|
||||
template <>
|
||||
bool ClGfxCoreHelperHw<Family>::requiresAuxResolves(const KernelInfo &kernelInfo) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template class ClGfxCoreHelperHw<Family>;
|
||||
|
||||
} // namespace NEO
|
||||
42
opencl/source/xe3_core/command_queue_xe3_core.cpp
Normal file
42
opencl/source/xe3_core/command_queue_xe3_core.cpp
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/helpers/populate_factory.h"
|
||||
#include "shared/source/memory_manager/unified_memory_manager.h"
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/command_queue/command_queue_hw.h"
|
||||
#include "opencl/source/command_queue/enqueue_resource_barrier.h"
|
||||
|
||||
namespace NEO {
|
||||
using Family = Xe3CoreFamily;
|
||||
static auto gfxCore = IGFX_XE3_CORE;
|
||||
} // namespace NEO
|
||||
|
||||
#include "opencl/source/command_queue/command_queue_hw_xehp_and_later.inl"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
template <>
|
||||
void populateFactoryTable<CommandQueueHw<Family>>() {
|
||||
extern CommandQueueCreateFunc commandQueueFactory[IGFX_MAX_CORE];
|
||||
commandQueueFactory[gfxCore] = CommandQueueHw<Family>::create;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool CommandQueueHw<Family>::isCacheFlushForBcsRequired() const {
|
||||
if (debugManager.flags.ForceCacheFlushForBcs.get() != -1) {
|
||||
return !!debugManager.flags.ForceCacheFlushForBcs.get();
|
||||
}
|
||||
|
||||
const auto &productHelper = this->device->getProductHelper();
|
||||
return productHelper.isDcFlushAllowed();
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
template class NEO::CommandQueueHw<NEO::Family>;
|
||||
32
opencl/source/xe3_core/enable_family_full_ocl_xe3_core.cpp
Normal file
32
opencl/source/xe3_core/enable_family_full_ocl_xe3_core.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/helpers/populate_factory.h"
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/command_queue/command_queue_hw.h"
|
||||
#include "opencl/source/helpers/cl_gfx_core_helper.h"
|
||||
#include "opencl/source/mem_obj/buffer.h"
|
||||
#include "opencl/source/mem_obj/image.h"
|
||||
#include "opencl/source/sampler/sampler.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
using Family = Xe3CoreFamily;
|
||||
|
||||
struct EnableOCLXe3Core {
|
||||
EnableOCLXe3Core() {
|
||||
populateFactoryTable<BufferHw<Family>>();
|
||||
populateFactoryTable<ClGfxCoreHelperHw<Family>>();
|
||||
populateFactoryTable<CommandQueueHw<Family>>();
|
||||
populateFactoryTable<ImageHw<Family>>();
|
||||
populateFactoryTable<SamplerHw<Family>>();
|
||||
}
|
||||
};
|
||||
|
||||
static EnableOCLXe3Core enable;
|
||||
} // namespace NEO
|
||||
32
opencl/source/xe3_core/gpgpu_walker_xe3_core.cpp
Normal file
32
opencl/source/xe3_core/gpgpu_walker_xe3_core.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/command_container/encode_surface_state.h"
|
||||
#include "shared/source/helpers/gfx_core_helper.h"
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/command_queue/gpgpu_walker_xehp_and_later.inl"
|
||||
#include "opencl/source/command_queue/hardware_interface_xehp_and_later.inl"
|
||||
|
||||
namespace NEO {
|
||||
using Family = Xe3CoreFamily;
|
||||
|
||||
template class GpgpuWalkerHelper<Family>;
|
||||
template void GpgpuWalkerHelper<Family>::setupTimestampPacket<Family::DefaultWalkerType>(LinearStream *cmdStream, Family::DefaultWalkerType *walkerCmd, TagNodeBase *timestampPacketNode, const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
template size_t GpgpuWalkerHelper<Family>::setGpgpuWalkerThreadData<Family::DefaultWalkerType>(Family::DefaultWalkerType *walkerCmd, const KernelDescriptor &kernelDescriptor, const size_t startWorkGroups[3],
|
||||
const size_t numWorkGroups[3], const size_t localWorkSizesIn[3], uint32_t simd, uint32_t workDim, bool localIdsGenerationByRuntime, bool inlineDataProgrammingRequired, uint32_t requiredWorkGroupOrder);
|
||||
|
||||
template class HardwareInterface<Family>;
|
||||
|
||||
template void HardwareInterface<Family>::dispatchWalker<Family::DefaultWalkerType>(CommandQueue &commandQueue, const MultiDispatchInfo &multiDispatchInfo, const CsrDependencies &csrDependencies, HardwareInterfaceWalkerArgs &walkerArgs);
|
||||
template void HardwareInterface<Family>::programWalker<Family::DefaultWalkerType>(LinearStream &commandStream, Kernel &kernel, CommandQueue &commandQueue, IndirectHeap &dsh, IndirectHeap &ioh, IndirectHeap &ssh, const DispatchInfo &dispatchInfo, HardwareInterfaceWalkerArgs &walkerArgs);
|
||||
template void HardwareInterface<Family>::dispatchKernelCommands<Family::DefaultWalkerType>(CommandQueue &commandQueue, const DispatchInfo &dispatchInfo, LinearStream &commandStream, IndirectHeap &dsh, IndirectHeap &ioh, IndirectHeap &ssh, HardwareInterfaceWalkerArgs &walkerArgs);
|
||||
template Family::DefaultWalkerType *HardwareInterface<Family>::allocateWalkerSpace<Family::DefaultWalkerType>(LinearStream &commandStream, const Kernel &kernel);
|
||||
|
||||
template struct EnqueueOperation<Family>;
|
||||
|
||||
} // namespace NEO
|
||||
41
opencl/source/xe3_core/gtpin_setup_xe3_core.cpp
Normal file
41
opencl/source/xe3_core/gtpin_setup_xe3_core.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/compiler_interface/external_functions.h"
|
||||
#include "shared/source/kernel/implicit_args_helper.h"
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/gtpin/gtpin_gfx_core_helper.h"
|
||||
#include "opencl/source/gtpin/gtpin_gfx_core_helper.inl"
|
||||
#include "opencl/source/gtpin/gtpin_gfx_core_helper_xehp_and_later.inl"
|
||||
|
||||
#include "ocl_igc_shared/gtpin/gtpin_ocl_interface.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
extern GTPinGfxCoreHelperCreateFunctionType gtpinGfxCoreHelperFactory[IGFX_MAX_CORE];
|
||||
|
||||
using Family = Xe3CoreFamily;
|
||||
static const auto gfxFamily = IGFX_XE3_CORE;
|
||||
|
||||
template <>
|
||||
uint32_t GTPinGfxCoreHelperHw<Family>::getGenVersion() const {
|
||||
DEBUG_BREAK_IF(true);
|
||||
return gtpin::GTPIN_XE_HPG_CORE;
|
||||
}
|
||||
|
||||
template class GTPinGfxCoreHelperHw<Family>;
|
||||
|
||||
struct GTPinEnableXe3Core {
|
||||
GTPinEnableXe3Core() {
|
||||
gtpinGfxCoreHelperFactory[gfxFamily] = GTPinGfxCoreHelperHw<Family>::create;
|
||||
}
|
||||
};
|
||||
|
||||
static GTPinEnableXe3Core gtpinEnable;
|
||||
|
||||
} // namespace NEO
|
||||
19
opencl/source/xe3_core/hardware_commands_helper_xe3_core.cpp
Normal file
19
opencl/source/xe3_core/hardware_commands_helper_xe3_core.cpp
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/helpers/cache_flush_xehp_and_later.inl"
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/helpers/hardware_commands_helper.h"
|
||||
#include "opencl/source/helpers/hardware_commands_helper_base.inl"
|
||||
#include "opencl/source/helpers/hardware_commands_helper_xehp_and_later.inl"
|
||||
|
||||
namespace NEO {
|
||||
using FamilyType = Xe3CoreFamily;
|
||||
} // namespace NEO
|
||||
|
||||
#include "opencl/source/helpers/enable_hardware_commands_helper_cw.inl"
|
||||
22
opencl/source/xe3_core/image_xe3_core.cpp
Normal file
22
opencl/source/xe3_core/image_xe3_core.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
|
||||
#include "opencl/source/mem_obj/image.inl"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
using Family = Xe3CoreFamily;
|
||||
static auto gfxCore = IGFX_XE3_CORE;
|
||||
|
||||
} // namespace NEO
|
||||
#include "opencl/source/mem_obj/image_tgllp_and_later.inl"
|
||||
#include "opencl/source/mem_obj/image_xe2_and_later.inl"
|
||||
|
||||
// factory initializer
|
||||
#include "opencl/source/mem_obj/image_factory_init.inl"
|
||||
11
opencl/source/xe3_core/sampler_xe3_core.cpp
Normal file
11
opencl/source/xe3_core/sampler_xe3_core.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/xe3_core/hw_cmds_base.h"
|
||||
using Family = NEO::Xe3CoreFamily;
|
||||
constexpr static auto gfxCore = IGFX_XE3_CORE;
|
||||
#include "opencl/source/sampler/sampler_tgllp_and_later.inl"
|
||||
Reference in New Issue
Block a user