| 1 | //===--- AMDGPUHWEvents.def -----------------------------------*- C++ -*---===// |
| 2 | // |
| 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | // See https://llvm.org/LICENSE.txt for license information. |
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | // |
| 9 | // This file contains descriptions of the various hardware events that can |
| 10 | // be tracked by the compiler. |
| 11 | // |
| 12 | //===----------------------------------------------------------------------===// |
| 13 | |
| 14 | // NOTE: NO INCLUDE GUARD DESIRED! |
| 15 | |
| 16 | // clang-format off |
| 17 | |
| 18 | #ifndef AMDGPU_LAST_HW_EVENT |
| 19 | #define AMDGPU_LAST_HW_EVENT(X) |
| 20 | #endif |
| 21 | |
| 22 | AMDGPU_HW_EVENT(VMEM_READ_ACCESS, 0) /* vmem read */ |
| 23 | AMDGPU_HW_EVENT(VMEM_SAMPLER_READ_ACCESS, 1) /* vmem SAMPLER read (gfx12+ only) */ |
| 24 | AMDGPU_HW_EVENT(VMEM_BVH_READ_ACCESS, 2) /* vmem BVH read (gfx12+ only) */ |
| 25 | AMDGPU_HW_EVENT(GLOBAL_INV_ACCESS, 3) /* GLOBAL_INV (gfx12+ only) */ |
| 26 | AMDGPU_HW_EVENT(VMEM_WRITE_ACCESS, 4) /* vmem write that is not scratch */ |
| 27 | AMDGPU_HW_EVENT(SCRATCH_WRITE_ACCESS, 5) /* vmwrite that may be scratch */ |
| 28 | AMDGPU_HW_EVENT(VMEM_GROUP, 6) /* vmem group */ |
| 29 | AMDGPU_HW_EVENT(LDS_ACCESS, 7) /* lds read & write */ |
| 30 | AMDGPU_HW_EVENT(GDS_ACCESS, 8) /* gds read & write */ |
| 31 | AMDGPU_HW_EVENT(SQ_MESSAGE, 9) /* send message */ |
| 32 | AMDGPU_HW_EVENT(SCC_WRITE, 10) /* write to SCC from barrier */ |
| 33 | AMDGPU_HW_EVENT(SMEM_ACCESS, 11) /* scalar-memory read & write */ |
| 34 | AMDGPU_HW_EVENT(SMEM_GROUP, 12) /* scalar-memory group */ |
| 35 | AMDGPU_HW_EVENT(EXP_GPR_LOCK, 13) /* export holding on its data src */ |
| 36 | AMDGPU_HW_EVENT(GDS_GPR_LOCK, 14) /* GDS holding on its data and addr src */ |
| 37 | AMDGPU_HW_EVENT(EXP_POS_ACCESS, 15) /* write to export position */ |
| 38 | AMDGPU_HW_EVENT(EXP_PARAM_ACCESS, 16) /* write to export parameter */ |
| 39 | AMDGPU_HW_EVENT(VMW_GPR_LOCK, 17) /* vmem write holding on its data src */ |
| 40 | AMDGPU_HW_EVENT(EXP_LDS_ACCESS, 18) /* read by ldsdir counting as export */ |
| 41 | AMDGPU_HW_EVENT(VGPR_CSMACC_WRITE, 19) /* write VGPR dest in Core/Side-MACC VALU */ |
| 42 | AMDGPU_HW_EVENT(VGPR_DPMACC_WRITE, 20) /* write VGPR dest in DPMACC VALU */ |
| 43 | AMDGPU_HW_EVENT(VGPR_TRANS_WRITE, 21) /* write VGPR dest in TRANS VALU */ |
| 44 | AMDGPU_HW_EVENT(VGPR_XDL_WRITE, 22) /* write VGPR dest in XDL VALU */ |
| 45 | AMDGPU_HW_EVENT(VGPR_LDS_READ, 23) /* read VGPR source in LDS */ |
| 46 | AMDGPU_HW_EVENT(VGPR_FLAT_READ, 24) /* read VGPR source in FLAT */ |
| 47 | AMDGPU_HW_EVENT(VGPR_VMEM_READ, 25) /* read VGPR source in other VMEM */ |
| 48 | AMDGPU_HW_EVENT(ASYNC_ACCESS, 26) /* access that uses ASYNC_CNT */ |
| 49 | AMDGPU_HW_EVENT(TENSOR_ACCESS, 27) /* access that uses TENSOR_CNT */ |
| 50 | |
| 51 | AMDGPU_LAST_HW_EVENT(TENSOR_ACCESS) |
| 52 | |
| 53 | |
| 54 | // clang-format on |
| 55 | |
| 56 | #undef AMDGPU_HW_EVENT |
| 57 | #undef AMDGPU_LAST_HW_EVENT |
| 58 | |