12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # Copyright (c) Microsoft Corporation.
- # SPDX-License-Identifier: Apache-2.0
- # DeepSpeed Team
- import os
- from .builder import TorchCPUOpBuilder
- class CPUAdagradBuilder(TorchCPUOpBuilder):
- BUILD_VAR = "DS_BUILD_CPU_ADAGRAD"
- NAME = "cpu_adagrad"
- def __init__(self):
- super().__init__(name=self.NAME)
- def absolute_name(self):
- return f'deepspeed.ops.adagrad.{self.NAME}_op'
- def sources(self):
- if self.build_for_cpu:
- return ['csrc/adagrad/cpu_adagrad.cpp']
- return ['csrc/adagrad/cpu_adagrad.cpp', 'csrc/common/custom_cuda_kernel.cu']
- def libraries_args(self):
- args = super().libraries_args()
- if self.build_for_cpu:
- return args
- if not self.is_rocm_pytorch():
- args += ['curand']
- return args
- def include_paths(self):
- import torch
- 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 = []
- return ['csrc/includes'] + CUDA_INCLUDE
|