097a9fdd56
EPR #333756 - Integrate header file cleanup from stg hsa and do necessary updates (cross branch checkin) Reviewers: Nikolay, Evgeniy, Laurent Testing: p4precheckin(http://ocltc:8111/viewModification.html?modId=52194&personal=true&init=1&tab=vcsModificationBuilds) Affected files ... ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_common.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_elf.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_kernel_code.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_queue.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/amd_hsa_signal.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/hsa.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/hsa_ext_finalize.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/HSAIL/include/hsa_ext_image.h#1 branch ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/SI/scCompileSI.cpp#55 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/build/Makefile.scwrapper#27 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/build/Makefile.gpu#63 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudebugger.hpp#6 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#110 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#363 edit
131 lines
4.5 KiB
C++
131 lines
4.5 KiB
C++
/*******************************************************************************
|
|
*
|
|
* Copyright (c) 2014 Advanced Micro Devices, Inc. (unpublished)
|
|
*
|
|
* All rights reserved. This notice is intended as a precaution against
|
|
* inadvertent publication and does not imply publication or any waiver
|
|
* of confidentiality. The year included in the foregoing notice is the
|
|
* year of creation of the work.
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifndef HWDBG_GPUDEBGGER_H_
|
|
#define HWDBG_GPUDEBGGER_H_
|
|
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include "hsa.h"
|
|
#include "amd_hsa_kernel_code.h"
|
|
#include "device/device.hpp"
|
|
#include "device/hwdebug.hpp"
|
|
#include "acl.h"
|
|
|
|
static const int NumberReserveVgprs = 4;
|
|
|
|
namespace gpu {
|
|
|
|
/**
|
|
* \defgroup Services_API OCL Runtime Services API
|
|
* @{
|
|
*/
|
|
|
|
|
|
/*! \brief Dispatch packet information
|
|
*
|
|
* This structure contains the packet information for kernel dispatch
|
|
*/
|
|
struct PacketAmdInfo
|
|
{
|
|
uint32_t trapReservedVgprIndex_; //!< reserved VGPR index, -1 when they are not valid
|
|
uint32_t scratchBufferWaveOffset_; //!< scratch buffer wave offset, -1 when no scratch buffer
|
|
void* pointerToIsaBuffer_; //!< pointer to the buffer containing ISA
|
|
size_t sizeOfIsaBuffer_; //!< size of the ISA buffer
|
|
uint32_t numberOfVgprs_; //!< number of VGPRs used by the kernel
|
|
uint32_t numberOfSgprs_; //!< number of SGPRs used by the kernel
|
|
size_t sizeOfStaticGroupMemory_; //!< Static local memory used by the kernel
|
|
};
|
|
|
|
/*! \brief Cache mask for invalidation
|
|
*/
|
|
struct HwDbgGpuCacheMask
|
|
{
|
|
HwDbgGpuCacheMask() :ui32All_(0) {}
|
|
|
|
HwDbgGpuCacheMask(uint32_t mask) :ui32All_(mask) {}
|
|
|
|
union {
|
|
struct {
|
|
uint32_t sqICache_ : 1; //!< Instruction cache
|
|
uint32_t sqKCache_ : 1; //!< Data cache
|
|
uint32_t tcL1_ : 1; //!< tcL1 cache
|
|
uint32_t tcL2_ : 1; //!< tcL2 cache
|
|
uint32_t reserved_ : 28;
|
|
};
|
|
uint32_t ui32All_;
|
|
};
|
|
};
|
|
|
|
/*! \brief Address watch information
|
|
*
|
|
* Information about each watch point - address, mask, mode and event
|
|
*/
|
|
struct HwDbgAddressWatch
|
|
{
|
|
void* watchAddress_; //! The address of watch point
|
|
uint64_t watchMask_; //! The mask for watch point (lower 24 bits)
|
|
cl_dbg_address_watch_mode_amd watchMode_; //! The watch mode for this watch
|
|
DebugEvent event_; //! Event of the watch point (not used for now)
|
|
};
|
|
|
|
/*! \brief Runtime structure used to communicate debug information
|
|
* between Ocl services and core for a kernel dispatch.
|
|
*/
|
|
struct DebugToolInfo
|
|
{
|
|
uint64_t scratchAddress_; //! Scratch memory address
|
|
size_t scratchSize_; //! Scratch memory size
|
|
uint64_t globalAddress_; //! Global memory address
|
|
uint32_t cacheDisableMask_; //! Cache mask, indicating caches disabled
|
|
uint32_t exceptionMask_; //! Exception mask
|
|
uint32_t reservedCuNum_; //! Number of reserved CUs for display,
|
|
//! which ranges from 0 to 7 in the current implementation.
|
|
bool monitorMode_; //! Debug or profiler mode
|
|
bool gpuSingleStepMode_; //! SQ debug mode
|
|
amd::Memory* trapHandler_; //! Trap handler address
|
|
amd::Memory* trapBuffer_; //! Trap buffer address
|
|
bool sqPerfcounterEnable_; //! whether SQ perf counters are enabled
|
|
aclBinary* aclBinary_; //! pointer of the kernel ACL binary
|
|
amd::Event* event_; //! pointer of the kernel event in the enqueue command
|
|
};
|
|
|
|
/*! \brief Message used by the KFD wave control for CI
|
|
*
|
|
* Structure indicates the various information used by the wave control function.
|
|
*/
|
|
struct HwDebugWaveAddr
|
|
{
|
|
uint32_t VMID_ : 4; //! Virtual memory id
|
|
uint32_t wave_ : 4; //! Wave id
|
|
uint32_t SIMD_ : 2; //! SIMD id
|
|
uint32_t CU_ : 4; //! Compute unit
|
|
uint32_t SH_ : 1; //! Shader array
|
|
uint32_t SE_ : 1; //! Shader engine
|
|
};
|
|
|
|
/*! \brief Kernel code information
|
|
*
|
|
* This structure contains the pointer of mapped kernel code for host access
|
|
* and its size (in bytes)
|
|
*/
|
|
struct AqlCodeInfo
|
|
{
|
|
amd_kernel_code_t * aqlCode_; //! pointer of AQL code to allow host access
|
|
uint32_t aqlCodeSize_; //! size of AQL code
|
|
};
|
|
|
|
/**@}*/
|
|
|
|
} // namespace gpu
|
|
|
|
#endif // HWDBG_GPUDEBGGER_H_
|