cpu_adam.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """
  2. Copyright 2020 The Microsoft DeepSpeed Team
  3. """
  4. import os
  5. from .builder import TorchCPUOpBuilder
  6. class CPUAdamBuilder(TorchCPUOpBuilder):
  7. BUILD_VAR = "DS_BUILD_CPU_ADAM"
  8. NAME = "cpu_adam"
  9. def __init__(self):
  10. super().__init__(name=self.NAME)
  11. def absolute_name(self):
  12. return f'deepspeed.ops.adam.{self.NAME}_op'
  13. def sources(self):
  14. return ['csrc/adam/cpu_adam.cpp', 'csrc/common/custom_cuda_kernel.cu']
  15. def libraries_args(self):
  16. args = super().libraries_args()
  17. if not self.is_rocm_pytorch():
  18. args += ['curand']
  19. return args
  20. def include_paths(self):
  21. import torch
  22. if not self.is_rocm_pytorch():
  23. CUDA_INCLUDE = [os.path.join(torch.utils.cpp_extension.CUDA_HOME, "include")]
  24. else:
  25. CUDA_INCLUDE = [
  26. os.path.join(torch.utils.cpp_extension.ROCM_HOME,
  27. "include"),
  28. os.path.join(torch.utils.cpp_extension.ROCM_HOME,
  29. "include",
  30. "rocrand"),
  31. os.path.join(torch.utils.cpp_extension.ROCM_HOME,
  32. "include",
  33. "hiprand"),
  34. ]
  35. return ['csrc/includes'] + CUDA_INCLUDE