intel / intel-xpu-backend-for-triton

OpenAI Triton backend for Intel® GPUs
MIT License
129 stars 38 forks source link

Compilation errors with clang 17.0.6 #1501

Closed pbchekin closed 3 months ago

pbchekin commented 3 months ago

We use cibuildwheel to build a platform-independent wheels. The environment is based on rocky linux and has clang 17.0.6. During compilation it shows the following errors. Note that upstream Triton compiles without errors.

In file included from /project/third_party/intel/lib/TritonIntelGPUToLLVM/ReduceOpToLLVM.cpp:2:
/project/third_party/intel/lib/TritonIntelGPUToLLVM/ReduceScanCommon.h:1:9: error: 'TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H' is used as a header guard here, followed by #define of a different macro [-Werror,-Wheader-guard]
    1 | #ifndef TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/project/third_party/intel/lib/TritonIntelGPUToLLVM/ReduceScanCommon.h:2:9: note: 'TRITON_CONVERSION_TRITONGINTELPU_TO_LLVM_REDUCESCANCOMMON_H' is defined here; did you mean 'TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H'?
    2 | #define TRITON_CONVERSION_TRITONGINTELPU_TO_LLVM_REDUCESCANCOMMON_H
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H

In file included from /project/third_party/intel/lib/TritonIntelGPUToLLVM/ScanOpToLLVM.cpp:2:
/project/third_party/intel/lib/TritonIntelGPUToLLVM/ReduceScanCommon.h:1:9: error: 'TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H' is used as a header guard here, followed by #define of a different macro [-Werror,-Wheader-guard]
    1 | #ifndef TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /project/third_party/intel/lib/TritonIntelGPUToLLVM/ReduceScanCommon.h:2:9: note: 'TRITON_CONVERSION_TRITONGINTELPU_TO_LLVM_REDUCESCANCOMMON_H' is defined here; did you mean 'TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H'?
    2 | #define TRITON_CONVERSION_TRITONGINTELPU_TO_LLVM_REDUCESCANCOMMON_H
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         TRITON_CONVERSION_TRITONINTELGPU_TO_LLVM_REDUCESCANCOMMON_H

      /project/third_party/intel/lib/TritonToTritonGPUWarp/TritonToTritonGPUWarpPass.cpp:192:17: error: enumeration values 'None', 'ElementWise', and 'Reduction' not handled in switch [-Werror,-Wswitch]                                                                            
      192 |         switch (workLoadKind) {                                                                                                                                                                                                                                             
          |                 ^~~~~~~~~~~~                                                                                                                                                                     

      /project/third_party/intel/lib/TritonIntelGPUTransforms/AccelerateMatmul.cpp:40:5: error: array designators are a C99 extension [-Werror,-Wc99-designator]                                                                                                                       
       40 |     [(uint32_t)DeviceArch::UNKNOWN] = {},                                                                                                                                                                                                                                   
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        

      /project/third_party/intel/lib/TritonIntelGPUToLLVM/ElementwiseOpToLLVM.cpp:2203:26: error: object backing the pointer will be destroyed at the end of the full-expression [-Werror,-Wdangling-gsl]                                                                            
     2203 |     StringRef funcName = targetInfo.getMulhiFuncName(resultElementTy);                                                                                                                                                                                                      
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~