| [BACKEND] Make backends more uniform and extract some backend agnostic utilities/helpers. (#3125)
Making backends more uniform, extracting backend agnostic
utilities/helpers, while the backend-specific ones are moved to
third_party/.
1. Split the top-level TritonGPUToLLVM/Utility.h between LLVM and PTX
helpers. Keep the LLVM helpers in top-level, whereas the PTX helpers are
moved to third_party/nvidia.
2. Move TritonGPUToLLVM passes to third_party/nvidia, along with the
PTXAsmFormat
3. Delete any code in third_party/amd that depends on PTXAsmFormat
4. Delete all LLVM helpers from
third_party/amd/lib/TritonAMDGPUToLLVM/Utility.h and use the top-level
Utility.h.
5. Link unittest/PTXAsmFormatTest.cpp to third_party/nvidia library.
6. Move NVGPUToLLVM passes to third_party/nvidia
Final directory structure:
```
├── include/
│ └── triton/
│ └── Conversion/
│ └── TritonGPUToLLVM/
│ └── AsmFormat.h
├── lib/
│ └── Conversion/
│ └── TritonGPUToLLVM/
│ ├── TypeConverter.h
│ ├── TypeConverter.cpp
│ ├── Utility.h
│ └── Utility.cpp (LLVM-only helpers)
└── third_party/
└── amd/
└── nvidia/
├── include/
│ ├── NVGPUToLLVM/
│ └── TritonNVIDIAGPUToLLVM/
└── lib/
├── NVGPUToLLVM/
└── TritonNVIDIAGPUToLLVM/
``` | 2 年前 |