Skip to content

Add NVGPU Depends to TritonGPU#2270

Closed
Stonepia wants to merge 1 commit intotriton-lang:mainfrom
Stonepia:main
Closed

Add NVGPU Depends to TritonGPU#2270
Stonepia wants to merge 1 commit intotriton-lang:mainfrom
Stonepia:main

Conversation

@Stonepia
Copy link
Copy Markdown
Contributor

@Stonepia Stonepia commented Sep 11, 2023

NVGPU dialect is part of the TritonGPU IR and the TritonGPU/IR/Dialect.cpp includes some NVGPU dialect files as follows.

#include "triton/Dialect/NVGPU/IR/Dialect.h"
#include "triton/Dialect/NVGPU/IR/Dialect.cpp.inc"

So it makes sense to ensure the TritonGPUIR depends on NVGPU explicitly just like this PR does.

In addition, it might trigger a compilation dependency issue as follows w/o this PR if another backend intends to integrate at the TritonGPU IR level.

In file included from /project/include/triton/Dialect/TritonGPU/IR/Dialect.h:10,
                 from /project/include/triton/Analysis/Utility.h:7,
                 from /project/lib/Dialect/TritonGPU/IR/Dialect.cpp:7:
/project/include/triton/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: triton/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "triton/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

cc @EikanWang @chengjunlu

@Stonepia Stonepia requested a review from ptillet as a code owner September 11, 2023 05:31
@ThomasRaoux
Copy link
Copy Markdown
Collaborator

I don't think we should have this dependency in a first place. I sent a PR to remove the dependency:
#2276
can you check if this solves your problem?

@chengjunlu
Copy link
Copy Markdown
Contributor

@Stonepia , I think the PR #2276 can fix the issue. Please check if it works and close the PR.

@Stonepia
Copy link
Copy Markdown
Contributor Author

Hello @ThomasRaoux, Thanks for your help!
I did a try. This PR alone could not solve the problem, the TritonNvidiaGPUIR's dependency also needs to be separated out. For example, I have the following error:

[ 70%] Building CXX object lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o
cd /project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Dialect/TritonNvidiaGPU/IR && /opt/rh/devtoolset-10/root/usr/bin/c++ -DGTEST_HAS_RTTI=0 -I/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Dialect/TritonNvidiaGPU/IR -I/project/lib/Dialect/TritonNvidiaGPU/IR -I/project/include -I/root/.triton/pybind11/pybind11-2.10.0/include -I/root/.triton/intel_llvm/include -I/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/include -D__STDC_FORMAT_MACROS  -fPIC -std=gnu++17 -fvisibility=hidden -fvisibility-inlines-hidden -Werror -Wno-covered-switch-default -O2 -g -std=gnu++17  -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o -MF CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o.d -o CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o -c /project/lib/Dialect/TritonNvidiaGPU/IR/Dialect.cpp
In file included from /project/include/triton/Dialect/TritonNvidiaGPU/IR/Dialect.h:33,
                 from /project/lib/Dialect/TritonNvidiaGPU/IR/Dialect.cpp:32:
/project/include/triton/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: triton/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "triton/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[6]: *** [lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o] Error 1
gmake[6]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'
gmake[5]: *** [lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/all] Error 2
gmake[5]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'
gmake[4]: *** [third_party/intel_xpu_backend/python/CMakeFiles/intel_xpu_backend_for_triton.dir/rule] Error 2
gmake[4]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'
gmake[3]: *** [intel_xpu_backend_for_triton] Error 2
gmake[3]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'

@ThomasRaoux
Copy link
Copy Markdown
Collaborator

Hello @ThomasRaoux, Thanks for your help! I did a try. This PR alone could not solve the problem, the TritonNvidiaGPUIR's dependency also needs to be separated out. For example, I have the following error:

[ 70%] Building CXX object lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o
cd /project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Dialect/TritonNvidiaGPU/IR && /opt/rh/devtoolset-10/root/usr/bin/c++ -DGTEST_HAS_RTTI=0 -I/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Dialect/TritonNvidiaGPU/IR -I/project/lib/Dialect/TritonNvidiaGPU/IR -I/project/include -I/root/.triton/pybind11/pybind11-2.10.0/include -I/root/.triton/intel_llvm/include -I/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/include -D__STDC_FORMAT_MACROS  -fPIC -std=gnu++17 -fvisibility=hidden -fvisibility-inlines-hidden -Werror -Wno-covered-switch-default -O2 -g -std=gnu++17  -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o -MF CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o.d -o CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o -c /project/lib/Dialect/TritonNvidiaGPU/IR/Dialect.cpp
In file included from /project/include/triton/Dialect/TritonNvidiaGPU/IR/Dialect.h:33,
                 from /project/lib/Dialect/TritonNvidiaGPU/IR/Dialect.cpp:32:
/project/include/triton/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: triton/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "triton/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[6]: *** [lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/Dialect.cpp.o] Error 1
gmake[6]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'
gmake[5]: *** [lib/Dialect/TritonNvidiaGPU/IR/CMakeFiles/obj.TritonNvidiaGPUIR.dir/all] Error 2
gmake[5]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'
gmake[4]: *** [third_party/intel_xpu_backend/python/CMakeFiles/intel_xpu_backend_for_triton.dir/rule] Error 2
gmake[4]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'
gmake[3]: *** [intel_xpu_backend_for_triton] Error 2
gmake[3]: Leaving directory `/project/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton'

:(

How about with this one:
#2282

@Stonepia
Copy link
Copy Markdown
Contributor Author

Stonepia commented Sep 12, 2023

Hi @ThomasRaoux ,
Thanks for the help and sorry for the late reply! The above target could be built successfully.

Unluckily, the NVGPU/ TritonNvidiaGPU still seems to need more fixes. The lib/Analysis also has some hard code. For example,

[ 73%] Building CXX object lib/Analysis/CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o
cd /triton/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Analysis && /opt/rh/devtoolset-10/root/usr/bin/c++ -DGTEST_HAS_RTTI=0 -I/triton/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Analysis -I/triton/lib/Analysis -I/triton/include -I/root/.triton/pybind11/pybind11-2.10.0/include -I/triton/. -I/triton/python/src -I/opt/python/cp37-cp37m/include/python3.7m -I/root/.triton/intel_llvm/include -I/triton/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/include -D__STDC_FORMAT_MACROS  -fPIC -std=gnu++17 -fvisibility=hidden -fvisibility-inlines-hidden -Werror -Wno-covered-switch-default -O2 -g -std=gnu++17  -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/Analysis/CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o -MF CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o.d -o CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o -c /triton/lib/Analysis/Membar.cpp
In file included from /triton/include/../lib/Conversion/TritonGPUToLLVM/Utility.h:9,
                 from /triton/lib/Analysis/Membar.cpp:5:
/triton/include/triton/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: triton/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "triton/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Besides, I found that triton/lib/Analysis/CMakeLists.txt has the TritonNvidiaGPUIR as link target, so I assume this would also cause an error. 😿

@ThomasRaoux
Copy link
Copy Markdown
Collaborator

Hi @ThomasRaoux , Thanks for the help and sorry for the late reply! The above target could be built successfully.

Unluckily, the NVGPU/ TritonNvidiaGPU still seems to need more fixes. The lib/Analysis also has some hard code. For example,

[ 73%] Building CXX object lib/Analysis/CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o
cd /triton/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Analysis && /opt/rh/devtoolset-10/root/usr/bin/c++ -DGTEST_HAS_RTTI=0 -I/triton/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/lib/Analysis -I/triton/lib/Analysis -I/triton/include -I/root/.triton/pybind11/pybind11-2.10.0/include -I/triton/. -I/triton/python/src -I/opt/python/cp37-cp37m/include/python3.7m -I/root/.triton/intel_llvm/include -I/triton/python/build/cmake.linux-x86_64-cpython-3.7/third_party/intel_xpu_backend/triton/include -D__STDC_FORMAT_MACROS  -fPIC -std=gnu++17 -fvisibility=hidden -fvisibility-inlines-hidden -Werror -Wno-covered-switch-default -O2 -g -std=gnu++17  -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/Analysis/CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o -MF CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o.d -o CMakeFiles/obj.TritonAnalysis.dir/Membar.cpp.o -c /triton/lib/Analysis/Membar.cpp
In file included from /triton/include/../lib/Conversion/TritonGPUToLLVM/Utility.h:9,
                 from /triton/lib/Analysis/Membar.cpp:5:
/triton/include/triton/Dialect/NVGPU/IR/Dialect.h:32:10: fatal error: triton/Dialect/NVGPU/IR/Dialect.h.inc: No such file or directory
   32 | #include "triton/Dialect/NVGPU/IR/Dialect.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Besides, I found that triton/lib/Analysis/CMakeLists.txt has the TritonNvidiaGPUIR as link target, so I assume this would also cause an error. 😿

ok, looks like there area lot of layering problems to untangle :(
I added a commit to the same PR with that. Let me know if you have more such problems, looking at the uses of NVGPU header the rest looks correct.

Copy link
Copy Markdown
Collaborator

@ptillet ptillet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Stonepia did the above commit help?

@Stonepia
Copy link
Copy Markdown
Contributor Author

Hi @ptillet @ThomasRaoux ,
Thanks for the great help! It helped a lot.

Currently, I am still having a problem with building intel-xpu-backend, but I think that problem is on intel-xpu-backend side. I will submit an issue/PR if there are further updates for help.

@Stonepia Stonepia closed this Sep 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants