Unverified Commit abab5652 authored by thatPepe's avatar thatPepe Committed by GitHub
Browse files

Merge pull request #999 from InfiniTensor/issue/988

issue/988 - adapt to ali ppu
parents bf0c825d e0268b24
...@@ -20,6 +20,7 @@ InfiniCore 是一个跨平台统一编程工具集,为不同芯片平台的功 ...@@ -20,6 +20,7 @@ InfiniCore 是一个跨平台统一编程工具集,为不同芯片平台的功
- 天数智芯 GPU; - 天数智芯 GPU;
- 沐曦 GPU; - 沐曦 GPU;
- 海光 DCU; - 海光 DCU;
- 阿里 PPU;
- 华为昇腾 NPU; - 华为昇腾 NPU;
- 寒武纪 MLU; - 寒武纪 MLU;
- 昆仑芯 XPU; - 昆仑芯 XPU;
...@@ -103,6 +104,7 @@ python scripts/install.py [XMAKE_CONFIG_FLAGS] ...@@ -103,6 +104,7 @@ python scripts/install.py [XMAKE_CONFIG_FLAGS]
| `--qy-gpu=[y\|n]` | 是否编译QY GPU 接口实现 | n | `--qy-gpu=[y\|n]` | 是否编译QY GPU 接口实现 | n
| `--hygon-dcu=[y\|n]` | 是否编译海光 DCU 接口实现 | n | `--hygon-dcu=[y\|n]` | 是否编译海光 DCU 接口实现 | n
| `--kunlun-xpu=[y\|n]` | 是否编译昆仑 XPU 接口实现 | n | `--kunlun-xpu=[y\|n]` | 是否编译昆仑 XPU 接口实现 | n
| `--ali-ppu=[y\|n]` | 是否编译阿里 PPU 接口实现 | n
| `--ninetoothed=[y\|n]` | 是否编译九齿实现 | n | `--ninetoothed=[y\|n]` | 是否编译九齿实现 | n
| `--ccl=[y\|n]` | 是否编译 InfiniCCL 通信库接口实现 | n | `--ccl=[y\|n]` | 是否编译 InfiniCCL 通信库接口实现 | n
...@@ -187,9 +189,9 @@ pip install -e . ...@@ -187,9 +189,9 @@ pip install -e .
```bash ```bash
# 测试单算子 # 测试单算子
python test/infinicore/ops/[operator].py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon] python test/infinicore/ops/[operator].py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon | --ali]
# 测试全部算子 # 测试全部算子
python test/infinicore/run.py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun] python test/infinicore/run.py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --ali]
``` ```
使用 -h 查看更多参数。 使用 -h 查看更多参数。
...@@ -198,9 +200,9 @@ python test/infinicore/run.py [--bench | --debug | --verbose] [--cpu | --nvidia ...@@ -198,9 +200,9 @@ python test/infinicore/run.py [--bench | --debug | --verbose] [--cpu | --nvidia
```shell ```shell
# 测试单算子 # 测试单算子
python test/infiniop/[operator].py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon] python test/infiniop/[operator].py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon | --ali]
# 测试全部算子 # 测试全部算子
python scripts/python_test.py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon] python scripts/python_test.py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon | --ali]
``` ```
#### 通信库(InfiniCCL)测试 #### 通信库(InfiniCCL)测试
......
...@@ -47,6 +47,7 @@ typedef enum { ...@@ -47,6 +47,7 @@ typedef enum {
INFINI_DEVICE_KUNLUN = 7, INFINI_DEVICE_KUNLUN = 7,
INFINI_DEVICE_HYGON = 8, INFINI_DEVICE_HYGON = 8,
INFINI_DEVICE_QY = 9, INFINI_DEVICE_QY = 9,
INFINI_DEVICE_ALI = 10,
INFINI_DEVICE_TYPE_COUNT INFINI_DEVICE_TYPE_COUNT
} infiniDevice_t; } infiniDevice_t;
......
...@@ -22,6 +22,7 @@ public: ...@@ -22,6 +22,7 @@ public:
KUNLUN = INFINI_DEVICE_KUNLUN, KUNLUN = INFINI_DEVICE_KUNLUN,
HYGON = INFINI_DEVICE_HYGON, HYGON = INFINI_DEVICE_HYGON,
QY = INFINI_DEVICE_QY, QY = INFINI_DEVICE_QY,
ALI = INFINI_DEVICE_ALI,
COUNT = INFINI_DEVICE_TYPE_COUNT, COUNT = INFINI_DEVICE_TYPE_COUNT,
}; };
......
...@@ -82,6 +82,7 @@ _TORCH_DEVICE_MAP = { ...@@ -82,6 +82,7 @@ _TORCH_DEVICE_MAP = {
_infinicore.Device.Type.KUNLUN: "cuda", _infinicore.Device.Type.KUNLUN: "cuda",
_infinicore.Device.Type.HYGON: "cuda", _infinicore.Device.Type.HYGON: "cuda",
_infinicore.Device.Type.QY: "cuda", _infinicore.Device.Type.QY: "cuda",
_infinicore.Device.Type.ALI: "cuda",
} }
......
...@@ -12,7 +12,7 @@ void printUsage() { ...@@ -12,7 +12,7 @@ void printUsage() {
std::cout << "infiniccl-test --<device>" << std::endl std::cout << "infiniccl-test --<device>" << std::endl
<< std::endl; << std::endl;
std::cout << " --<device>" << std::endl; std::cout << " --<device>" << std::endl;
std::cout << " Specify the device type --(nvidia|cambricon|ascend|metax|moore|iluvatar|qy|kunlun|hygon)." << std::endl std::cout << " Specify the device type --(nvidia|cambricon|ascend|metax|moore|iluvatar|qy|kunlun|hygon|ali)." << std::endl
<< std::endl; << std::endl;
std::cout << "The program will run tests on all visible devices of the specified device type." std::cout << "The program will run tests on all visible devices of the specified device type."
<< " Use Environmental Variables such as CUDA_VSIBLE_DEVICES to limit visible device IDs."; << " Use Environmental Variables such as CUDA_VSIBLE_DEVICES to limit visible device IDs.";
...@@ -46,6 +46,7 @@ ParsedArgs parseArgs(int argc, char *argv[]) { ...@@ -46,6 +46,7 @@ ParsedArgs parseArgs(int argc, char *argv[]) {
else PARSE_DEVICE("--qy", INFINI_DEVICE_QY) else PARSE_DEVICE("--qy", INFINI_DEVICE_QY)
else PARSE_DEVICE("--kunlun", INFINI_DEVICE_KUNLUN) else PARSE_DEVICE("--kunlun", INFINI_DEVICE_KUNLUN)
else PARSE_DEVICE("--hygon", INFINI_DEVICE_HYGON) else PARSE_DEVICE("--hygon", INFINI_DEVICE_HYGON)
else PARSE_DEVICE("--ali", INFINI_DEVICE_ALI)
else { else {
printUsage(); printUsage();
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#include "../infiniccl_impl.h" #include "../infiniccl_impl.h"
// Windows does not support CUDA // Windows does not support CUDA
#if (defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API)) && defined(ENABLE_CCL) && !defined(_WIN32) #if (defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) || defined(ENABLE_ALI_API)) && defined(ENABLE_CCL) && !defined(_WIN32)
INFINICCL_DEVICE_API_IMPL(cuda) INFINICCL_DEVICE_API_IMPL(cuda)
#else #else
INFINICCL_DEVICE_API_NOOP(cuda) INFINICCL_DEVICE_API_NOOP(cuda)
......
...@@ -27,6 +27,7 @@ __C infiniStatus_t infinicclCommInitAll( ...@@ -27,6 +27,7 @@ __C infiniStatus_t infinicclCommInitAll(
COMM_INIT_ALL(INFINI_DEVICE_METAX, metax); COMM_INIT_ALL(INFINI_DEVICE_METAX, metax);
COMM_INIT_ALL(INFINI_DEVICE_MOORE, moore); COMM_INIT_ALL(INFINI_DEVICE_MOORE, moore);
COMM_INIT_ALL(INFINI_DEVICE_KUNLUN, kunlun); COMM_INIT_ALL(INFINI_DEVICE_KUNLUN, kunlun);
COMM_INIT_ALL(INFINI_DEVICE_ALI, cuda);
default: default:
return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED;
} }
...@@ -53,6 +54,7 @@ __C infiniStatus_t infinicclCommDestroy(infinicclComm_t comm) { ...@@ -53,6 +54,7 @@ __C infiniStatus_t infinicclCommDestroy(infinicclComm_t comm) {
COMM_DESTROY(INFINI_DEVICE_METAX, metax); COMM_DESTROY(INFINI_DEVICE_METAX, metax);
COMM_DESTROY(INFINI_DEVICE_MOORE, moore); COMM_DESTROY(INFINI_DEVICE_MOORE, moore);
COMM_DESTROY(INFINI_DEVICE_KUNLUN, kunlun); COMM_DESTROY(INFINI_DEVICE_KUNLUN, kunlun);
COMM_DESTROY(INFINI_DEVICE_ALI, cuda);
default: default:
return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED;
} }
...@@ -86,6 +88,7 @@ __C infiniStatus_t infinicclAllReduce( ...@@ -86,6 +88,7 @@ __C infiniStatus_t infinicclAllReduce(
ALL_REDUCE(INFINI_DEVICE_METAX, metax); ALL_REDUCE(INFINI_DEVICE_METAX, metax);
ALL_REDUCE(INFINI_DEVICE_MOORE, moore); ALL_REDUCE(INFINI_DEVICE_MOORE, moore);
ALL_REDUCE(INFINI_DEVICE_KUNLUN, kunlun); ALL_REDUCE(INFINI_DEVICE_KUNLUN, kunlun);
ALL_REDUCE(INFINI_DEVICE_ALI, cuda);
default: default:
return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED;
......
...@@ -66,6 +66,7 @@ xmake build infinicore-test ...@@ -66,6 +66,7 @@ xmake build infinicore-test
./infinicore-test --qy ./infinicore-test --qy
./infinicore-test --kunlun ./infinicore-test --kunlun
./infinicore-test --hygon ./infinicore-test --hygon
./infinicore-test --ali
``` ```
### Customize Test Parameters ### Customize Test Parameters
......
...@@ -42,6 +42,7 @@ void printUsage() { ...@@ -42,6 +42,7 @@ void printUsage() {
<< " qy" << std::endl << " qy" << std::endl
<< " kunlun" << std::endl << " kunlun" << std::endl
<< " hygon" << std::endl << " hygon" << std::endl
<< " ali" << std::endl
<< std::endl << std::endl
<< "Available tests:" << std::endl << "Available tests:" << std::endl
<< " basic - Basic memory allocation and deallocation tests" << std::endl << " basic - Basic memory allocation and deallocation tests" << std::endl
...@@ -84,6 +85,8 @@ ParsedArgs parseArgs(int argc, char *argv[]) { ...@@ -84,6 +85,8 @@ ParsedArgs parseArgs(int argc, char *argv[]) {
args.device_type = INFINI_DEVICE_KUNLUN; args.device_type = INFINI_DEVICE_KUNLUN;
} else if (arg == "--hygon") { } else if (arg == "--hygon") {
args.device_type = INFINI_DEVICE_HYGON; args.device_type = INFINI_DEVICE_HYGON;
} else if (arg == "--ali") {
args.device_type = INFINI_DEVICE_ALI;
} else if (arg == "--test") { } else if (arg == "--test") {
if (i + 1 >= argc) { if (i + 1 >= argc) {
std::cerr << "Error: --test requires a test name" << std::endl; std::cerr << "Error: --test requires a test name" << std::endl;
......
...@@ -41,6 +41,8 @@ std::string Device::toString(const Type &type) { ...@@ -41,6 +41,8 @@ std::string Device::toString(const Type &type) {
return "KUNLUN"; return "KUNLUN";
case Type::HYGON: case Type::HYGON:
return "HYGON"; return "HYGON";
case Type::ALI:
return "ALI";
case Type::COUNT: case Type::COUNT:
return "COUNT"; return "COUNT";
default: default:
......
...@@ -45,7 +45,7 @@ Embedding::Embedding(size_t num_embeddings, ...@@ -45,7 +45,7 @@ Embedding::Embedding(size_t num_embeddings,
Tensor Embedding::forward(const Tensor &indices) const { Tensor Embedding::forward(const Tensor &indices) const {
// TODO: Implement on-device embedding for all devices, then remove the condition and the classic approach // TODO: Implement on-device embedding for all devices, then remove the condition and the classic approach
auto device_type = device_.getType(); auto device_type = device_.getType();
if (device_type == Device::Type::NVIDIA || device_type == Device::Type::ILUVATAR || device_type == Device::Type::METAX || device_type == Device::Type::MOORE) { if (device_type == Device::Type::NVIDIA || device_type == Device::Type::ILUVATAR || device_type == Device::Type::METAX || device_type == Device::Type::MOORE || device_type == Device::Type::ALI) {
// Use op::embedding which supports device-side input and batch dimension // Use op::embedding which supports device-side input and batch dimension
return op::embedding(indices->contiguous()->to(device_), weight_); return op::embedding(indices->contiguous()->to(device_), weight_);
} }
......
...@@ -30,7 +30,8 @@ void RMSNorm::forward_inplace(Tensor &x, Tensor &residual) const { ...@@ -30,7 +30,8 @@ void RMSNorm::forward_inplace(Tensor &x, Tensor &residual) const {
|| device_.getType() == Device::Type::NVIDIA || device_.getType() == Device::Type::NVIDIA
|| device_.getType() == Device::Type::ILUVATAR || device_.getType() == Device::Type::ILUVATAR
|| device_.getType() == Device::Type::METAX || device_.getType() == Device::Type::METAX
|| device_.getType() == Device::Type::MOORE) { || device_.getType() == Device::Type::MOORE
|| device_.getType() == Device::Type::ALI) {
op::add_rms_norm_inplace(x, residual, weight_, static_cast<float>(eps_)); op::add_rms_norm_inplace(x, residual, weight_, static_cast<float>(eps_));
} else { } else {
op::add_(residual, x, residual); op::add_(residual, x, residual);
......
...@@ -22,6 +22,7 @@ inline void bind(py::module &m) { ...@@ -22,6 +22,7 @@ inline void bind(py::module &m) {
.value("QY", Device::Type::QY) .value("QY", Device::Type::QY)
.value("KUNLUN", Device::Type::KUNLUN) .value("KUNLUN", Device::Type::KUNLUN)
.value("HYGON", Device::Type::HYGON) .value("HYGON", Device::Type::HYGON)
.value("ALI", Device::Type::ALI)
.value("COUNT", Device::Type::COUNT); .value("COUNT", Device::Type::COUNT);
device device
......
...@@ -49,7 +49,6 @@ inline struct SpdlogInitializer { ...@@ -49,7 +49,6 @@ inline struct SpdlogInitializer {
+ ":" + std::to_string(__LINE__) + "."); \ + ":" + std::to_string(__LINE__) + "."); \
} \ } \
} \ } \
infinicore::context::setDevice((FIRST___)->device()); \
} while (0) } while (0)
#define INFINICORE_ASSERT(CONDITION__) \ #define INFINICORE_ASSERT(CONDITION__) \
......
...@@ -22,7 +22,7 @@ void printUsage() { ...@@ -22,7 +22,7 @@ void printUsage() {
std::cout << " Path to the test gguf file" << std::endl std::cout << " Path to the test gguf file" << std::endl
<< std::endl; << std::endl;
std::cout << " --<device>[:id]" << std::endl; std::cout << " --<device>[:id]" << std::endl;
std::cout << " (Optional) Specify the device type --(cpu|nvidia|cambricon|ascend|metax|moore|iluvatar|qy|kunlun|hygon) and device ID (optional). CPU by default." << std::endl std::cout << " (Optional) Specify the device type --(cpu|nvidia|cambricon|ascend|metax|moore|iluvatar|qy|kunlun|hygon|ali) and device ID (optional). CPU by default." << std::endl
<< std::endl; << std::endl;
std::cout << " --warmup <warmups>" << std::endl; std::cout << " --warmup <warmups>" << std::endl;
std::cout << " (Optional) Number of warmups to perform before timing. Default to 0." << std::endl std::cout << " (Optional) Number of warmups to perform before timing. Default to 0." << std::endl
...@@ -80,6 +80,7 @@ ParsedArgs parseArgs(int argc, char *argv[]) { ...@@ -80,6 +80,7 @@ ParsedArgs parseArgs(int argc, char *argv[]) {
PARSE_DEVICE("--qy", INFINI_DEVICE_QY) PARSE_DEVICE("--qy", INFINI_DEVICE_QY)
PARSE_DEVICE("--kunlun", INFINI_DEVICE_KUNLUN) PARSE_DEVICE("--kunlun", INFINI_DEVICE_KUNLUN)
PARSE_DEVICE("--hygon", INFINI_DEVICE_HYGON) PARSE_DEVICE("--hygon", INFINI_DEVICE_HYGON)
PARSE_DEVICE("--ali", INFINI_DEVICE_ALI)
else if (arg == "--warmup" && i + 1 < argc) { else if (arg == "--warmup" && i + 1 < argc) {
args.warmups = std::stoi(argv[++i]); args.warmups = std::stoi(argv[++i]);
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#ifdef ENABLE_CPU_API #ifdef ENABLE_CPU_API
#include "cpu/cpu_handle.h" #include "cpu/cpu_handle.h"
#endif #endif
#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) || defined(ENABLE_ALI_API)
#include "nvidia/nvidia_handle.h" #include "nvidia/nvidia_handle.h"
#endif #endif
#ifdef ENABLE_CAMBRICON_API #ifdef ENABLE_CAMBRICON_API
...@@ -47,6 +47,9 @@ __C infiniStatus_t infiniopCreateHandle(infiniopHandle_t *handle_ptr) { ...@@ -47,6 +47,9 @@ __C infiniStatus_t infiniopCreateHandle(infiniopHandle_t *handle_ptr) {
#ifdef ENABLE_ILUVATAR_API #ifdef ENABLE_ILUVATAR_API
CREATE(INFINI_DEVICE_ILUVATAR, iluvatar); CREATE(INFINI_DEVICE_ILUVATAR, iluvatar);
#endif #endif
#ifdef ENABLE_ALI_API
CREATE(INFINI_DEVICE_ALI, ali);
#endif
#ifdef ENABLE_QY_API #ifdef ENABLE_QY_API
CREATE(INFINI_DEVICE_QY, qy); CREATE(INFINI_DEVICE_QY, qy);
#endif #endif
...@@ -93,6 +96,9 @@ __C infiniStatus_t infiniopDestroyHandle(infiniopHandle_t handle) { ...@@ -93,6 +96,9 @@ __C infiniStatus_t infiniopDestroyHandle(infiniopHandle_t handle) {
#ifdef ENABLE_ILUVATAR_API #ifdef ENABLE_ILUVATAR_API
DELETE(INFINI_DEVICE_ILUVATAR, iluvatar); DELETE(INFINI_DEVICE_ILUVATAR, iluvatar);
#endif #endif
#ifdef ENABLE_ALI_API
DELETE(INFINI_DEVICE_ALI, ali);
#endif
#ifdef ENABLE_QY_API #ifdef ENABLE_QY_API
DELETE(INFINI_DEVICE_QY, qy); DELETE(INFINI_DEVICE_QY, qy);
#endif #endif
......
...@@ -110,6 +110,18 @@ infiniStatus_t Handle::create(InfiniopHandle **handle_ptr, int device_id) { ...@@ -110,6 +110,18 @@ infiniStatus_t Handle::create(InfiniopHandle **handle_ptr, int device_id) {
} // namespace iluvatar } // namespace iluvatar
namespace ali {
Handle::Handle(int device_id)
: nvidia::Handle(INFINI_DEVICE_ALI, device_id) {}
infiniStatus_t Handle::create(InfiniopHandle **handle_ptr, int device_id) {
*handle_ptr = new Handle(device_id);
return INFINI_STATUS_SUCCESS;
}
} // namespace ali
namespace qy { namespace qy {
Handle::Handle(int device_id) Handle::Handle(int device_id)
......
...@@ -35,6 +35,17 @@ public: ...@@ -35,6 +35,17 @@ public:
} // namespace iluvatar } // namespace iluvatar
namespace ali {
struct Handle : public nvidia::Handle {
Handle(int device_id);
public:
static infiniStatus_t create(InfiniopHandle **handle_ptr, int device_id);
};
} // namespace ali
namespace qy { namespace qy {
struct Handle : public nvidia::Handle { struct Handle : public nvidia::Handle {
......
...@@ -53,7 +53,7 @@ exp_(const float val) { ...@@ -53,7 +53,7 @@ exp_(const float val) {
return expf(val); return expf(val);
} }
#if !defined(ENABLE_ILUVATAR_API) && !defined(ENABLE_QY_API) && !defined(ENABLE_HYGON_API) #if !defined(ENABLE_ILUVATAR_API) && !defined(ENABLE_QY_API) && !defined(ENABLE_HYGON_API) && !defined(ENABLE_ALI_API)
__forceinline__ __device__ long double __forceinline__ __device__ long double
exp_(const long double val) { exp_(const long double val) {
return expl(val); return expl(val);
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#ifdef ENABLE_CPU_API #ifdef ENABLE_CPU_API
#include "cpu/add_cpu.h" #include "cpu/add_cpu.h"
#endif #endif
#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API)
#include "nvidia/add_nvidia.cuh" #include "nvidia/add_nvidia.cuh"
#endif #endif
#ifdef ENABLE_METAX_API #ifdef ENABLE_METAX_API
...@@ -48,6 +48,9 @@ __C infiniStatus_t infiniopCreateAddDescriptor( ...@@ -48,6 +48,9 @@ __C infiniStatus_t infiniopCreateAddDescriptor(
#ifdef ENABLE_ILUVATAR_API #ifdef ENABLE_ILUVATAR_API
CREATE(INFINI_DEVICE_ILUVATAR, nvidia); CREATE(INFINI_DEVICE_ILUVATAR, nvidia);
#endif #endif
#ifdef ENABLE_ALI_API
CREATE(INFINI_DEVICE_ALI, nvidia);
#endif
#ifdef ENABLE_QY_API #ifdef ENABLE_QY_API
CREATE(INFINI_DEVICE_QY, nvidia); CREATE(INFINI_DEVICE_QY, nvidia);
#endif #endif
...@@ -88,6 +91,9 @@ __C infiniStatus_t infiniopGetAddWorkspaceSize(infiniopAddDescriptor_t desc, siz ...@@ -88,6 +91,9 @@ __C infiniStatus_t infiniopGetAddWorkspaceSize(infiniopAddDescriptor_t desc, siz
#ifdef ENABLE_ILUVATAR_API #ifdef ENABLE_ILUVATAR_API
GET(INFINI_DEVICE_ILUVATAR, nvidia); GET(INFINI_DEVICE_ILUVATAR, nvidia);
#endif #endif
#ifdef ENABLE_ALI_API
GET(INFINI_DEVICE_ALI, nvidia);
#endif
#ifdef ENABLE_QY_API #ifdef ENABLE_QY_API
GET(INFINI_DEVICE_QY, nvidia); GET(INFINI_DEVICE_QY, nvidia);
#endif #endif
...@@ -136,6 +142,9 @@ __C infiniStatus_t infiniopAdd( ...@@ -136,6 +142,9 @@ __C infiniStatus_t infiniopAdd(
#ifdef ENABLE_ILUVATAR_API #ifdef ENABLE_ILUVATAR_API
CALCULATE(INFINI_DEVICE_ILUVATAR, nvidia); CALCULATE(INFINI_DEVICE_ILUVATAR, nvidia);
#endif #endif
#ifdef ENABLE_ALI_API
CALCULATE(INFINI_DEVICE_ALI, nvidia);
#endif
#ifdef ENABLE_QY_API #ifdef ENABLE_QY_API
CALCULATE(INFINI_DEVICE_QY, nvidia); CALCULATE(INFINI_DEVICE_QY, nvidia);
#endif #endif
...@@ -178,6 +187,9 @@ infiniopDestroyAddDescriptor(infiniopAddDescriptor_t desc) { ...@@ -178,6 +187,9 @@ infiniopDestroyAddDescriptor(infiniopAddDescriptor_t desc) {
#ifdef ENABLE_ILUVATAR_API #ifdef ENABLE_ILUVATAR_API
DELETE(INFINI_DEVICE_ILUVATAR, nvidia); DELETE(INFINI_DEVICE_ILUVATAR, nvidia);
#endif #endif
#ifdef ENABLE_ALI_API
DELETE(INFINI_DEVICE_ALI, nvidia);
#endif
#ifdef ENABLE_QY_API #ifdef ENABLE_QY_API
DELETE(INFINI_DEVICE_QY, nvidia); DELETE(INFINI_DEVICE_QY, nvidia);
#endif #endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment