From 8db4aea1bee8dfb68c40883989cc044a5c7b4fa7 Mon Sep 17 00:00:00 2001 From: Hollow Man Date: Thu, 17 Apr 2025 15:59:57 +0300 Subject: [PATCH] Fix build on AMD GPUs (related to DeepCompile) We should use `torch.utils.cpp_extension.ROCM_HOME` for ROCm pytorch. ```log Traceback (most recent call last): File "", line 2, in File "", line 34, in File "DeepSpeed/setup.py", line 195, in builder.hipify_extension() File "DeepSpeed/op_builder/builder.py", line 750, in hipify_extension header_include_dirs=self.include_paths(), ^^^^^^^^^^^^^^^^^^^^ File "DeepSpeed/op_builder/dc.py", line 32, in include_paths return ['csrc/includes', os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 76, in join TypeError: expected str, bytes or os.PathLike object, not NoneType ``` Signed-off-by: Hollow Man --- op_builder/dc.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/op_builder/dc.py b/op_builder/dc.py index 7cda3d80d776..d05210b8a2b4 100644 --- a/op_builder/dc.py +++ b/op_builder/dc.py @@ -29,4 +29,12 @@ def libraries_args(self): def include_paths(self): import os import torch - return ['csrc/includes', os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] + if self.build_for_cpu: + CUDA_INCLUDE = [] + elif not self.is_rocm_pytorch(): + CUDA_INCLUDE = [os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")] + else: + CUDA_INCLUDE = [ + os.path.join(torch.utils.cpp_extension.ROCM_HOME, "include"), + ] + return ['csrc/includes'] + CUDA_INCLUDE