diff --git a/README.md b/README.md index 21d490224..173b3e82d 100644 --- a/README.md +++ b/README.md @@ -97,8 +97,8 @@ python scripts/install.py [XMAKE_CONFIG_FLAGS] | `--nv-gpu=[y\|n]` | 是否编译英伟达 GPU 接口实现 | n | `--ascend-npu=[y\|n]` | 是否编译昇腾 NPU 接口实现 | n | `--cambricon-mlu=[y\|n]` | 是否编译寒武纪 MLU 接口实现 | n -| `--metax-gpu=[y\|n]` | 是否编译沐曦 GPU 接口实现 | n -| `--use-mc=[y\|n]` | 是否沐曦 GPU 接口实现使用maca SDK | n +| `--metax-gpu=[y\|n]` | 是否编译 MetaX/MACA GPU 接口实现 | n +| `--mars-gpu=[y\|n]` | 是否编译 Mars/HPCC GPU 接口实现 | n | `--moore-gpu=[y\|n]` | 是否编译摩尔线程 GPU 接口实现 | n | `--iluvatar-gpu=[y\|n]` | 是否编译天数 GPU 接口实现 | n | `--qy-gpu=[y\|n]` | 是否编译QY GPU 接口实现 | n @@ -108,6 +108,12 @@ python scripts/install.py [XMAKE_CONFIG_FLAGS] | `--ninetoothed=[y\|n]` | 是否编译九齿实现 | n | `--ccl=[y\|n]` | 是否编译 InfiniCCL 通信库接口实现 | n | `--graph=[y\|n]` | 是否编译 cuda graph 接口实现 | n +| `--mars-flash-attn-abi=[detect\|standard\|extended]` | Mars flash-attn ABI;默认检查实际扩展库符号 | detect + +Mars/HPCC 当前不支持 standalone InfiniOps 后端;配置 Mars 时请使用 +`--mars-gpu=true --infiniops=false`。 +使用独立 InfiniRT 安装时应设置 `INFINI_RT_ROOT` 或 `--infinirt-root`;如果 +显式前缀中缺少 `include/infini/rt.h` 或 `lib{,64}/libinfinirt.so`,配置会直接失败。 ##### 手动安装底层库 @@ -268,9 +274,9 @@ pip install -e . ```bash # 测试单算子 -python test/infinicore/ops/[operator].py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon | --ali] +python test/infinicore/ops/[operator].py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --mars | --moore | --kunlun | --Hygon | --ali] # 测试全部算子 -python test/infinicore/run.py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --ali] +python test/infinicore/run.py [--bench | --debug | --verbose] [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --mars | --moore | --kunlun | --ali] ``` 使用 -h 查看更多参数。 @@ -279,9 +285,9 @@ python test/infinicore/run.py [--bench | --debug | --verbose] [--cpu | --nvidia ```shell # 测试单算子 -python test/infiniop/[operator].py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon | --ali] +python test/infiniop/[operator].py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --mars | --moore | --kunlun | --Hygon | --ali] # 测试全部算子 -python scripts/python_test.py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --moore | --kunlun | --Hygon | --ali] +python scripts/python_test.py [--cpu | --nvidia | --cambricon | --ascend | --iluvatar | --metax | --mars | --moore | --kunlun | --Hygon | --ali] ``` #### 通信库(InfiniCCL)测试 diff --git a/include/infinicore.h b/include/infinicore.h index 849c62c14..d24344b8b 100644 --- a/include/infinicore.h +++ b/include/infinicore.h @@ -48,6 +48,7 @@ typedef enum { INFINI_DEVICE_HYGON = 8, INFINI_DEVICE_QY = 9, INFINI_DEVICE_ALI = 10, + INFINI_DEVICE_MARS = 11, INFINI_DEVICE_TYPE_COUNT } infiniDevice_t; diff --git a/include/infinicore/adaptor/aten_adaptor.hpp b/include/infinicore/adaptor/aten_adaptor.hpp index 74b053dc5..caac4bf7f 100644 --- a/include/infinicore/adaptor/aten_adaptor.hpp +++ b/include/infinicore/adaptor/aten_adaptor.hpp @@ -8,7 +8,7 @@ #if defined(ENABLE_HYGON_API) #include #include -#elif defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#elif defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) #include #include #include @@ -40,8 +40,8 @@ inline at::ScalarType to_at_dtype(DataType dtype) { inline at::Device to_at_device(const Device &device) { // PyTorch ATen only exposes standard device types (e.g. kCPU/kCUDA). - // Treat MetaX/QY devices as CUDA devices for ATen tensor interoperability. - if (device.getType() == Device::Type::NVIDIA || device.getType() == Device::Type::METAX || device.getType() == Device::Type::QY || device.getType() == Device::Type::HYGON) { + // Treat CUDA-compatible devices as CUDA devices for ATen interoperability. + if (device.getType() == Device::Type::NVIDIA || device.getType() == Device::Type::METAX || device.getType() == Device::Type::MARS || device.getType() == Device::Type::QY || device.getType() == Device::Type::HYGON) { return at::Device(at::kCUDA, device.getIndex()); } else if (device.getType() == Device::Type::CPU) { return at::Device(at::kCPU); @@ -60,7 +60,7 @@ at::Tensor to_aten_tensor(const infinicore::Tensor &t); #if defined(ENABLE_HYGON_API) c10::hip::HIPStream get_hip_stream(); -#elif defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#elif defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) c10::cuda::CUDAStream get_cuda_stream(); #endif diff --git a/include/infinicore/adaptor/flash_attention_adaptor.hpp b/include/infinicore/adaptor/flash_attention_adaptor.hpp index c5bf14858..e20e1d9ef 100644 --- a/include/infinicore/adaptor/flash_attention_adaptor.hpp +++ b/include/infinicore/adaptor/flash_attention_adaptor.hpp @@ -2,10 +2,9 @@ #pragma once #include "aten_adaptor.hpp" -// NVIDIA flash-attn-nvidia.so uses namespace flash. The pip/MetaX flash_attn_2_cuda extension -// exports the same entry points at global scope (no namespace), matching FLASH_NAMESPACE builds -// where the namespace is empty. -#if !defined(ENABLE_METAX_API) +// NVIDIA flash-attn-nvidia.so uses namespace flash. MetaX and Mars extension +// modules export the same entry points at global scope. +#if !defined(ENABLE_METAX_API) && !defined(ENABLE_MARS_API) namespace flash { #endif std::vector @@ -14,6 +13,10 @@ mha_fwd(at::Tensor &q, // batch_size x seqlen_q x num const at::Tensor &v, // batch_size x seqlen_k x num_heads_k x round_multiple(head_size, 8) std::optional &out_, // batch_size x seqlen_q x num_heads x round_multiple(head_size, 8) std::optional &alibi_slopes_, // num_heads or batch_size x num_heads +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) + // Extended device ABIs accept an attention mask before the scalar options. + std::optional &attn_mask_, +#endif const float p_dropout, const float softmax_scale, bool is_causal, @@ -22,10 +25,10 @@ mha_fwd(at::Tensor &q, // batch_size x seqlen_q x num const float softcap, const bool return_softmax, std::optional gen_ -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) - // MetaX/Mars `flash_attn_2_cuda` (e.g. 2.6.x+mars) appends this argument vs upstream Dao-AILab flash-attn. +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) + // Some device extensions append an auxiliary tensor after the generator. , - std::optional &flash_attn_mars_ext_ + std::optional &s_aux_ #endif ); @@ -51,10 +54,10 @@ mha_varlen_fwd(at::Tensor &q, // total_q x num_hea const float softcap, const bool return_softmax, std::optional gen_ -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) - // MetaX/Mars `flash_attn_2_cuda` (e.g. 2.6.x+mars) appends this argument vs upstream Dao-AILab flash-attn. +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) + // Some device extensions append an auxiliary tensor. , - std::optional &flash_attn_mars_ext_ + std::optional &s_aux_ #endif ); @@ -126,14 +129,14 @@ mha_fwd_kvcache(at::Tensor &q, // batch_size const float softcap, bool is_rotary_interleaved, // if true, rotary combines indices 0 & 1, else indices 0 & rotary_dim / 2 int num_splits -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) - // MetaX/Mars `flash_attn_2_cuda` (e.g. 2.6.x+mars) appends this argument vs upstream Dao-AILab flash-attn. +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) + // Some device extensions append an auxiliary tensor. , - std::optional &flash_attn_mars_ext_ + std::optional &s_aux_ #endif ); -#if !defined(ENABLE_METAX_API) +#if !defined(ENABLE_METAX_API) && !defined(ENABLE_MARS_API) } // namespace flash #endif #endif // ENABLE_FLASH_ATTN diff --git a/include/infinicore/device.hpp b/include/infinicore/device.hpp index 4bdab1088..4ef245928 100644 --- a/include/infinicore/device.hpp +++ b/include/infinicore/device.hpp @@ -23,6 +23,7 @@ class Device { HYGON = INFINI_DEVICE_HYGON, QY = INFINI_DEVICE_QY, ALI = INFINI_DEVICE_ALI, + MARS = INFINI_DEVICE_MARS, COUNT = INFINI_DEVICE_TYPE_COUNT, }; diff --git a/python/infinicore/_preload.py b/python/infinicore/_preload.py index 69121ff2f..7106885a3 100644 --- a/python/infinicore/_preload.py +++ b/python/infinicore/_preload.py @@ -12,8 +12,7 @@ def _candidate_prefixes(path: str) -> List[str]: """ - Return HPCC install prefixes to search for libs. - Prefer HPCC_PATH; if absent and explicitly opted-in, fall back to /opt/hpcc. + Return unique runtime install prefixes to search for libraries. """ prefixes: List[str] = [] if path: @@ -31,14 +30,15 @@ def _candidate_prefixes(path: str) -> List[str]: def _try_load(paths: Iterable[str], name: str) -> bool: """Try to load a shared library from given paths or system search path.""" for path in paths: - full = os.path.join(path, "lib", name) - if os.path.exists(full): - try: - ctypes.CDLL(full, mode=ctypes.RTLD_GLOBAL) - return True - except OSError: - # Try next candidate - continue + for subdir in ("lib", "lib64"): + full = os.path.join(path, subdir, name) + if os.path.exists(full): + try: + ctypes.CDLL(full, mode=ctypes.RTLD_GLOBAL) + return True + except OSError: + # Try next candidate + continue # Last resort: rely on loader search path try: ctypes.CDLL(name, mode=ctypes.RTLD_GLOBAL) @@ -54,7 +54,9 @@ def preload_hpcc() -> None: This mirrors the behavior of torch's HPCC build that loads libtorch_global_deps.so, but avoids introducing a hard torch dependency. All failures are swallowed. """ - hpcc_path = os.getenv("HPCC_PATH") + hpcc_path = os.getenv("HPCC_PATH") or os.getenv("HPCC_HOME") + if not hpcc_path and os.getenv("INFINICORE_PRELOAD_HPCC"): + hpcc_path = "/opt/hpcc" if not hpcc_path: return @@ -160,7 +162,7 @@ def _should_preload_device(device_type: str) -> bool: Check if preload is needed for a specific device type. """ device_env_map = { - "METAX": ["HPCC_PATH", "INFINICORE_PRELOAD_HPCC"], # HPCC/METAX + "MARS": ["HPCC_PATH", "HPCC_HOME", "INFINICORE_PRELOAD_HPCC"], "HYGON": ["DTK_ROOT", "INFINICORE_PRELOAD_TORCH_HIP"], # Add other device types here as needed: # "ASCEND": ["ASCEND_PATH"], @@ -183,9 +185,9 @@ def preload_device(device_type: str) -> None: Preload runtime libraries for a specific device type if needed. Args: - device_type: Device type name (e.g., "METAX", "ASCEND", etc.) + device_type: Device type name (e.g., "MARS" or "HYGON") """ - if device_type == "METAX": + if device_type == "MARS": preload_hpcc() elif device_type == "HYGON": preload_torch_hip() @@ -203,11 +205,11 @@ def preload() -> None: This function detects available device types and preloads their runtime libraries if the environment indicates they are needed. """ - # Device types that may require preload. Keep Hygon-only preloads gated by - # Hygon environment markers so other CUDA-compatible platforms do not load - # unrelated torch/flash-attn libraries during package import. + # Device types that may require preload. Gate each preload by its own + # environment markers so CUDA-compatible platforms do not load one another's + # runtime libraries during package import. device_types = [ - "METAX", # HPCC/METAX + "MARS", "HYGON", # Add other device types here as they are implemented: # "ASCEND", diff --git a/python/infinicore/device.py b/python/infinicore/device.py index 8858a1235..e88e85cbb 100644 --- a/python/infinicore/device.py +++ b/python/infinicore/device.py @@ -83,6 +83,7 @@ def _from_infinicore_device(infinicore_device: _infinicore.Device): _infinicore.Device.Type.HYGON: "cuda", _infinicore.Device.Type.QY: "cuda", _infinicore.Device.Type.ALI: "cuda", + _infinicore.Device.Type.MARS: "cuda", } diff --git a/scripts/metax_env.py b/scripts/metax_env.py index df35c57a8..b55dc77d7 100644 --- a/scripts/metax_env.py +++ b/scripts/metax_env.py @@ -8,15 +8,12 @@ def _first_existing_dir(paths: list[str]) -> str: return "" -def _metax_toolkit_root(use_mc: bool) -> str: - """Return toolkit root for MetaX builds (MACA when use-mc; otherwise HPCC).""" - if use_mc: - for key in ("MACA_PATH", "MACA_HOME", "MACA_ROOT"): - v = os.environ.get(key, "").strip() - if v: - return v - return _first_existing_dir(["/opt/maca"]) - return _first_existing_dir(["/opt/hpcc"]) +def _toolkit_root(env_names: tuple[str, ...], fallback: str) -> str: + for key in env_names: + value = os.environ.get(key, "").strip() + if value: + return value + return _first_existing_dir([fallback]) def _prepend_path_var(name: str, prefixes: list[str]) -> None: @@ -37,16 +34,14 @@ def set_env_for_metax_gpu( """ Prepend compiler include paths needed when building ATen-enabled C++ against torch headers. - This chooses paths based on xmake backend flags (e.g. --metax-gpu) and toolkit selection - (e.g. MetaX HPCC vs MACA when --use-mc=y). + MetaX always uses the MACA SDK. Mars/HPCC is configured separately. """ d = parse_xmake_cli_flag_values(flags) if not truthy_flag_value(d.get("aten", "n")): return if truthy_flag_value(d.get("metax-gpu", "n")): - use_mc = truthy_flag_value(d.get("use-mc", "n")) - root = _metax_toolkit_root(use_mc=use_mc) + root = _toolkit_root(("MACA_PATH", "MACA_HOME", "MACA_ROOT"), "/opt/maca") if not root: return dirs = [ @@ -64,4 +59,32 @@ def set_env_for_metax_gpu( ] for var in ("CPATH", "CPLUS_INCLUDE_PATH", "C_INCLUDE_PATH"): _prepend_path_var(var, dirs) + + +def set_env_for_mars_gpu( + flags: str, + *, + parse_xmake_cli_flag_values, + truthy_flag_value, +) -> None: + """Prepend HPCC compatibility headers for ATen-enabled Mars builds.""" + d = parse_xmake_cli_flag_values(flags) + if not truthy_flag_value(d.get("aten", "n")): + return + if not truthy_flag_value(d.get("mars-gpu", "n")): + return + + root = _toolkit_root(("HPCC_PATH", "HPCC_HOME"), "/opt/hpcc") + if not root: return + dirs = [ + os.path.join(root, "tools", "cu-bridge", "include"), + os.path.join(root, "include", "hcr"), + os.path.join(root, "include", "common"), + os.path.join(root, "include", "hcsparse"), + os.path.join(root, "include", "hcblas"), + os.path.join(root, "include", "hcsolver"), + os.path.join(root, "include"), + ] + for var in ("CPATH", "CPLUS_INCLUDE_PATH", "C_INCLUDE_PATH"): + _prepend_path_var(var, dirs) diff --git a/scripts/set_env.py b/scripts/set_env.py index f489c28ad..9477e7cf2 100644 --- a/scripts/set_env.py +++ b/scripts/set_env.py @@ -1,7 +1,7 @@ import os import platform -from metax_env import set_env_for_metax_gpu +from metax_env import set_env_for_mars_gpu, set_env_for_metax_gpu def _parse_xmake_cli_flag_values(flags: str): @@ -38,12 +38,16 @@ def set_env_by_config(flags: str) -> None: parse_xmake_cli_flag_values=_parse_xmake_cli_flag_values, truthy_flag_value=_truthy_flag_value, ) - else: - pass + if _truthy_flag_value(d.get("mars-gpu", "n")): + set_env_for_mars_gpu( + flags, + parse_xmake_cli_flag_values=_parse_xmake_cli_flag_values, + truthy_flag_value=_truthy_flag_value, + ) def set_env(): - if os.environ.get("INFINI_ROOT") == None: + if os.environ.get("INFINI_ROOT") is None: os.environ["INFINI_ROOT"] = os.path.expanduser("~/.infini") if platform.system() == "Windows": @@ -56,10 +60,23 @@ def set_env(): if new_path not in os.environ.get("PATH", ""): os.environ["PATH"] = f"{new_path}:{os.environ.get('PATH', '')}" - new_lib_path = os.path.expanduser(os.environ.get("INFINI_ROOT") + "/lib") - if new_lib_path not in os.environ.get("LD_LIBRARY_PATH", ""): - os.environ["LD_LIBRARY_PATH"] = ( - f"{new_lib_path}:{os.environ.get('LD_LIBRARY_PATH', '')}" - ) + new_lib_paths = [] + infinirt_root = os.environ.get("INFINI_RT_ROOT") + if infinirt_root: + for subdir in ("lib", "lib64"): + candidate = os.path.join(infinirt_root, subdir) + if os.path.isdir(candidate): + new_lib_paths.append(candidate) + new_lib_paths.append(os.path.expanduser(os.environ["INFINI_ROOT"] + "/lib")) + + current_lib_paths = [ + path + for path in os.environ.get("LD_LIBRARY_PATH", "").split(":") + if path + ] + for new_lib_path in reversed(new_lib_paths): + if new_lib_path not in current_lib_paths: + current_lib_paths.insert(0, new_lib_path) + os.environ["LD_LIBRARY_PATH"] = ":".join(current_lib_paths) else: raise RuntimeError("Unsupported platform.") diff --git a/src/bridge/infini/rt.hpp b/src/bridge/infini/rt.hpp index c5bec7ecd..6370b5073 100644 --- a/src/bridge/infini/rt.hpp +++ b/src/bridge/infini/rt.hpp @@ -33,6 +33,8 @@ inline constexpr ::infini::rt::Device::Type translate_to(infiniDevice_t device) return ::infini::rt::Device::Type::kIluvatar; case INFINI_DEVICE_HYGON: return ::infini::rt::Device::Type::kHygon; + case INFINI_DEVICE_MARS: + return ::infini::rt::Device::Type::kMars; default: return ::infini::rt::Device::Type::kCount; } @@ -56,6 +58,8 @@ inline constexpr infiniDevice_t translate_from(::infini::rt::Device::Type device return INFINI_DEVICE_ILUVATAR; case ::infini::rt::Device::Type::kHygon: return INFINI_DEVICE_HYGON; + case ::infini::rt::Device::Type::kMars: + return INFINI_DEVICE_MARS; default: return INFINI_DEVICE_TYPE_COUNT; } diff --git a/src/infiniccl-test/main.cpp b/src/infiniccl-test/main.cpp index 8126aa15a..ae042c945 100644 --- a/src/infiniccl-test/main.cpp +++ b/src/infiniccl-test/main.cpp @@ -12,7 +12,7 @@ void printUsage() { std::cout << "infiniccl-test --" << std::endl << std::endl; std::cout << " --" << std::endl; - std::cout << " Specify the device type --(nvidia|cambricon|ascend|metax|moore|iluvatar|qy|kunlun|hygon|ali)." << std::endl + std::cout << " Specify the device type --(nvidia|cambricon|ascend|metax|mars|moore|iluvatar|qy|kunlun|hygon|ali)." << std::endl << std::endl; 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."; @@ -41,6 +41,7 @@ ParsedArgs parseArgs(int argc, char *argv[]) { else PARSE_DEVICE("--cambricon", INFINI_DEVICE_CAMBRICON) else PARSE_DEVICE("--ascend", INFINI_DEVICE_ASCEND) else PARSE_DEVICE("--metax", INFINI_DEVICE_METAX) + else PARSE_DEVICE("--mars", INFINI_DEVICE_MARS) else PARSE_DEVICE("--moore", INFINI_DEVICE_MOORE) else PARSE_DEVICE("--iluvatar", INFINI_DEVICE_ILUVATAR) else PARSE_DEVICE("--qy", INFINI_DEVICE_QY) diff --git a/src/infiniccl/infiniccl.cc b/src/infiniccl/infiniccl.cc index 48dbea425..a5c54a242 100644 --- a/src/infiniccl/infiniccl.cc +++ b/src/infiniccl/infiniccl.cc @@ -4,6 +4,7 @@ #include "./cambricon/infiniccl_cambricon.h" #include "./cuda/infiniccl_cuda.h" #include "./kunlun/infiniccl_kunlun.h" +#include "./mars/infiniccl_mars.h" #include "./metax/infiniccl_metax.h" #include "./moore/infiniccl_moore.h" @@ -25,6 +26,7 @@ __INFINI_C infiniStatus_t infinicclCommInitAll( COMM_INIT_ALL(INFINI_DEVICE_ASCEND, ascend); COMM_INIT_ALL(INFINI_DEVICE_CAMBRICON, cambricon); COMM_INIT_ALL(INFINI_DEVICE_METAX, metax); + COMM_INIT_ALL(INFINI_DEVICE_MARS, mars); COMM_INIT_ALL(INFINI_DEVICE_MOORE, moore); COMM_INIT_ALL(INFINI_DEVICE_KUNLUN, kunlun); COMM_INIT_ALL(INFINI_DEVICE_ALI, cuda); @@ -52,6 +54,7 @@ __INFINI_C infiniStatus_t infinicclCommDestroy(infinicclComm_t comm) { COMM_DESTROY(INFINI_DEVICE_ASCEND, ascend); COMM_DESTROY(INFINI_DEVICE_CAMBRICON, cambricon); COMM_DESTROY(INFINI_DEVICE_METAX, metax); + COMM_DESTROY(INFINI_DEVICE_MARS, mars); COMM_DESTROY(INFINI_DEVICE_MOORE, moore); COMM_DESTROY(INFINI_DEVICE_KUNLUN, kunlun); COMM_DESTROY(INFINI_DEVICE_ALI, cuda); @@ -78,6 +81,7 @@ __INFINI_C infiniStatus_t infinicclGroupStart(infinicclComm_t comm) { GROUP_START(INFINI_DEVICE_ASCEND, ascend); GROUP_START(INFINI_DEVICE_CAMBRICON, cambricon); GROUP_START(INFINI_DEVICE_METAX, metax); + GROUP_START(INFINI_DEVICE_MARS, mars); GROUP_START(INFINI_DEVICE_MOORE, moore); GROUP_START(INFINI_DEVICE_KUNLUN, kunlun); GROUP_START(INFINI_DEVICE_ALI, cuda); @@ -105,6 +109,7 @@ __INFINI_C infiniStatus_t infinicclGroupEnd(infinicclComm_t comm) { GROUP_END(INFINI_DEVICE_ASCEND, ascend); GROUP_END(INFINI_DEVICE_CAMBRICON, cambricon); GROUP_END(INFINI_DEVICE_METAX, metax); + GROUP_END(INFINI_DEVICE_MARS, mars); GROUP_END(INFINI_DEVICE_MOORE, moore); GROUP_END(INFINI_DEVICE_KUNLUN, kunlun); GROUP_END(INFINI_DEVICE_ALI, cuda); @@ -140,6 +145,7 @@ __INFINI_C infiniStatus_t infinicclAllReduce( ALL_REDUCE(INFINI_DEVICE_ASCEND, ascend); ALL_REDUCE(INFINI_DEVICE_CAMBRICON, cambricon); ALL_REDUCE(INFINI_DEVICE_METAX, metax); + ALL_REDUCE(INFINI_DEVICE_MARS, mars); ALL_REDUCE(INFINI_DEVICE_MOORE, moore); ALL_REDUCE(INFINI_DEVICE_KUNLUN, kunlun); ALL_REDUCE(INFINI_DEVICE_ALI, cuda); @@ -175,6 +181,7 @@ __INFINI_C infiniStatus_t infinicclAllGather( ALL_GATHER(INFINI_DEVICE_ASCEND, ascend); ALL_GATHER(INFINI_DEVICE_CAMBRICON, cambricon); ALL_GATHER(INFINI_DEVICE_METAX, metax); + ALL_GATHER(INFINI_DEVICE_MARS, mars); ALL_GATHER(INFINI_DEVICE_MOORE, moore); ALL_GATHER(INFINI_DEVICE_KUNLUN, kunlun); ALL_GATHER(INFINI_DEVICE_ALI, cuda); @@ -211,6 +218,7 @@ __INFINI_C infiniStatus_t infinicclAllGatherV( ALL_GATHER_V(INFINI_DEVICE_ASCEND, ascend); ALL_GATHER_V(INFINI_DEVICE_CAMBRICON, cambricon); ALL_GATHER_V(INFINI_DEVICE_METAX, metax); + ALL_GATHER_V(INFINI_DEVICE_MARS, mars); ALL_GATHER_V(INFINI_DEVICE_MOORE, moore); ALL_GATHER_V(INFINI_DEVICE_KUNLUN, kunlun); ALL_GATHER_V(INFINI_DEVICE_ALI, cuda); @@ -247,6 +255,7 @@ __INFINI_C infiniStatus_t infinicclReduceScatter( REDUCE_SCATTER(INFINI_DEVICE_ASCEND, ascend); REDUCE_SCATTER(INFINI_DEVICE_CAMBRICON, cambricon); REDUCE_SCATTER(INFINI_DEVICE_METAX, metax); + REDUCE_SCATTER(INFINI_DEVICE_MARS, mars); REDUCE_SCATTER(INFINI_DEVICE_MOORE, moore); REDUCE_SCATTER(INFINI_DEVICE_KUNLUN, kunlun); REDUCE_SCATTER(INFINI_DEVICE_ALI, cuda); @@ -284,6 +293,7 @@ __INFINI_C infiniStatus_t infinicclReduceScatterV( REDUCE_SCATTER_V(INFINI_DEVICE_ASCEND, ascend); REDUCE_SCATTER_V(INFINI_DEVICE_CAMBRICON, cambricon); REDUCE_SCATTER_V(INFINI_DEVICE_METAX, metax); + REDUCE_SCATTER_V(INFINI_DEVICE_MARS, mars); REDUCE_SCATTER_V(INFINI_DEVICE_MOORE, moore); REDUCE_SCATTER_V(INFINI_DEVICE_KUNLUN, kunlun); REDUCE_SCATTER_V(INFINI_DEVICE_ALI, cuda); diff --git a/src/infiniccl/mars/infiniccl_mars.cc b/src/infiniccl/mars/infiniccl_mars.cc new file mode 100644 index 000000000..ba3ebec70 --- /dev/null +++ b/src/infiniccl/mars/infiniccl_mars.cc @@ -0,0 +1,93 @@ +#include "infiniccl_mars.h" + +#include "../../utils.h" + +#include +#include + +#include +#include + +#define CHECK_HCCL(API__) CHECK_INTERNAL(API__, hcclSuccess) + +namespace { + +hcStream_t getMarsStream(infinirtStream_t stream) { + return stream == nullptr ? nullptr : static_cast(stream); +} + +hcclDataType_t getHcclDtype(infiniDtype_t datatype) { + switch (datatype) { + case INFINI_DTYPE_F32: + return hcclFloat; + case INFINI_DTYPE_F16: + return hcclHalf; + case INFINI_DTYPE_BF16: + return hcclBfloat16; + default: + std::abort(); + } +} + +hcclRedOp_t getHcclRedOp(infinicclReduceOp_t op) { + switch (op) { + case INFINICCL_SUM: + return hcclSum; + case INFINICCL_PROD: + return hcclProd; + case INFINICCL_MAX: + return hcclMax; + case INFINICCL_MIN: + return hcclMin; + case INFINICCL_AVG: + return hcclAvg; + default: + std::abort(); + } +} + +hcclComm_t getHcclComm(infinicclComm_t comm) { + return static_cast(comm->comm); +} + +} // namespace + +namespace infiniccl::mars { + +infiniStatus_t commInitAll(infinicclComm_t *comms, int ndevice, const int *device_ids) { + std::vector hccl_comms(ndevice); + CHECK_HCCL(hcclCommInitAll(hccl_comms.data(), ndevice, device_ids)); + + for (int i = 0; i < ndevice; ++i) { + comms[i] = new InfinicclComm{INFINI_DEVICE_MARS, device_ids[i], hccl_comms[i]}; + } + return INFINI_STATUS_SUCCESS; +} + +infiniStatus_t commDestroy(infinicclComm_t comm) { + CHECK_HCCL(hcclCommDestroy(getHcclComm(comm))); + delete comm; + return INFINI_STATUS_SUCCESS; +} + +infiniStatus_t allReduce(void *sendbuf, + void *recvbuf, + size_t count, + infiniDtype_t datatype, + infinicclReduceOp_t op, + infinicclComm_t comm, + infinirtStream_t stream) { + CHECK_DTYPE(datatype, INFINI_DTYPE_F32, INFINI_DTYPE_F16, INFINI_DTYPE_BF16); + CHECK_HCCL(hcclAllReduce(sendbuf, + recvbuf, + count, + getHcclDtype(datatype), + getHcclRedOp(op), + getHcclComm(comm), + getMarsStream(stream))); + return INFINI_STATUS_SUCCESS; +} + +INFINICCL_DEVICE_API_UNSUPPORTED_EP_COLLECTIVES(); + +} // namespace infiniccl::mars diff --git a/src/infiniccl/mars/infiniccl_mars.h b/src/infiniccl/mars/infiniccl_mars.h new file mode 100644 index 000000000..0001f0d91 --- /dev/null +++ b/src/infiniccl/mars/infiniccl_mars.h @@ -0,0 +1,12 @@ +#ifndef INFINICCL_MARS_H_ +#define INFINICCL_MARS_H_ + +#include "../infiniccl_impl.h" + +#if defined(ENABLE_MARS_API) && defined(ENABLE_CCL) +INFINICCL_DEVICE_API_IMPL(mars) +#else +INFINICCL_DEVICE_API_NOOP(mars) +#endif + +#endif // INFINICCL_MARS_H_ diff --git a/src/infinicore-test/README.md b/src/infinicore-test/README.md index a6349349d..8f96c5f1e 100644 --- a/src/infinicore-test/README.md +++ b/src/infinicore-test/README.md @@ -61,6 +61,7 @@ xmake build infinicore-test ./infinicore-test --cambricon ./infinicore-test --ascend ./infinicore-test --metax +./infinicore-test --mars ./infinicore-test --moore ./infinicore-test --iluvatar ./infinicore-test --qy diff --git a/src/infinicore-test/main.cc b/src/infinicore-test/main.cc index c2c32170d..2a240df62 100644 --- a/src/infinicore-test/main.cc +++ b/src/infinicore-test/main.cc @@ -41,6 +41,7 @@ void printUsage() { << " cambricon" << std::endl << " ascend" << std::endl << " metax" << std::endl + << " mars" << std::endl << " moore" << std::endl << " iluvatar" << std::endl << " qy" << std::endl @@ -79,6 +80,8 @@ ParsedArgs parseArgs(int argc, char *argv[]) { args.device_type = INFINI_DEVICE_ASCEND; } else if (arg == "--metax") { args.device_type = INFINI_DEVICE_METAX; + } else if (arg == "--mars") { + args.device_type = INFINI_DEVICE_MARS; } else if (arg == "--moore") { args.device_type = INFINI_DEVICE_MOORE; } else if (arg == "--iluvatar") { diff --git a/src/infinicore/adaptor/aten_adaptor.cc b/src/infinicore/adaptor/aten_adaptor.cc index 73c01dfdb..8ab0603ab 100644 --- a/src/infinicore/adaptor/aten_adaptor.cc +++ b/src/infinicore/adaptor/aten_adaptor.cc @@ -37,7 +37,7 @@ c10::hip::HIPStream get_hip_stream() { return c10::hip::getStreamFromExternal( hipStream_t(infinicore::context::getStream()), infinicore::context::getDevice().getIndex()); } -#elif defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#elif defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) c10::cuda::CUDAStream get_cuda_stream() { return c10::cuda::getStreamFromExternal( cudaStream_t(infinicore::context::getStream()), infinicore::context::getDevice().getIndex()); diff --git a/src/infinicore/context/context_impl.cc b/src/infinicore/context/context_impl.cc index 29a470679..93f24f863 100644 --- a/src/infinicore/context/context_impl.cc +++ b/src/infinicore/context/context_impl.cc @@ -92,6 +92,8 @@ ContextImpl::ContextImpl() { initializeRuntime(); initializeRuntime(); initializeRuntime(); + initializeRuntime(); + initializeRuntime(); initializeRuntime(); if (current_runtime_ == nullptr && !runtime_table_[static_cast(Device::Type::CPU)].empty()) { diff --git a/src/infinicore/device.cc b/src/infinicore/device.cc index 77c1f4986..2a978eff0 100644 --- a/src/infinicore/device.cc +++ b/src/infinicore/device.cc @@ -43,6 +43,8 @@ std::string Device::toString(const Type &type) { return "HYGON"; case Type::ALI: return "ALI"; + case Type::MARS: + return "MARS"; case Type::COUNT: return "COUNT"; default: diff --git a/src/infinicore/nn/rmsnorm.cc b/src/infinicore/nn/rmsnorm.cc index 567d88e49..b01b5fa19 100644 --- a/src/infinicore/nn/rmsnorm.cc +++ b/src/infinicore/nn/rmsnorm.cc @@ -30,6 +30,7 @@ void RMSNorm::forward_inplace(Tensor &x, Tensor &residual) const { || device_.getType() == Device::Type::NVIDIA || device_.getType() == Device::Type::ILUVATAR || device_.getType() == Device::Type::METAX + || device_.getType() == Device::Type::MARS || device_.getType() == Device::Type::MOORE || device_.getType() == Device::Type::ALI || device_.getType() == Device::Type::CAMBRICON diff --git a/src/infinicore/ops/mha_kvcache/mha_kvcache_flashattn.cc b/src/infinicore/ops/mha_kvcache/mha_kvcache_flashattn.cc index 0167c17df..c1be0f0ff 100644 --- a/src/infinicore/ops/mha_kvcache/mha_kvcache_flashattn.cc +++ b/src/infinicore/ops/mha_kvcache/mha_kvcache_flashattn.cc @@ -5,12 +5,12 @@ #include #ifdef ENABLE_FLASH_ATTN -#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) #include #endif #endif -#if defined(ENABLE_METAX_API) +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #define INFINICORE_FLASH_OP(name) ::name #else #define INFINICORE_FLASH_OP(name) flash::name @@ -45,7 +45,7 @@ void *plan(Tensor out, void run(void *planned_meta) { #ifdef ENABLE_FLASH_ATTN -#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) c10::cuda::CUDAStreamGuard guard(infinicore::adaptor::get_cuda_stream()); #endif auto *p = reinterpret_cast(planned_meta); @@ -55,7 +55,7 @@ void run(void *planned_meta) { Tensor out_work = out_need_copy_back ? p->out->contiguous() : Tensor(p->out); auto out_tensor = infinicore::adaptor::to_aten_tensor(out_work); auto q = infinicore::adaptor::to_aten_tensor(p->q); -#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) +#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) auto k_cache = infinicore::adaptor::to_aten_tensor(p->k_cache); auto v_cache = infinicore::adaptor::to_aten_tensor(p->v_cache); #elif defined(ENABLE_QY_API) @@ -84,8 +84,8 @@ void run(void *planned_meta) { auto out = use_dynamic_out ? std::optional(std::nullopt) : std::optional(out_tensor); -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) - std::optional flash_attn_mars_ext = std::nullopt; +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) + std::optional s_aux = std::nullopt; #endif auto result = INFINICORE_FLASH_OP(mha_fwd_kvcache)( @@ -109,9 +109,9 @@ void run(void *planned_meta) { 0.0f, false, 0 -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) , - flash_attn_mars_ext + s_aux #endif ); diff --git a/src/infinicore/ops/multi_head_attention/mha_flashattn.cc b/src/infinicore/ops/multi_head_attention/mha_flashattn.cc index 13c96b94d..9f0d5c309 100644 --- a/src/infinicore/ops/multi_head_attention/mha_flashattn.cc +++ b/src/infinicore/ops/multi_head_attention/mha_flashattn.cc @@ -5,7 +5,7 @@ #include #ifdef ENABLE_FLASH_ATTN -#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) #include #endif #endif @@ -39,11 +39,10 @@ void *plan(Tensor out, namespace { -// Only support nv for now -#if defined(ENABLE_FLASH_ATTN) && defined(ENABLE_NVIDIA_API) -// MetaX/hpcc pip `flash_attn_2_cuda` exports `mha_fwd` at global scope (no namespace), +#if defined(ENABLE_FLASH_ATTN) && (defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API)) +// MetaX/Mars `flash_attn_2_cuda` exports `mha_fwd` at global scope, // while NVIDIA `flash-attn-nvidia.so` uses `flash::mha_fwd`. -#if defined(ENABLE_METAX_API) +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #define INFINICORE_FLASH_OP(name) ::name #else #define INFINICORE_FLASH_OP(name) flash::name @@ -53,8 +52,7 @@ namespace { } // namespace void run(void *planned_meta) { -// Only support nv for now -#if defined(ENABLE_FLASH_ATTN) && defined(ENABLE_NVIDIA_API) +#if defined(ENABLE_FLASH_ATTN) && (defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API)) c10::cuda::CUDAStreamGuard guard(infinicore::adaptor::get_cuda_stream()); auto *p = reinterpret_cast(planned_meta); @@ -71,8 +69,11 @@ void run(void *planned_meta) { auto scale = p->scale; auto is_causal = p->is_causal; -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) - std::optional flash_attn_mars_ext = std::nullopt; +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) + std::optional attn_mask = std::nullopt; +#endif +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) + std::optional s_aux = std::nullopt; #endif INFINICORE_FLASH_OP(mha_fwd) @@ -82,6 +83,9 @@ void run(void *planned_meta) { v, out, alibi_slopes, +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) + attn_mask, +#endif 0.0, scale, is_causal, @@ -90,9 +94,9 @@ void run(void *planned_meta) { 0.0, false, std::nullopt -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) , - flash_attn_mars_ext + s_aux #endif ); diff --git a/src/infinicore/ops/multi_head_attention_varlen/mha_varlen_flashattn.cc b/src/infinicore/ops/multi_head_attention_varlen/mha_varlen_flashattn.cc index 4a233bf5b..95e50918a 100644 --- a/src/infinicore/ops/multi_head_attention_varlen/mha_varlen_flashattn.cc +++ b/src/infinicore/ops/multi_head_attention_varlen/mha_varlen_flashattn.cc @@ -3,7 +3,7 @@ #ifdef ENABLE_ATEN #include "infinicore/adaptor/aten_adaptor.hpp" #include -#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) #include #endif #endif @@ -53,9 +53,9 @@ void *plan(Tensor out, namespace { #ifdef ENABLE_FLASH_ATTN -// MetaX/hpcc pip `flash_attn_2_cuda` exports `mha_varlen_fwd` at global scope (no namespace), +// MetaX/Mars `flash_attn_2_cuda` exports `mha_varlen_fwd` at global scope, // while NVIDIA `flash-attn-nvidia.so` uses `flash::mha_varlen_fwd`. -#if defined(ENABLE_METAX_API) +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #define INFINICORE_FLASH_OP(name) ::name #else #define INFINICORE_FLASH_OP(name) flash::name @@ -69,7 +69,7 @@ void run(void *planned_meta) { (void)planned_meta; throw std::runtime_error("ATen is not enabled in this build"); #else -#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_QY_API) +#if defined(ENABLE_NVIDIA_API) || defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) || defined(ENABLE_QY_API) c10::cuda::CUDAStreamGuard guard(infinicore::adaptor::get_cuda_stream()); #endif auto *p = reinterpret_cast(planned_meta); @@ -138,8 +138,8 @@ void run(void *planned_meta) { auto alibi_slopes = p->alibi_slopes ? std::optional(infinicore::adaptor::to_aten_tensor(*p->alibi_slopes)) : std::nullopt; auto scale = p->scale; -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) - std::optional flash_attn_mars_ext = std::nullopt; +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) + std::optional s_aux = std::nullopt; #endif INFINICORE_FLASH_OP(mha_varlen_fwd) @@ -165,9 +165,9 @@ void run(void *planned_meta) { 0.0, false, std::nullopt -#if defined(ENABLE_METAX_API) && defined(INFINICORE_HPCC_VERSION_MAJOR) && (INFINICORE_HPCC_VERSION_MAJOR >= 3) +#if defined(INFINICORE_FLASH_ATTN_MARS_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_EXT) || defined(INFINICORE_FLASH_ATTN_METAX_S_AUX) , - flash_attn_mars_ext + s_aux #endif ); diff --git a/src/infinicore/ops/rotg/rotg_infiniop.cc b/src/infinicore/ops/rotg/rotg_infiniop.cc index d5e7a0e99..79d911bcf 100644 --- a/src/infinicore/ops/rotg/rotg_infiniop.cc +++ b/src/infinicore/ops/rotg/rotg_infiniop.cc @@ -47,7 +47,8 @@ void calculate(Tensor x, Tensor y, Tensor c, Tensor s) { static bool registered = []() { Rotg::dispatcher().registerDevice({Device::Type::CPU, Device::Type::CAMBRICON, - Device::Type::METAX}, + Device::Type::METAX, + Device::Type::MARS}, &calculate, false); return true; diff --git a/src/infinicore/ops/rotm/rotm_infiniop.cc b/src/infinicore/ops/rotm/rotm_infiniop.cc index 9df5c9ab1..ccf0ceb79 100644 --- a/src/infinicore/ops/rotm/rotm_infiniop.cc +++ b/src/infinicore/ops/rotm/rotm_infiniop.cc @@ -47,7 +47,8 @@ void calculate(Tensor x, Tensor y, Tensor param) { static bool registered = []() { Rotm::dispatcher().registerDevice({Device::Type::CPU, Device::Type::CAMBRICON, - Device::Type::METAX}, + Device::Type::METAX, + Device::Type::MARS}, &calculate, false); return true; diff --git a/src/infinicore/ops/rotmg/rotmg_infiniop.cc b/src/infinicore/ops/rotmg/rotmg_infiniop.cc index ade0bd7aa..360693ebe 100644 --- a/src/infinicore/ops/rotmg/rotmg_infiniop.cc +++ b/src/infinicore/ops/rotmg/rotmg_infiniop.cc @@ -47,7 +47,8 @@ void calculate(Tensor d1, Tensor d2, Tensor x1, Tensor y1, Tensor param) { static bool registered = []() { Rotmg::dispatcher().registerDevice({Device::Type::CPU, Device::Type::CAMBRICON, - Device::Type::METAX}, + Device::Type::METAX, + Device::Type::MARS}, &calculate, false); return true; diff --git a/src/infinicore/pybind11/device.hpp b/src/infinicore/pybind11/device.hpp index 74cb0a23b..83a6f30a7 100644 --- a/src/infinicore/pybind11/device.hpp +++ b/src/infinicore/pybind11/device.hpp @@ -23,6 +23,7 @@ inline void bind(py::module &m) { .value("KUNLUN", Device::Type::KUNLUN) .value("HYGON", Device::Type::HYGON) .value("ALI", Device::Type::ALI) + .value("MARS", Device::Type::MARS) .value("COUNT", Device::Type::COUNT); device diff --git a/src/infiniop-test/src/main.cpp b/src/infiniop-test/src/main.cpp index 00e16cc99..5ea9c2570 100644 --- a/src/infiniop-test/src/main.cpp +++ b/src/infiniop-test/src/main.cpp @@ -22,7 +22,7 @@ void printUsage() { std::cout << " Path to the test gguf file" << std::endl << std::endl; std::cout << " --[:id]" << 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::cout << " (Optional) Specify the device type --(cpu|nvidia|cambricon|ascend|metax|mars|moore|iluvatar|qy|kunlun|hygon|ali) and device ID (optional). CPU by default." << std::endl << std::endl; std::cout << " --warmup " << std::endl; std::cout << " (Optional) Number of warmups to perform before timing. Default to 0." << std::endl @@ -75,6 +75,7 @@ ParsedArgs parseArgs(int argc, char *argv[]) { PARSE_DEVICE("--cambricon", INFINI_DEVICE_CAMBRICON) PARSE_DEVICE("--ascend", INFINI_DEVICE_ASCEND) PARSE_DEVICE("--metax", INFINI_DEVICE_METAX) + PARSE_DEVICE("--mars", INFINI_DEVICE_MARS) PARSE_DEVICE("--moore", INFINI_DEVICE_MOORE) PARSE_DEVICE("--iluvatar", INFINI_DEVICE_ILUVATAR) PARSE_DEVICE("--qy", INFINI_DEVICE_QY) diff --git a/src/infiniop/devices/handle.cc b/src/infiniop/devices/handle.cc index 9057f7203..6b17fe6bd 100644 --- a/src/infiniop/devices/handle.cc +++ b/src/infiniop/devices/handle.cc @@ -23,6 +23,9 @@ #ifdef ENABLE_METAX_API #include "metax/metax_handle.h" #endif +#ifdef ENABLE_MARS_API +#include "mars/mars_handle.h" +#endif __INFINI_C infiniStatus_t infiniopSetRuntimeDevice(infiniDevice_t device, int device_id) { auto rt_device = infinicore::bridge::infini::rt::translate_to(device); @@ -83,6 +86,9 @@ __INFINI_C infiniStatus_t infiniopCreateHandle(infiniopHandle_t *handle_ptr) { #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, mars); +#endif #ifdef ENABLE_HYGON_API CREATE(INFINI_DEVICE_HYGON, hygon); #endif @@ -132,6 +138,9 @@ __INFINI_C infiniStatus_t infiniopDestroyHandle(infiniopHandle_t handle) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, mars); +#endif #ifdef ENABLE_HYGON_API DELETE(INFINI_DEVICE_HYGON, hygon); #endif diff --git a/src/infiniop/devices/mars/mars_handle.h b/src/infiniop/devices/mars/mars_handle.h new file mode 100644 index 000000000..e0545caeb --- /dev/null +++ b/src/infiniop/devices/mars/mars_handle.h @@ -0,0 +1,20 @@ +#ifndef __INFINIOP_MARS_HANDLE_H__ +#define __INFINIOP_MARS_HANDLE_H__ + +#include "../metax/metax_handle.h" + +namespace device::mars { + +struct Handle final : public device::metax::Handle { + explicit Handle(int device_id) + : device::metax::Handle(INFINI_DEVICE_MARS, device_id) {} + + static infiniStatus_t create(InfiniopHandle **handle_ptr, int device_id) { + *handle_ptr = new Handle(device_id); + return INFINI_STATUS_SUCCESS; + } +}; + +} // namespace device::mars + +#endif // __INFINIOP_MARS_HANDLE_H__ diff --git a/src/infiniop/ops/acos/operator.cc b/src/infiniop/ops/acos/operator.cc index 16f2649ae..26bdf1138 100644 --- a/src/infiniop/ops/acos/operator.cc +++ b/src/infiniop/ops/acos/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/acos_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/acos_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateAcosDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -93,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopGetAcosWorkspaceSize(infiniopAcosDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API GET(INFINI_DEVICE_HYGON, nvidia); #endif @@ -137,6 +143,9 @@ __INFINI_C infiniStatus_t infiniopAcos( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API CALCULATE(INFINI_DEVICE_HYGON, nvidia); #endif @@ -175,6 +184,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAcosDescriptor(infiniopAcosDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API DELETE(INFINI_DEVICE_HYGON, nvidia); #endif diff --git a/src/infiniop/ops/adaptive_avg_pool1d/operator.cc b/src/infiniop/ops/adaptive_avg_pool1d/operator.cc index 3c92f6d96..a21cf75f5 100644 --- a/src/infiniop/ops/adaptive_avg_pool1d/operator.cc +++ b/src/infiniop/ops/adaptive_avg_pool1d/operator.cc @@ -12,7 +12,7 @@ #endif // [Metax Support] -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/adaptive_avg_pool1d_metax.h" #endif @@ -56,6 +56,9 @@ __INFINI_C infiniStatus_t infiniopCreateAdaptiveAvgPool1dDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -95,6 +98,9 @@ __INFINI_C infiniStatus_t infiniopGetAdaptiveAvgPool1dWorkspaceSize(infiniopAdap #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -140,6 +146,9 @@ __INFINI_C infiniStatus_t infiniopAdaptiveAvgPool1d( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -179,6 +188,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAdaptiveAvgPool1dDescriptor(infiniopAda #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/adaptive_avg_pool3d/operator.cc b/src/infiniop/ops/adaptive_avg_pool3d/operator.cc index 0b2036a6a..2d191f948 100644 --- a/src/infiniop/ops/adaptive_avg_pool3d/operator.cc +++ b/src/infiniop/ops/adaptive_avg_pool3d/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/adaptive_avg_pool3d_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/adaptive_avg_pool3d_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateAdaptiveAvgPool3DDescriptor( #endif #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -93,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopGetAdaptiveAvgPool3DWorkspaceSize( #endif #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -135,6 +141,9 @@ __INFINI_C infiniStatus_t infiniopAdaptiveAvgPool3D( #endif #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -170,6 +179,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAdaptiveAvgPool3DDescriptor(infiniopAda #endif #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; diff --git a/src/infiniop/ops/adaptive_max_pool1d/operator.cc b/src/infiniop/ops/adaptive_max_pool1d/operator.cc index 52d9e805f..548592b08 100644 --- a/src/infiniop/ops/adaptive_max_pool1d/operator.cc +++ b/src/infiniop/ops/adaptive_max_pool1d/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/adaptive_max_pool1d_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/adaptive_max_pool1d_metax.cuh" #endif #ifdef ENABLE_MOORE_API @@ -44,6 +44,9 @@ __INFINI_C infiniStatus_t infiniopCreateAdaptiveMaxPool1dDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetAdaptiveMaxPool1dWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -114,6 +120,9 @@ __INFINI_C infiniStatus_t infiniopAdaptiveMaxPool1d( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -146,6 +155,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAdaptiveMaxPool1dDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/add/operator.cc b/src/infiniop/ops/add/operator.cc index 9546a7577..3918660a8 100644 --- a/src/infiniop/ops/add/operator.cc +++ b/src/infiniop/ops/add/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) || defined(ENABLE_ALI_API) #include "nvidia/add_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/add_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -64,6 +64,9 @@ __INFINI_C infiniStatus_t infiniopCreateAddDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CREATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -113,6 +116,9 @@ __INFINI_C infiniStatus_t infiniopGetAddWorkspaceSize(infiniopAddDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -208,6 +214,9 @@ __INFINI_C infiniStatus_t infiniopAdd( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -259,6 +268,9 @@ infiniopDestroyAddDescriptor(infiniopAddDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DELETE(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/add_rms_norm/operator.cc b/src/infiniop/ops/add_rms_norm/operator.cc index 7d502770d..1e6138f13 100644 --- a/src/infiniop/ops/add_rms_norm/operator.cc +++ b/src/infiniop/ops/add_rms_norm/operator.cc @@ -15,7 +15,7 @@ #ifdef ENABLE_CAMBRICON_API #include "bang/add_rms_norm_bang.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/add_rms_norm_metax.cuh" #endif #ifdef ENABLE_MOORE_API @@ -67,6 +67,9 @@ __INFINI_C infiniStatus_t infiniopCreateAddRMSNormDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -112,6 +115,9 @@ __INFINI_C infiniStatus_t infiniopGetAddRMSNormWorkspaceSize(infiniopAddRMSNormD #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -168,6 +174,9 @@ __INFINI_C infiniStatus_t infiniopAddRMSNorm( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -215,6 +224,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAddRMSNormDescriptor(infiniopAddRMSNorm #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DESTROY(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/addbmm/operator.cc b/src/infiniop/ops/addbmm/operator.cc index 53ca28e2e..d0f48055e 100644 --- a/src/infiniop/ops/addbmm/operator.cc +++ b/src/infiniop/ops/addbmm/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/addbmm_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/addbmm_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -65,6 +65,9 @@ __INFINI_C infiniStatus_t infiniopCreateAddbmmDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -104,6 +107,9 @@ __INFINI_C infiniStatus_t infiniopGetAddbmmWorkspaceSize(infiniopAddbmmDescripto #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -151,6 +157,9 @@ __INFINI_C infiniStatus_t infiniopAddbmm( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -190,6 +199,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAddbmmDescriptor(infiniopAddbmmDescript #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/addcmul/operator.cc b/src/infiniop/ops/addcmul/operator.cc index ca071adb5..eefee6f04 100644 --- a/src/infiniop/ops/addcmul/operator.cc +++ b/src/infiniop/ops/addcmul/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/addcmul_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/addcmul_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateAddcmulDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -87,6 +90,9 @@ __INFINI_C infiniStatus_t infiniopGetAddcmulWorkspaceSize(infiniopAddcmulDescrip #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -130,6 +136,9 @@ __INFINI_C infiniStatus_t infiniopAddcmul( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -165,6 +174,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAddcmulDescriptor(infiniopAddcmulDescri #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/addr/operator.cc b/src/infiniop/ops/addr/operator.cc index 1b5101352..fce1b0dba 100644 --- a/src/infiniop/ops/addr/operator.cc +++ b/src/infiniop/ops/addr/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/addr_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/addr_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -59,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopCreateAddrDescriptor( #endif #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -99,6 +102,9 @@ __INFINI_C infiniStatus_t infiniopGetAddrWorkspaceSize( #endif #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -145,6 +151,9 @@ __INFINI_C infiniStatus_t infiniopAddr( #endif #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -183,6 +192,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAddrDescriptor(infiniopAddrDescriptor_t #endif #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; diff --git a/src/infiniop/ops/affine_grid/operator.cc b/src/infiniop/ops/affine_grid/operator.cc index d5212f798..079d2d207 100644 --- a/src/infiniop/ops/affine_grid/operator.cc +++ b/src/infiniop/ops/affine_grid/operator.cc @@ -12,7 +12,7 @@ #ifdef ENABLE_MOORE_API #include "moore/affine_grid_moore.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/affine_grid_metax.h" #endif @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateAffineGridDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ILUVATAR_API CREATE(INFINI_DEVICE_ILUVATAR, nvidia); #endif @@ -85,6 +88,9 @@ __INFINI_C infiniStatus_t infiniopGetAffineGridWorkspaceSize(infiniopAffineGridD #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_QY_API GET(INFINI_DEVICE_QY, nvidia); #endif @@ -126,6 +132,9 @@ __INFINI_C infiniStatus_t infiniopAffineGrid( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ILUVATAR_API CALCULATE(INFINI_DEVICE_ILUVATAR, nvidia); #endif @@ -165,6 +174,9 @@ infiniopDestroyAffineGridDescriptor(infiniopAffineGridDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ILUVATAR_API DELETE(INFINI_DEVICE_ILUVATAR, nvidia); #endif diff --git a/src/infiniop/ops/all/operator.cc b/src/infiniop/ops/all/operator.cc index 8ffb34b63..753ce82dd 100644 --- a/src/infiniop/ops/all/operator.cc +++ b/src/infiniop/ops/all/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/all_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/all_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -56,6 +56,9 @@ __INFINI_C infiniStatus_t infiniopCreateAllDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -93,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopGetAllWorkspaceSize(infiniopAllDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -141,6 +147,9 @@ __INFINI_C infiniStatus_t infiniopAll( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -180,6 +189,9 @@ infiniopDestroyAllDescriptor(infiniopAllDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/argwhere/operator.cc b/src/infiniop/ops/argwhere/operator.cc index e1eaccfd3..c123f7427 100644 --- a/src/infiniop/ops/argwhere/operator.cc +++ b/src/infiniop/ops/argwhere/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/argwhere_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/argwhere_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -44,6 +44,9 @@ __INFINI_C infiniStatus_t infiniopCreateArgwhereDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -83,6 +86,9 @@ __INFINI_C infiniStatus_t infiniopGetArgwhereWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -128,6 +134,9 @@ __INFINI_C infiniStatus_t infiniopArgwhere( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -167,6 +176,9 @@ infiniopDestroyArgwhereDescriptor(infiniopArgwhereDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/asin/operator.cc b/src/infiniop/ops/asin/operator.cc index e372286b3..46e61f110 100644 --- a/src/infiniop/ops/asin/operator.cc +++ b/src/infiniop/ops/asin/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/asin_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/asin_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateAsinDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetAsinWorkspaceSize(infiniopAsinDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopAsin( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyAsinDescriptor(infiniopAsinDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/asinh/operator.cc b/src/infiniop/ops/asinh/operator.cc index 021ddb6b0..8daac4831 100644 --- a/src/infiniop/ops/asinh/operator.cc +++ b/src/infiniop/ops/asinh/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/asinh_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/asinh_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -41,6 +41,9 @@ __INFINI_C infiniStatus_t infiniopCreateAsinhDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -73,6 +76,9 @@ __INFINI_C infiniStatus_t infiniopGetAsinhWorkspaceSize(infiniopAsinhDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -109,6 +115,9 @@ __INFINI_C infiniStatus_t infiniopAsinh(infiniopAsinhDescriptor_t desc, #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -140,6 +149,9 @@ __INFINI_C infiniStatus_t infiniopDestroyAsinhDescriptor(infiniopAsinhDescriptor #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/asum/operator.cc b/src/infiniop/ops/asum/operator.cc index 51769f0d3..2b2784379 100644 --- a/src/infiniop/ops/asum/operator.cc +++ b/src/infiniop/ops/asum/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/asum_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/asum_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -33,6 +33,9 @@ __INFINI_C infiniStatus_t infiniopCreateAsumDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -57,6 +60,9 @@ __INFINI_C infiniStatus_t infiniopGetAsumWorkspaceSize(infiniopAsumDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -88,6 +94,9 @@ __INFINI_C infiniStatus_t infiniopAsum( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -113,6 +122,9 @@ infiniopDestroyAsumDescriptor(infiniopAsumDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/atanh/operator.cc b/src/infiniop/ops/atanh/operator.cc index 0472d6d43..000fa4136 100644 --- a/src/infiniop/ops/atanh/operator.cc +++ b/src/infiniop/ops/atanh/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/atanh_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/atanh_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -49,6 +49,9 @@ __INFINI_C infiniStatus_t infiniopCreateAtanhDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -86,6 +89,9 @@ __INFINI_C infiniStatus_t infiniopGetAtanhWorkspaceSize(infiniopAtanhDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -128,6 +134,9 @@ __INFINI_C infiniStatus_t infiniopAtanh( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -167,6 +176,9 @@ infiniopDestroyAtanhDescriptor(infiniopAtanhDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/avg_pool1d/operator.cc b/src/infiniop/ops/avg_pool1d/operator.cc index 54ea110fd..40e1b1548 100644 --- a/src/infiniop/ops/avg_pool1d/operator.cc +++ b/src/infiniop/ops/avg_pool1d/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/avg_pool1d_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/avg_pool1d_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -56,6 +56,9 @@ __INFINI_C infiniStatus_t infiniopCreateAvgPool1dDescriptor( #endif #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -92,6 +95,9 @@ __INFINI_C infiniStatus_t infiniopGetAvgPool1dWorkspaceSize(infiniopAvgPool1dDes #endif #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -134,6 +140,9 @@ __INFINI_C infiniStatus_t infiniopAvgPool1d( #endif #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -171,6 +180,9 @@ infiniopDestroyAvgPool1dDescriptor(infiniopAvgPool1dDescriptor_t desc) { #endif #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); +#endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; diff --git a/src/infiniop/ops/avg_pool3d/operator.cc b/src/infiniop/ops/avg_pool3d/operator.cc index df58e1282..79a4b0299 100644 --- a/src/infiniop/ops/avg_pool3d/operator.cc +++ b/src/infiniop/ops/avg_pool3d/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) #include "nvidia/avg_pool3d_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/avg_pool3d_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -49,6 +49,9 @@ __INFINI_C infiniStatus_t infiniopCreateAvgPool3dDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -80,6 +83,9 @@ __INFINI_C infiniStatus_t infiniopGetAvgPool3dWorkspaceSize(infiniopAvgPool3dDes #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopAvgPool3d( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -151,6 +160,9 @@ infiniopDestroyAvgPool3dDescriptor(infiniopAvgPool3dDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/axpy/operator.cc b/src/infiniop/ops/axpy/operator.cc index cd57223e4..87c461837 100644 --- a/src/infiniop/ops/axpy/operator.cc +++ b/src/infiniop/ops/axpy/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/axpy_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/axpy_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -35,6 +35,9 @@ __INFINI_C infiniStatus_t infiniopCreateAxpyDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -59,6 +62,9 @@ __INFINI_C infiniStatus_t infiniopGetAxpyWorkspaceSize(infiniopAxpyDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -91,6 +97,9 @@ __INFINI_C infiniStatus_t infiniopAxpy( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -116,6 +125,9 @@ infiniopDestroyAxpyDescriptor(infiniopAxpyDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/binary_cross_entropy_with_logits/operator.cc b/src/infiniop/ops/binary_cross_entropy_with_logits/operator.cc index 06180aa2c..b42b798d5 100644 --- a/src/infiniop/ops/binary_cross_entropy_with_logits/operator.cc +++ b/src/infiniop/ops/binary_cross_entropy_with_logits/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/binary_cross_entropy_with_logits_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/binary_cross_entropy_with_logits_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -54,6 +54,9 @@ __INFINI_C infiniStatus_t infiniopCreateBCEWithLogitsDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -94,6 +97,9 @@ __INFINI_C infiniStatus_t infiniopGetBCEWithLogitsWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -140,6 +146,9 @@ __INFINI_C infiniStatus_t infiniopBCEWithLogits( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -178,6 +187,9 @@ __INFINI_C infiniStatus_t infiniopDestroyBCEWithLogitsDescriptor(infiniopBCEWith #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/bitwise_right_shift/operator.cc b/src/infiniop/ops/bitwise_right_shift/operator.cc index b1f3d81ed..9fd0c0eb6 100644 --- a/src/infiniop/ops/bitwise_right_shift/operator.cc +++ b/src/infiniop/ops/bitwise_right_shift/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/bitwise_right_shift_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/bitwise_right_shift_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -44,6 +44,9 @@ __INFINI_C infiniStatus_t infiniopCreateBitwiseRightShiftDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -78,6 +81,9 @@ __INFINI_C infiniStatus_t infiniopGetBitwiseRightShiftWorkspaceSize(infiniopBitw #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -120,6 +126,9 @@ __INFINI_C infiniStatus_t infiniopBitwiseRightShift( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -156,6 +165,9 @@ infiniopDestroyBitwiseRightShiftDescriptor(infiniopBitwiseRightShiftDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/blas_amax/operator.cc b/src/infiniop/ops/blas_amax/operator.cc index c6b48eeb4..ec1fd95af 100644 --- a/src/infiniop/ops/blas_amax/operator.cc +++ b/src/infiniop/ops/blas_amax/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/blas_amax_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/blas_amax_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -33,6 +33,9 @@ __INFINI_C infiniStatus_t infiniopCreateBlasAmaxDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -57,6 +60,9 @@ __INFINI_C infiniStatus_t infiniopGetBlasAmaxWorkspaceSize(infiniopBlasAmaxDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -87,6 +93,9 @@ __INFINI_C infiniStatus_t infiniopBlasAmax( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -111,6 +120,9 @@ __INFINI_C infiniStatus_t infiniopDestroyBlasAmaxDescriptor(infiniopBlasAmaxDesc #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/blas_amin/operator.cc b/src/infiniop/ops/blas_amin/operator.cc index 7f960b773..5961b4238 100644 --- a/src/infiniop/ops/blas_amin/operator.cc +++ b/src/infiniop/ops/blas_amin/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/blas_amin_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/blas_amin_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -33,6 +33,9 @@ __INFINI_C infiniStatus_t infiniopCreateBlasAminDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -57,6 +60,9 @@ __INFINI_C infiniStatus_t infiniopGetBlasAminWorkspaceSize(infiniopBlasAminDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -87,6 +93,9 @@ __INFINI_C infiniStatus_t infiniopBlasAmin( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -111,6 +120,9 @@ __INFINI_C infiniStatus_t infiniopDestroyBlasAminDescriptor(infiniopBlasAminDesc #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/blas_copy/operator.cc b/src/infiniop/ops/blas_copy/operator.cc index 394adc665..978aaa23c 100644 --- a/src/infiniop/ops/blas_copy/operator.cc +++ b/src/infiniop/ops/blas_copy/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/blas_copy_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/blas_copy_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -32,6 +32,9 @@ __INFINI_C infiniStatus_t infiniopCreateBlasCopyDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -56,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopGetBlasCopyWorkspaceSize(infiniopBlasCopyDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -86,6 +92,9 @@ __INFINI_C infiniStatus_t infiniopBlasCopy( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -110,6 +119,9 @@ __INFINI_C infiniStatus_t infiniopDestroyBlasCopyDescriptor(infiniopBlasCopyDesc #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/blas_dot/operator.cc b/src/infiniop/ops/blas_dot/operator.cc index e28943b8b..12b52d0be 100644 --- a/src/infiniop/ops/blas_dot/operator.cc +++ b/src/infiniop/ops/blas_dot/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/blas_dot_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/blas_dot_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -35,6 +35,9 @@ __INFINI_C infiniStatus_t infiniopCreateBlasDotDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -59,6 +62,9 @@ __INFINI_C infiniStatus_t infiniopGetBlasDotWorkspaceSize(infiniopBlasDotDescrip #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -90,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopBlasDot( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -114,6 +123,9 @@ __INFINI_C infiniStatus_t infiniopDestroyBlasDotDescriptor(infiniopBlasDotDescri #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/block_diag/operator.cc b/src/infiniop/ops/block_diag/operator.cc index 31e6198f0..d00384a48 100644 --- a/src/infiniop/ops/block_diag/operator.cc +++ b/src/infiniop/ops/block_diag/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/block_diag_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/block_diag_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -45,6 +45,9 @@ __INFINI_C infiniStatus_t infiniopCreateBlockDiagDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -79,6 +82,9 @@ __INFINI_C infiniStatus_t infiniopGetBlockDiagWorkspaceSize(infiniopBlockDiagDes #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -120,6 +126,9 @@ __INFINI_C infiniStatus_t infiniopBlockDiag( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -156,6 +165,9 @@ infiniopDestroyBlockDiagDescriptor(infiniopBlockDiagDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/broadcast_to/operator.cc b/src/infiniop/ops/broadcast_to/operator.cc index ea861f970..d5ff54614 100644 --- a/src/infiniop/ops/broadcast_to/operator.cc +++ b/src/infiniop/ops/broadcast_to/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/broadcast_to_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/broadcast_to_metax.h" #endif @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateBroadcastToDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -93,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopGetBroadcastToWorkspaceSize(infiniopBroadcastT #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -141,6 +147,9 @@ __INFINI_C infiniStatus_t infiniopBroadcastTo( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -182,6 +191,9 @@ __INFINI_C infiniStatus_t infiniopDestroyBroadcastToDescriptor(infiniopBroadcast #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/causal_conv1d/operator.cc b/src/infiniop/ops/causal_conv1d/operator.cc index 8666d2e62..9abb67820 100644 --- a/src/infiniop/ops/causal_conv1d/operator.cc +++ b/src/infiniop/ops/causal_conv1d/operator.cc @@ -5,7 +5,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_HYGON_API) #include "nvidia/causal_conv1d_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/causal_conv1d_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -44,6 +44,9 @@ __INFINI_C infiniStatus_t infiniopCreateCausalConv1dDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore) #endif @@ -70,6 +73,9 @@ __INFINI_C infiniStatus_t infiniopGetCausalConv1dWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -110,6 +116,9 @@ __INFINI_C infiniStatus_t infiniopCausalConv1d( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore) #endif @@ -136,6 +145,9 @@ __INFINI_C infiniStatus_t infiniopDestroyCausalConv1dDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore) #endif diff --git a/src/infiniop/ops/causal_softmax/operator.cc b/src/infiniop/ops/causal_softmax/operator.cc index f8d2bfba6..87a4d4d39 100644 --- a/src/infiniop/ops/causal_softmax/operator.cc +++ b/src/infiniop/ops/causal_softmax/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) || defined(ENABLE_ALI_API) #include "nvidia/causal_softmax_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/causal_softmax_metax.h" #endif #ifdef ENABLE_ASCEND_API @@ -63,6 +63,9 @@ __INFINI_C infiniStatus_t infiniopCreateCausalSoftmaxDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ASCEND_API CREATE(INFINI_DEVICE_ASCEND, ascend) #endif @@ -107,6 +110,9 @@ __INFINI_C infiniStatus_t infiniopGetCausalSoftmaxWorkspaceSize(infiniopCausalSo #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ASCEND_API GET(INFINI_DEVICE_ASCEND, ascend) #endif @@ -162,6 +168,9 @@ __INFINI_C infiniStatus_t infiniopCausalSoftmax( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ASCEND_API CALCULATE(INFINI_DEVICE_ASCEND, ascend) #endif @@ -209,6 +218,9 @@ __INFINI_C infiniStatus_t infiniopDestroyCausalSoftmaxDescriptor(infiniopCausalS #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ASCEND_API DESTROY(INFINI_DEVICE_ASCEND, ascend) #endif diff --git a/src/infiniop/ops/cdist/operator.cc b/src/infiniop/ops/cdist/operator.cc index 0ed6541b7..fb7a3ed2d 100644 --- a/src/infiniop/ops/cdist/operator.cc +++ b/src/infiniop/ops/cdist/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/cdist_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/cdist_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateCdistDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -92,6 +95,9 @@ __INFINI_C infiniStatus_t infiniopGetCdistWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -136,6 +142,9 @@ __INFINI_C infiniStatus_t infiniopCdist( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -174,6 +183,9 @@ __INFINI_C infiniStatus_t infiniopDestroyCdistDescriptor(infiniopCdistDescriptor #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/chunk_gated_delta_rule/operator.cc b/src/infiniop/ops/chunk_gated_delta_rule/operator.cc index 19b5198bf..939fff404 100644 --- a/src/infiniop/ops/chunk_gated_delta_rule/operator.cc +++ b/src/infiniop/ops/chunk_gated_delta_rule/operator.cc @@ -7,7 +7,7 @@ #if defined(ENABLE_NVIDIA_API) #include "nvidia/chunk_gated_delta_rule_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/chunk_gated_delta_rule_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -50,6 +50,9 @@ __INFINI_C infiniStatus_t infiniopCreateChunkGatedDeltaRuleDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore) #endif @@ -76,6 +79,9 @@ __INFINI_C infiniStatus_t infiniopGetChunkGatedDeltaRuleWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -109,6 +115,9 @@ __INFINI_C infiniStatus_t infiniopChunkGatedDeltaRule( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore) #endif @@ -134,6 +143,9 @@ __INFINI_C infiniStatus_t infiniopDestroyChunkGatedDeltaRuleDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore) #endif diff --git a/src/infiniop/ops/clip/operator.cc b/src/infiniop/ops/clip/operator.cc index c933cafab..9eeb06f80 100644 --- a/src/infiniop/ops/clip/operator.cc +++ b/src/infiniop/ops/clip/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/clip_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/clip_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -51,6 +51,9 @@ __INFINI_C infiniStatus_t infiniopCreateClipDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CREATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -91,6 +94,9 @@ __INFINI_C infiniStatus_t infiniopGetClipWorkspaceSize(infiniopClipDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun) #endif @@ -139,6 +145,9 @@ __INFINI_C infiniStatus_t infiniopClip( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -181,6 +190,9 @@ infiniopDestroyClipDescriptor(infiniopClipDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DELETE(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/cross_entropy/operator.cc b/src/infiniop/ops/cross_entropy/operator.cc index 75f35fcb7..6392b8f0f 100644 --- a/src/infiniop/ops/cross_entropy/operator.cc +++ b/src/infiniop/ops/cross_entropy/operator.cc @@ -13,7 +13,7 @@ #ifdef ENABLE_MOORE_API #include "moore/cross_entropy_moore.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/cross_entropy_metax.h" #endif @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateCrossEntropyDescriptor( #endif #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) +#endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -88,6 +91,9 @@ __INFINI_C infiniStatus_t infiniopGetCrossEntropyWorkspaceSize( #endif #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) +#endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -130,6 +136,9 @@ __INFINI_C infiniStatus_t infiniopCrossEntropy( #endif #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) +#endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -166,6 +175,9 @@ __INFINI_C infiniStatus_t infiniopDestroyCrossEntropyDescriptor( #endif #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) +#endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) #endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; diff --git a/src/infiniop/ops/deepseek_moe/operator.cc b/src/infiniop/ops/deepseek_moe/operator.cc index d1ddfb58a..b75f6be08 100644 --- a/src/infiniop/ops/deepseek_moe/operator.cc +++ b/src/infiniop/ops/deepseek_moe/operator.cc @@ -6,7 +6,7 @@ || defined(ENABLE_ALI_API) #include "nvidia/deepseek_moe_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/deepseek_moe_metax.cuh" #endif #ifdef ENABLE_MOORE_API @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateDeepseekMoeDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -80,6 +83,9 @@ __INFINI_C infiniStatus_t infiniopGetDeepseekMoeWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -124,6 +130,9 @@ __INFINI_C infiniStatus_t infiniopDeepseekMoe( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -168,6 +177,9 @@ __INFINI_C infiniStatus_t infiniopDeepseekMoeWithDevicePtrs( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -201,6 +213,9 @@ __INFINI_C infiniStatus_t infiniopDestroyDeepseekMoeDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/diff/operator.cc b/src/infiniop/ops/diff/operator.cc index 3037dc3b5..911031874 100644 --- a/src/infiniop/ops/diff/operator.cc +++ b/src/infiniop/ops/diff/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/diff_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/diff_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -47,6 +47,9 @@ __INFINI_C infiniStatus_t infiniopCreateDiffDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -81,6 +84,9 @@ __INFINI_C infiniStatus_t infiniopGetDiffWorkspaceSize(infiniopDiffDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -122,6 +128,9 @@ __INFINI_C infiniStatus_t infiniopDiff( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -158,6 +167,9 @@ infiniopDestroyDiffDescriptor(infiniopDiffDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/digamma/operator.cc b/src/infiniop/ops/digamma/operator.cc index d6be706ca..e14c8632b 100644 --- a/src/infiniop/ops/digamma/operator.cc +++ b/src/infiniop/ops/digamma/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/digamma_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/digamma_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateDigammaDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetDigammaWorkspaceSize(infiniopDigammaDescrip #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopDigamma( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyDigammaDescriptor(infiniopDigammaDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/dist/operator.cc b/src/infiniop/ops/dist/operator.cc index 6aba56b88..d713b9bb2 100644 --- a/src/infiniop/ops/dist/operator.cc +++ b/src/infiniop/ops/dist/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) #include "nvidia/dist_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/dist_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -47,6 +47,9 @@ __INFINI_C infiniStatus_t infiniopCreateDistDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -78,6 +81,9 @@ __INFINI_C infiniStatus_t infiniopGetDistWorkspaceSize(infiniopDistDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -117,6 +123,9 @@ __INFINI_C infiniStatus_t infiniopDist( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -150,6 +159,9 @@ infiniopDestroyDistDescriptor(infiniopDistDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/dot/operator.cc b/src/infiniop/ops/dot/operator.cc index 10f9fda57..08f1bf657 100644 --- a/src/infiniop/ops/dot/operator.cc +++ b/src/infiniop/ops/dot/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) #include "nvidia/dot_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/dot_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -45,6 +45,9 @@ __INFINI_C infiniStatus_t infiniopCreateDotDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -76,6 +79,9 @@ __INFINI_C infiniStatus_t infiniopGetDotWorkspaceSize(infiniopDotDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -115,6 +121,9 @@ __INFINI_C infiniStatus_t infiniopDot( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -148,6 +157,9 @@ infiniopDestroyDotDescriptor(infiniopDotDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/embedding/operator.cc b/src/infiniop/ops/embedding/operator.cc index 5301e57a5..027579601 100644 --- a/src/infiniop/ops/embedding/operator.cc +++ b/src/infiniop/ops/embedding/operator.cc @@ -15,7 +15,7 @@ #ifdef ENABLE_ASCEND_API #include "ascend/embedding_ascend.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/embedding_metax.cuh" #endif #ifdef ENABLE_MOORE_API @@ -67,6 +67,9 @@ __INFINI_C infiniStatus_t infiniopCreateEmbeddingDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -122,6 +125,9 @@ __INFINI_C infiniStatus_t infiniopEmbedding( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -168,6 +174,9 @@ __INFINI_C infiniStatus_t infiniopDestroyEmbeddingDescriptor(infiniopEmbeddingDe #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/equal/operator.cc b/src/infiniop/ops/equal/operator.cc index 9c5866c1e..58e8b640d 100644 --- a/src/infiniop/ops/equal/operator.cc +++ b/src/infiniop/ops/equal/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/equal_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/equal_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -47,6 +47,9 @@ __INFINI_C infiniStatus_t infiniopCreateEqualDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -84,6 +87,9 @@ __INFINI_C infiniStatus_t infiniopGetEqualWorkspaceSize(infiniopEqualDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -129,6 +135,9 @@ __INFINI_C infiniStatus_t infiniopEqual( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -168,6 +177,9 @@ infiniopDestroyEqualDescriptor(infiniopEqualDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/erf/operator.cc b/src/infiniop/ops/erf/operator.cc index af1327c3b..9f36eefa0 100644 --- a/src/infiniop/ops/erf/operator.cc +++ b/src/infiniop/ops/erf/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/erf_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/erf_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C __export infiniStatus_t infiniopCreateErfDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C __export infiniStatus_t infiniopGetErfWorkspaceSize(infiniopErfDescri #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C __export infiniStatus_t infiniopErf( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyErfDescriptor(infiniopErfDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/erfc/operator.cc b/src/infiniop/ops/erfc/operator.cc index ce283df19..3f13c23ca 100644 --- a/src/infiniop/ops/erfc/operator.cc +++ b/src/infiniop/ops/erfc/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/erfc_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/erfc_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C __export infiniStatus_t infiniopCreateErfcDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C __export infiniStatus_t infiniopGetErfcWorkspaceSize(infiniopErfcDesc #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C __export infiniStatus_t infiniopErfc( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyErfcDescriptor(infiniopErfcDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/erfinv/operator.cc b/src/infiniop/ops/erfinv/operator.cc index dc711c1ef..64de72634 100644 --- a/src/infiniop/ops/erfinv/operator.cc +++ b/src/infiniop/ops/erfinv/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/erfinv_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/erfinv_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C __export infiniStatus_t infiniopCreateErfinvDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C __export infiniStatus_t infiniopGetErfinvWorkspaceSize(infiniopErfinv #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C __export infiniStatus_t infiniopErfinv( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyErfinvDescriptor(infiniopErfinvDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/flipud/operator.cc b/src/infiniop/ops/flipud/operator.cc index 69a785ec6..6462c9c6e 100644 --- a/src/infiniop/ops/flipud/operator.cc +++ b/src/infiniop/ops/flipud/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/flipud_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/flipud_metax.h" #endif @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateFlipudDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -91,6 +94,9 @@ __INFINI_C infiniStatus_t infiniopGetFlipudWorkspaceSize(infiniopFlipudDescripto #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -135,6 +141,9 @@ __INFINI_C infiniStatus_t infiniopFlipud( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -173,6 +182,9 @@ __INFINI_C infiniStatus_t infiniopDestroyFlipudDescriptor(infiniopFlipudDescript #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/float_power/operator.cc b/src/infiniop/ops/float_power/operator.cc index de5485ef7..33d5feb33 100644 --- a/src/infiniop/ops/float_power/operator.cc +++ b/src/infiniop/ops/float_power/operator.cc @@ -9,7 +9,7 @@ #include "nvidia/float_power_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/float_power_metax.h" #endif @@ -56,6 +56,9 @@ __INFINI_C infiniStatus_t infiniopCreateFloatPowerDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -94,6 +97,9 @@ __INFINI_C infiniStatus_t infiniopGetFloatPowerWorkspaceSize(infiniopFloatPowerD #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -139,6 +145,9 @@ __INFINI_C infiniStatus_t infiniopFloatPower( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -177,6 +186,9 @@ __INFINI_C infiniStatus_t infiniopDestroyFloatPowerDescriptor(infiniopFloatPower #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/floor/operator.cc b/src/infiniop/ops/floor/operator.cc index 20a94f25c..009bd3f8a 100644 --- a/src/infiniop/ops/floor/operator.cc +++ b/src/infiniop/ops/floor/operator.cc @@ -11,7 +11,7 @@ #include "nvidia/floor_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/floor_metax.h" #endif @@ -58,6 +58,9 @@ __INFINI_C infiniStatus_t infiniopCreateFloorDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif // ========================================== // 添加 MOORE 分支 // ========================================== @@ -105,6 +108,9 @@ __INFINI_C infiniStatus_t infiniopGetFloorWorkspaceSize(infiniopFloorDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API GET(INFINI_DEVICE_HYGON, nvidia); #endif @@ -154,6 +160,9 @@ __INFINI_C infiniStatus_t infiniopFloor( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API CALCULATE(INFINI_DEVICE_HYGON, nvidia); #endif @@ -195,6 +204,9 @@ __INFINI_C infiniStatus_t infiniopDestroyFloorDescriptor(infiniopFloorDescriptor #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API DELETE(INFINI_DEVICE_HYGON, nvidia); #endif diff --git a/src/infiniop/ops/floor_divide/operator.cc b/src/infiniop/ops/floor_divide/operator.cc index d2644e944..7d8b63b3c 100644 --- a/src/infiniop/ops/floor_divide/operator.cc +++ b/src/infiniop/ops/floor_divide/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/floor_divide_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/floor_divide_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -48,6 +48,9 @@ __INFINI_C infiniStatus_t infiniopCreateFloorDivideDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -85,6 +88,9 @@ __INFINI_C infiniStatus_t infiniopGetFloorDivideWorkspaceSize(infiniopFloorDivid #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -130,6 +136,9 @@ __INFINI_C infiniStatus_t infiniopFloorDivide( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -169,6 +178,9 @@ infiniopDestroyFloorDivideDescriptor(infiniopFloorDivideDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/fmin/operator.cc b/src/infiniop/ops/fmin/operator.cc index 4b41c93ae..f8f941c57 100644 --- a/src/infiniop/ops/fmin/operator.cc +++ b/src/infiniop/ops/fmin/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/fmin_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/fmin_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -48,6 +48,9 @@ __INFINI_C infiniStatus_t infiniopCreateFminDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -85,6 +88,9 @@ __INFINI_C infiniStatus_t infiniopGetFminWorkspaceSize(infiniopFminDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -130,6 +136,9 @@ __INFINI_C infiniStatus_t infiniopFmin( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -169,6 +178,9 @@ infiniopDestroyFminDescriptor(infiniopFminDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/fmod/operator.cc b/src/infiniop/ops/fmod/operator.cc index 100257d38..45128b236 100644 --- a/src/infiniop/ops/fmod/operator.cc +++ b/src/infiniop/ops/fmod/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/fmod_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/fmod_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -44,6 +44,9 @@ __INFINI_C infiniStatus_t infiniopCreateFmodDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetFmodWorkspaceSize(infiniopFmodDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -116,6 +122,9 @@ __INFINI_C infiniStatus_t infiniopFmod( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -148,6 +157,9 @@ __INFINI_C infiniStatus_t infiniopDestroyFmodDescriptor(infiniopFmodDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/fused_ffn/operator.cc b/src/infiniop/ops/fused_ffn/operator.cc index 616a1957f..e36a9ba87 100644 --- a/src/infiniop/ops/fused_ffn/operator.cc +++ b/src/infiniop/ops/fused_ffn/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) || defined(ENABLE_ALI_API) #include "nvidia/fused_ffn_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/fused_ffn_metax.cuh" #endif @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateFusedFFNDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_QY_API CREATE(INFINI_DEVICE_QY, nvidia); #endif @@ -89,6 +92,9 @@ __INFINI_C infiniStatus_t infiniopGetFusedFFNWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_QY_API GET(INFINI_DEVICE_QY, nvidia); #endif @@ -138,6 +144,9 @@ __INFINI_C infiniStatus_t infiniopFusedFFN( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_QY_API CALCULATE(INFINI_DEVICE_QY, nvidia); #endif @@ -177,6 +186,9 @@ __INFINI_C infiniStatus_t infiniopDestroyFusedFFNDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_QY_API DESTROY(INFINI_DEVICE_QY, nvidia); #endif diff --git a/src/infiniop/ops/fused_gated_delta_net_gating/operator.cc b/src/infiniop/ops/fused_gated_delta_net_gating/operator.cc index 14296e846..7756343c6 100644 --- a/src/infiniop/ops/fused_gated_delta_net_gating/operator.cc +++ b/src/infiniop/ops/fused_gated_delta_net_gating/operator.cc @@ -5,7 +5,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/fused_gated_delta_net_gating_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/fused_gated_delta_net_gating_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -50,6 +50,9 @@ infiniopCreateFusedGatedDeltaNetGatingDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -89,6 +92,9 @@ infiniopGetFusedGatedDeltaNetGatingWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -136,6 +142,9 @@ infiniopFusedGatedDeltaNetGating( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -174,6 +183,9 @@ infiniopDestroyFusedGatedDeltaNetGatingDescriptor( #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/gaussian_nll_loss/operator.cc b/src/infiniop/ops/gaussian_nll_loss/operator.cc index 063319894..64fdfa5d4 100644 --- a/src/infiniop/ops/gaussian_nll_loss/operator.cc +++ b/src/infiniop/ops/gaussian_nll_loss/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/gaussian_nll_loss_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/gaussian_nll_loss_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateGaussianNllLossDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -87,6 +90,9 @@ __INFINI_C infiniStatus_t infiniopGetGaussianNllLossWorkspaceSize(infiniopGaussi #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -130,6 +136,9 @@ __INFINI_C infiniStatus_t infiniopGaussianNllLoss( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -166,6 +175,9 @@ infiniopDestroyGaussianNllLossDescriptor(infiniopGaussianNllLossDescriptor_t des #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/gelu/operator.cc b/src/infiniop/ops/gelu/operator.cc index 69b590d9a..eff60fa29 100644 --- a/src/infiniop/ops/gelu/operator.cc +++ b/src/infiniop/ops/gelu/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/gelu_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/gelu_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateGeluDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CREATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -95,6 +98,9 @@ __INFINI_C infiniStatus_t infiniopGetGeluWorkspaceSize(infiniopGeluDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -146,6 +152,9 @@ __INFINI_C infiniStatus_t infiniopGelu( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -191,6 +200,9 @@ infiniopDestroyGeluDescriptor(infiniopGeluDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DELETE(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/gelutanh/operator.cc b/src/infiniop/ops/gelutanh/operator.cc index 91a213a24..d7f489cd4 100644 --- a/src/infiniop/ops/gelutanh/operator.cc +++ b/src/infiniop/ops/gelutanh/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/gelutanh_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/gelutanh_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -48,6 +48,9 @@ __INFINI_C infiniStatus_t infiniopCreateGeluTanhDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -84,6 +87,9 @@ __INFINI_C infiniStatus_t infiniopGetGeluTanhWorkspaceSize(infiniopGeluTanhDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -126,6 +132,9 @@ __INFINI_C infiniStatus_t infiniopGeluTanh( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -162,6 +171,9 @@ __INFINI_C infiniStatus_t infiniopDestroyGeluTanhDescriptor(infiniopGeluTanhDesc #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/gemm/operator.cc b/src/infiniop/ops/gemm/operator.cc index 81d9cb066..3a6059280 100644 --- a/src/infiniop/ops/gemm/operator.cc +++ b/src/infiniop/ops/gemm/operator.cc @@ -14,7 +14,7 @@ #ifdef ENABLE_ASCEND_API #include "ascend/gemm_ascend.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/gemm_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -71,6 +71,9 @@ __INFINI_C infiniStatus_t infiniopCreateGemmDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -125,6 +128,9 @@ infiniopGetGemmWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -186,6 +192,9 @@ __INFINI_C infiniStatus_t infiniopGemm( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -237,6 +246,9 @@ infiniopDestroyGemmDescriptor(infiniopGemmDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/hardswish/operator.cc b/src/infiniop/ops/hardswish/operator.cc index 918a6daf4..e7ca7cf05 100644 --- a/src/infiniop/ops/hardswish/operator.cc +++ b/src/infiniop/ops/hardswish/operator.cc @@ -11,7 +11,7 @@ #ifdef ENABLE_MOORE_API #include "moore/hardswish_moore.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/hardswish_metax.h" #endif @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateHardSwishDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API CREATE(INFINI_DEVICE_HYGON, nvidia); #endif @@ -80,6 +83,9 @@ __INFINI_C infiniStatus_t infiniopGetHardSwishWorkspaceSize(infiniopHardSwishDes #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API GET(INFINI_DEVICE_HYGON, nvidia); #endif @@ -122,6 +128,9 @@ __INFINI_C infiniStatus_t infiniopHardSwish( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API CALCULATE(INFINI_DEVICE_HYGON, nvidia); #endif @@ -157,6 +166,9 @@ __INFINI_C infiniStatus_t infiniopDestroyHardSwishDescriptor(infiniopHardSwishDe #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API DELETE(INFINI_DEVICE_HYGON, nvidia); #endif diff --git a/src/infiniop/ops/hardtanh/operator.cc b/src/infiniop/ops/hardtanh/operator.cc index daf7581bb..0e07cf693 100644 --- a/src/infiniop/ops/hardtanh/operator.cc +++ b/src/infiniop/ops/hardtanh/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/hardtanh_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/hardtanh_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -47,6 +47,9 @@ __INFINI_C infiniStatus_t infiniopCreateHardTanhDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -81,6 +84,9 @@ __INFINI_C infiniStatus_t infiniopGetHardTanhWorkspaceSize(infiniopHardTanhDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -122,6 +128,9 @@ __INFINI_C infiniStatus_t infiniopHardTanh( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -158,6 +167,9 @@ infiniopDestroyHardTanhDescriptor(infiniopHardTanhDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/hinge_embedding_loss/operator.cc b/src/infiniop/ops/hinge_embedding_loss/operator.cc index 6ad907a41..018b95ae4 100644 --- a/src/infiniop/ops/hinge_embedding_loss/operator.cc +++ b/src/infiniop/ops/hinge_embedding_loss/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/hinge_embedding_loss_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/hinge_embedding_loss_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -49,6 +49,9 @@ __INFINI_C infiniStatus_t infiniopCreateHingeEmbeddingLossDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -83,6 +86,9 @@ __INFINI_C infiniStatus_t infiniopGetHingeEmbeddingLossWorkspaceSize(infiniopHin #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -125,6 +131,9 @@ __INFINI_C infiniStatus_t infiniopHingeEmbeddingLoss( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -161,6 +170,9 @@ infiniopDestroyHingeEmbeddingLossDescriptor(infiniopHingeEmbeddingLossDescriptor #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/histc/operator.cc b/src/infiniop/ops/histc/operator.cc index ed4d07662..bdde5e778 100644 --- a/src/infiniop/ops/histc/operator.cc +++ b/src/infiniop/ops/histc/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) #include "nvidia/histc_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/histc_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -49,6 +49,9 @@ __INFINI_C infiniStatus_t infiniopCreateHistcDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -80,6 +83,9 @@ __INFINI_C infiniStatus_t infiniopGetHistcWorkspaceSize(infiniopHistcDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopHistc( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -151,6 +160,9 @@ infiniopDestroyHistcDescriptor(infiniopHistcDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/huber_loss/operator.cc b/src/infiniop/ops/huber_loss/operator.cc index beb0237de..2700d7415 100644 --- a/src/infiniop/ops/huber_loss/operator.cc +++ b/src/infiniop/ops/huber_loss/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/huber_loss_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/huber_loss_metax.h" #endif @@ -59,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopCreateHuberLossDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -97,6 +100,9 @@ __INFINI_C infiniStatus_t infiniopGetHuberLossWorkspaceSize(infiniopHuberLossDes #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -142,6 +148,9 @@ __INFINI_C infiniStatus_t infiniopHuberLoss( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -177,6 +186,9 @@ __INFINI_C infiniStatus_t infiniopDestroyHuberLossDescriptor(infiniopHuberLossDe #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/hypot/operator.cc b/src/infiniop/ops/hypot/operator.cc index 53f82b8ef..484d726ed 100644 --- a/src/infiniop/ops/hypot/operator.cc +++ b/src/infiniop/ops/hypot/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/hypot_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/hypot_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -49,6 +49,9 @@ __INFINI_C infiniStatus_t infiniopCreateHypotDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -87,6 +90,9 @@ __INFINI_C infiniStatus_t infiniopGetHypotWorkspaceSize(infiniopHypotDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API GET(INFINI_DEVICE_HYGON, nvidia); #endif @@ -128,6 +134,9 @@ __INFINI_C infiniStatus_t infiniopHypot( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API CALCULATE(INFINI_DEVICE_HYGON, nvidia); #endif @@ -163,6 +172,9 @@ __INFINI_C infiniStatus_t infiniopDestroyHypotDescriptor(infiniopHypotDescriptor #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_HYGON_API DELETE(INFINI_DEVICE_HYGON, nvidia); #endif diff --git a/src/infiniop/ops/index_add/operator.cc b/src/infiniop/ops/index_add/operator.cc index f655628fa..97bd78b42 100644 --- a/src/infiniop/ops/index_add/operator.cc +++ b/src/infiniop/ops/index_add/operator.cc @@ -9,7 +9,7 @@ #include "nvidia/index_add_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/index_add_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -56,6 +56,9 @@ __INFINI_C infiniStatus_t infiniopCreateIndexAddDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -92,6 +95,9 @@ __INFINI_C infiniStatus_t infiniopGetIndexAddWorkspaceSize(infiniopIndexAddDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif // 【关键修复】启用 Moore 分支 #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); @@ -137,6 +143,9 @@ __INFINI_C infiniStatus_t infiniopIndexAdd( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif // 【关键修复】启用 Moore 分支 #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); @@ -174,6 +183,9 @@ __INFINI_C infiniStatus_t infiniopDestroyIndexAddDescriptor(infiniopIndexAddDesc #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/index_copy/operator.cc b/src/infiniop/ops/index_copy/operator.cc index 97d078da4..4d097656f 100644 --- a/src/infiniop/ops/index_copy/operator.cc +++ b/src/infiniop/ops/index_copy/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/index_copy_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/index_copy_metax.h" #endif @@ -59,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopCreateIndexCopyDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -97,6 +100,9 @@ __INFINI_C infiniStatus_t infiniopGetIndexCopyWorkspaceSize(infiniopIndexCopyDes #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -143,6 +149,9 @@ __INFINI_C infiniStatus_t infiniopIndexCopy( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -181,6 +190,9 @@ __INFINI_C infiniStatus_t infiniopDestroyIndexCopyDescriptor(infiniopIndexCopyDe #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/inner/operator.cc b/src/infiniop/ops/inner/operator.cc index 54ed677c2..50d438d21 100644 --- a/src/infiniop/ops/inner/operator.cc +++ b/src/infiniop/ops/inner/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/inner_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/inner_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -47,6 +47,9 @@ __INFINI_C infiniStatus_t infiniopCreateInnerDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore) #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetInnerWorkspaceSize(infiniopInnerDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -113,6 +119,9 @@ __INFINI_C infiniStatus_t infiniopInner( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore) #endif @@ -143,6 +152,9 @@ __INFINI_C infiniStatus_t infiniopDestroyInnerDescriptor(infiniopInnerDescriptor #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore) #endif diff --git a/src/infiniop/ops/interpolate/operator.cc b/src/infiniop/ops/interpolate/operator.cc index 0197f8cbe..876bffd5d 100644 --- a/src/infiniop/ops/interpolate/operator.cc +++ b/src/infiniop/ops/interpolate/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/interpolate_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/interpolate_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -51,6 +51,9 @@ __INFINI_C infiniStatus_t infiniopCreateInterpolateDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -85,6 +88,9 @@ __INFINI_C infiniStatus_t infiniopGetInterpolateWorkspaceSize(infiniopInterpolat #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -126,6 +132,9 @@ __INFINI_C infiniStatus_t infiniopInterpolate( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -162,6 +171,9 @@ infiniopDestroyInterpolateDescriptor(infiniopInterpolateDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/kron/operator.cc b/src/infiniop/ops/kron/operator.cc index f803f434a..ae528c34f 100644 --- a/src/infiniop/ops/kron/operator.cc +++ b/src/infiniop/ops/kron/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/kron_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/kron_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -45,6 +45,9 @@ __INFINI_C infiniStatus_t infiniopCreateKronDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -79,6 +82,9 @@ __INFINI_C infiniStatus_t infiniopGetKronWorkspaceSize(infiniopKronDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -121,6 +127,9 @@ __INFINI_C infiniStatus_t infiniopKron( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -157,6 +166,9 @@ infiniopDestroyKronDescriptor(infiniopKronDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/kthvalue/operator.cc b/src/infiniop/ops/kthvalue/operator.cc index 094d0a1e9..dfd17fb01 100644 --- a/src/infiniop/ops/kthvalue/operator.cc +++ b/src/infiniop/ops/kthvalue/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/kthvalue_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/kthvalue_metax.h" #endif @@ -61,6 +61,9 @@ __INFINI_C infiniStatus_t infiniopCreateKthvalueDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -99,6 +102,9 @@ __INFINI_C infiniStatus_t infiniopGetKthvalueWorkspaceSize(infiniopKthvalueDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -144,6 +150,9 @@ __INFINI_C infiniStatus_t infiniopKthvalue( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -182,6 +191,9 @@ __INFINI_C infiniStatus_t infiniopDestroyKthvalueDescriptor(infiniopKthvalueDesc #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/kv_caching/operator.cc b/src/infiniop/ops/kv_caching/operator.cc index e83bb1240..cf56b2906 100644 --- a/src/infiniop/ops/kv_caching/operator.cc +++ b/src/infiniop/ops/kv_caching/operator.cc @@ -5,7 +5,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/kv_caching_nvidia.cuh" #endif -#if defined(ENABLE_METAX_API) +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/kv_caching_metax.h" #endif @@ -49,6 +49,9 @@ __INFINI_C infiniStatus_t infiniopCreateKVCachingDescriptor( #if defined(ENABLE_METAX_API) CREATE(INFINI_DEVICE_METAX, metax); #endif +#if defined(ENABLE_MARS_API) + CREATE(INFINI_DEVICE_MARS, metax); +#endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -87,6 +90,9 @@ __INFINI_C infiniStatus_t infiniopGetKVCachingWorkspaceSize( #if defined(ENABLE_METAX_API) GET_SIZE(INFINI_DEVICE_METAX, metax); #endif +#if defined(ENABLE_MARS_API) + GET_SIZE(INFINI_DEVICE_MARS, metax); +#endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -131,6 +137,9 @@ __INFINI_C infiniStatus_t infiniopKVCaching( #if defined(ENABLE_METAX_API) CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#if defined(ENABLE_MARS_API) + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; @@ -167,6 +176,9 @@ __INFINI_C infiniStatus_t infiniopDestroyKVCachingDescriptor( #if defined(ENABLE_METAX_API) DELETE(INFINI_DEVICE_METAX, metax); #endif +#if defined(ENABLE_MARS_API) + DELETE(INFINI_DEVICE_MARS, metax); +#endif default: return INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED; diff --git a/src/infiniop/ops/layer_norm/operator.cc b/src/infiniop/ops/layer_norm/operator.cc index 3925e845a..bac74e300 100644 --- a/src/infiniop/ops/layer_norm/operator.cc +++ b/src/infiniop/ops/layer_norm/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/layer_norm_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/layer_norm_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -64,6 +64,9 @@ __INFINI_C infiniStatus_t infiniopCreateLayerNormDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -106,6 +109,9 @@ __INFINI_C infiniStatus_t infiniopGetLayerNormWorkspaceSize(infiniopLayerNormDes #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -168,6 +174,9 @@ __INFINI_C infiniStatus_t infiniopLayerNorm( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -210,6 +219,9 @@ infiniopDestroyLayerNormDescriptor(infiniopLayerNormDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/ldexp/operator.cc b/src/infiniop/ops/ldexp/operator.cc index 32e6074b8..fd6d3e77f 100644 --- a/src/infiniop/ops/ldexp/operator.cc +++ b/src/infiniop/ops/ldexp/operator.cc @@ -11,7 +11,7 @@ #include "nvidia/ldexp_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/ldexp_metax.h" #endif @@ -56,6 +56,9 @@ __INFINI_C infiniStatus_t infiniopCreateLdexpDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -94,6 +97,9 @@ __INFINI_C infiniStatus_t infiniopGetLdexpWorkspaceSize(infiniopLdexpDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -139,6 +145,9 @@ __INFINI_C infiniStatus_t infiniopLdexp( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -177,6 +186,9 @@ __INFINI_C infiniStatus_t infiniopDestroyLdexpDescriptor(infiniopLdexpDescriptor #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/lerp/operator.cc b/src/infiniop/ops/lerp/operator.cc index 8c8ed13b3..2f9b84098 100644 --- a/src/infiniop/ops/lerp/operator.cc +++ b/src/infiniop/ops/lerp/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/lerp_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/lerp_metax.h" #endif @@ -59,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopCreateLerpDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -100,6 +103,9 @@ __INFINI_C infiniStatus_t infiniopGetLerpWorkspaceSize(infiniopLerpDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -149,6 +155,9 @@ __INFINI_C infiniStatus_t infiniopLerp( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -190,6 +199,9 @@ __INFINI_C infiniStatus_t infiniopDestroyLerpDescriptor(infiniopLerpDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/log10/operator.cc b/src/infiniop/ops/log10/operator.cc index 03f52a8e2..00f3bcd3f 100644 --- a/src/infiniop/ops/log10/operator.cc +++ b/src/infiniop/ops/log10/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/log10_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/log10_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateLog10Descriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetLog10WorkspaceSize(infiniopLog10Descriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopLog10( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyLog10Descriptor(infiniopLog10Descriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/log1p/operator.cc b/src/infiniop/ops/log1p/operator.cc index 2e68ce7ad..afc663611 100644 --- a/src/infiniop/ops/log1p/operator.cc +++ b/src/infiniop/ops/log1p/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/log1p_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/log1p_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateLog1pDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetLog1pWorkspaceSize(infiniopLog1pDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopLog1p( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyLog1pDescriptor(infiniopLog1pDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/log_softmax/operator.cc b/src/infiniop/ops/log_softmax/operator.cc index 894ce34dd..919d845ac 100644 --- a/src/infiniop/ops/log_softmax/operator.cc +++ b/src/infiniop/ops/log_softmax/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/log_softmax_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/log_softmax_metax.h" #endif @@ -55,6 +55,9 @@ __INFINI_C infiniStatus_t infiniopCreateLogSoftmaxDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -93,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopGetLogSoftmaxWorkspaceSize(infiniopLogSoftmaxD #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -137,6 +143,9 @@ __INFINI_C infiniStatus_t infiniopLogSoftmax( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -175,6 +184,9 @@ __INFINI_C infiniStatus_t infiniopDestroyLogSoftmaxDescriptor(infiniopLogSoftmax #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/logaddexp/operator.cc b/src/infiniop/ops/logaddexp/operator.cc index c7ce3bc9f..43627b0ab 100644 --- a/src/infiniop/ops/logaddexp/operator.cc +++ b/src/infiniop/ops/logaddexp/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/logaddexp_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/logaddexp_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateLogAddExpDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -91,6 +94,9 @@ __INFINI_C infiniStatus_t infiniopGetLogAddExpWorkspaceSize(infiniopLogAddExpDes #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -136,6 +142,9 @@ __INFINI_C infiniStatus_t infiniopLogAddExp( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -174,6 +183,9 @@ __INFINI_C infiniStatus_t infiniopDestroyLogAddExpDescriptor(infiniopLogAddExpDe #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/logaddexp2/operator.cc b/src/infiniop/ops/logaddexp2/operator.cc index 6962c574d..b3d7dd1d3 100644 --- a/src/infiniop/ops/logaddexp2/operator.cc +++ b/src/infiniop/ops/logaddexp2/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/logaddexp2_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/logaddexp2_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateLogAddExp2Descriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -91,6 +94,9 @@ __INFINI_C infiniStatus_t infiniopGetLogAddExp2WorkspaceSize(infiniopLogAddExp2D #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -136,6 +142,9 @@ __INFINI_C infiniStatus_t infiniopLogAddExp2( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -174,6 +183,9 @@ __INFINI_C infiniStatus_t infiniopDestroyLogAddExp2Descriptor(infiniopLogAddExp2 #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/logcumsumexp/operator.cc b/src/infiniop/ops/logcumsumexp/operator.cc index 9a699e905..0ecd56fbd 100644 --- a/src/infiniop/ops/logcumsumexp/operator.cc +++ b/src/infiniop/ops/logcumsumexp/operator.cc @@ -11,7 +11,7 @@ #include "nvidia/logcumsumexp_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/logcumsumexp_metax.h" #endif @@ -60,6 +60,9 @@ __INFINI_C infiniStatus_t infiniopCreateLogCumSumExpDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -98,6 +101,9 @@ __INFINI_C infiniStatus_t infiniopGetLogCumSumExpWorkspaceSize(infiniopLogCumSum #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -142,6 +148,9 @@ __INFINI_C infiniStatus_t infiniopLogCumSumExp( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -180,6 +189,9 @@ __INFINI_C infiniStatus_t infiniopDestroyLogCumSumExpDescriptor(infiniopLogCumSu #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/logdet/operator.cc b/src/infiniop/ops/logdet/operator.cc index ae7a5804d..730635927 100644 --- a/src/infiniop/ops/logdet/operator.cc +++ b/src/infiniop/ops/logdet/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/logdet_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/logdet_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateLogdetDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetLogdetWorkspaceSize(infiniopLogdetDescripto #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopLogdet( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyLogdetDescriptor(infiniopLogdetDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/masked_select/operator.cc b/src/infiniop/ops/masked_select/operator.cc index f379565c1..e1188aca1 100644 --- a/src/infiniop/ops/masked_select/operator.cc +++ b/src/infiniop/ops/masked_select/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/masked_select_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/masked_select_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -45,6 +45,9 @@ __INFINI_C infiniStatus_t infiniopCreateMaskedSelectDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore) #endif @@ -75,6 +78,9 @@ __INFINI_C infiniStatus_t infiniopGetMaskedSelectWorkspaceSize(infiniopMaskedSel #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -112,6 +118,9 @@ __INFINI_C infiniStatus_t infiniopMaskedSelect( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore) #endif @@ -142,6 +151,9 @@ __INFINI_C infiniStatus_t infiniopDestroyMaskedSelectDescriptor(infiniopMaskedSe #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore) #endif diff --git a/src/infiniop/ops/matrix_power/operator.cc b/src/infiniop/ops/matrix_power/operator.cc index f2933dcb7..1cf993784 100644 --- a/src/infiniop/ops/matrix_power/operator.cc +++ b/src/infiniop/ops/matrix_power/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/matrix_power_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/matrix_power_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -45,6 +45,9 @@ __INFINI_C __export infiniStatus_t infiniopCreateMatrixPowerDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -79,6 +82,9 @@ __INFINI_C __export infiniStatus_t infiniopGetMatrixPowerWorkspaceSize(infiniopM #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -120,6 +126,9 @@ __INFINI_C __export infiniStatus_t infiniopMatrixPower( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -156,6 +165,9 @@ infiniopDestroyMatrixPowerDescriptor(infiniopMatrixPowerDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/mul/operator.cc b/src/infiniop/ops/mul/operator.cc index 33f4e0c88..c8022fecc 100644 --- a/src/infiniop/ops/mul/operator.cc +++ b/src/infiniop/ops/mul/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/mul_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/mul_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -54,6 +54,9 @@ __INFINI_C infiniStatus_t infiniopCreateMulDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CREATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -97,6 +100,9 @@ __INFINI_C infiniStatus_t infiniopGetMulWorkspaceSize(infiniopMulDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -149,6 +155,9 @@ __INFINI_C infiniStatus_t infiniopMul( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -194,6 +203,9 @@ infiniopDestroyMulDescriptor(infiniopMulDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DELETE(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/multi_margin_loss/operator.cc b/src/infiniop/ops/multi_margin_loss/operator.cc index 3c443ee30..e594ada56 100644 --- a/src/infiniop/ops/multi_margin_loss/operator.cc +++ b/src/infiniop/ops/multi_margin_loss/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/multi_margin_loss_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/multi_margin_loss_metax.h" #endif @@ -63,6 +63,9 @@ __INFINI_C infiniStatus_t infiniopCreateMultiMarginLossDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -101,6 +104,9 @@ __INFINI_C infiniStatus_t infiniopGetMultiMarginLossWorkspaceSize(infiniopMultiM #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -147,6 +153,9 @@ __INFINI_C infiniStatus_t infiniopMultiMarginLoss( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -181,6 +190,9 @@ __INFINI_C infiniStatus_t infiniopDestroyMultiMarginLossDescriptor(infiniopMulti #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/nrm2/operator.cc b/src/infiniop/ops/nrm2/operator.cc index d1ecfa2bb..3afb695b1 100644 --- a/src/infiniop/ops/nrm2/operator.cc +++ b/src/infiniop/ops/nrm2/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/nrm2_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/nrm2_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -32,6 +32,9 @@ __INFINI_C infiniStatus_t infiniopCreateNrm2Descriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -56,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopGetNrm2WorkspaceSize(infiniopNrm2Descriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -86,6 +92,9 @@ __INFINI_C infiniStatus_t infiniopNrm2( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -110,6 +119,9 @@ __INFINI_C infiniStatus_t infiniopDestroyNrm2Descriptor(infiniopNrm2Descriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/ones/operator.cc b/src/infiniop/ops/ones/operator.cc index 934f03dd8..801348bbb 100644 --- a/src/infiniop/ops/ones/operator.cc +++ b/src/infiniop/ops/ones/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/ones_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/ones_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateOnesDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -86,6 +89,9 @@ __INFINI_C infiniStatus_t infiniopGetOnesWorkspaceSize(infiniopOnesDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -134,6 +140,9 @@ __INFINI_C infiniStatus_t infiniopOnes( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -176,6 +185,9 @@ infiniopDestroyOnesDescriptor(infiniopOnesDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/pad/operator.cc b/src/infiniop/ops/pad/operator.cc index 246531317..33cf392d4 100644 --- a/src/infiniop/ops/pad/operator.cc +++ b/src/infiniop/ops/pad/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) || defined(ENABLE_ALI_API) #include "nvidia/pad_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/pad_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -60,6 +60,9 @@ __INFINI_C infiniStatus_t infiniopCreatePadDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -100,6 +103,9 @@ __INFINI_C infiniStatus_t infiniopGetPadWorkspaceSize(infiniopPadDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -147,6 +153,9 @@ __INFINI_C infiniStatus_t infiniopPad( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -189,6 +198,9 @@ infiniopDestroyPadDescriptor(infiniopPadDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/paged_attention/operator.cc b/src/infiniop/ops/paged_attention/operator.cc index 3c3cce9f9..c8ea18198 100644 --- a/src/infiniop/ops/paged_attention/operator.cc +++ b/src/infiniop/ops/paged_attention/operator.cc @@ -8,7 +8,7 @@ #ifdef ENABLE_MOORE_API #include "moore/paged_attention_moore.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/paged_attention_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreatePagedAttentionDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API CREATE(INFINI_DEVICE_ALI, nvidia) #endif @@ -85,6 +88,9 @@ __INFINI_C infiniStatus_t infiniopGetPagedAttentionWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API GET(INFINI_DEVICE_ALI, nvidia) #endif @@ -128,6 +134,9 @@ __INFINI_C infiniStatus_t infiniopPagedAttention( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API CALCULATE(INFINI_DEVICE_ALI, nvidia) #endif @@ -166,6 +175,9 @@ __INFINI_C infiniStatus_t infiniopDestroyPagedAttentionDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API DESTROY(INFINI_DEVICE_ALI, nvidia) #endif diff --git a/src/infiniop/ops/paged_attention_prefill/operator.cc b/src/infiniop/ops/paged_attention_prefill/operator.cc index bd06d36ca..066d75bc7 100644 --- a/src/infiniop/ops/paged_attention_prefill/operator.cc +++ b/src/infiniop/ops/paged_attention_prefill/operator.cc @@ -5,7 +5,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ALI_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/paged_attention_prefill_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/paged_attention_prefill_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -48,6 +48,9 @@ __INFINI_C infiniStatus_t infiniopCreatePagedAttentionPrefillDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API CREATE(INFINI_DEVICE_ALI, nvidia) #endif @@ -87,6 +90,9 @@ __INFINI_C infiniStatus_t infiniopGetPagedAttentionPrefillWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API GET(INFINI_DEVICE_ALI, nvidia) #endif @@ -133,6 +139,9 @@ __INFINI_C infiniStatus_t infiniopPagedAttentionPrefill( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API CALCULATE(INFINI_DEVICE_ALI, nvidia) #endif @@ -171,6 +180,9 @@ __INFINI_C infiniStatus_t infiniopDestroyPagedAttentionPrefillDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API DESTROY(INFINI_DEVICE_ALI, nvidia) #endif diff --git a/src/infiniop/ops/paged_caching/operator.cc b/src/infiniop/ops/paged_caching/operator.cc index a32b97669..9d5f87bac 100644 --- a/src/infiniop/ops/paged_caching/operator.cc +++ b/src/infiniop/ops/paged_caching/operator.cc @@ -5,7 +5,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ALI_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) || defined(ENABLE_QY_API) #include "nvidia/paged_caching_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/paged_caching_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -41,6 +41,9 @@ __INFINI_C infiniStatus_t infiniopCreatePagedCachingDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API CREATE(INFINI_DEVICE_ALI, nvidia) #endif @@ -83,6 +86,9 @@ __INFINI_C infiniStatus_t infiniopGetPagedCachingWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API GET(INFINI_DEVICE_ALI, nvidia) #endif @@ -129,6 +135,9 @@ __INFINI_C infiniStatus_t infiniopPagedCaching( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API CALCULATE(INFINI_DEVICE_ALI, nvidia) #endif @@ -170,6 +179,9 @@ __INFINI_C infiniStatus_t infiniopDestroyPagedCachingDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_ALI_API DESTROY(INFINI_DEVICE_ALI, nvidia) #endif diff --git a/src/infiniop/ops/pixel_shuffle/operator.cc b/src/infiniop/ops/pixel_shuffle/operator.cc index 2eb8f89e7..21e36e9a9 100644 --- a/src/infiniop/ops/pixel_shuffle/operator.cc +++ b/src/infiniop/ops/pixel_shuffle/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/pixel_shuffle_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/pixel_shuffle_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -45,6 +45,9 @@ __INFINI_C __export infiniStatus_t infiniopCreatePixelShuffleDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -79,6 +82,9 @@ __INFINI_C __export infiniStatus_t infiniopGetPixelShuffleWorkspaceSize(infiniop #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -120,6 +126,9 @@ __INFINI_C __export infiniStatus_t infiniopPixelShuffle( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -156,6 +165,9 @@ infiniopDestroyPixelShuffleDescriptor(infiniopPixelShuffleDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/prelu/operator.cc b/src/infiniop/ops/prelu/operator.cc index 7b87d0020..f108511e6 100644 --- a/src/infiniop/ops/prelu/operator.cc +++ b/src/infiniop/ops/prelu/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/prelu_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/prelu_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -44,6 +44,9 @@ __INFINI_C infiniStatus_t infiniopCreatePreluDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -78,6 +81,9 @@ __INFINI_C infiniStatus_t infiniopGetPreluWorkspaceSize(infiniopPreluDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -120,6 +126,9 @@ __INFINI_C infiniStatus_t infiniopPrelu( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -156,6 +165,9 @@ infiniopDestroyPreluDescriptor(infiniopPreluDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/random_sample/operator.cc b/src/infiniop/ops/random_sample/operator.cc index b09e56b2a..58628d0f4 100644 --- a/src/infiniop/ops/random_sample/operator.cc +++ b/src/infiniop/ops/random_sample/operator.cc @@ -11,7 +11,7 @@ #ifdef ENABLE_CAMBRICON_API #include "bang/random_sample_bang.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/random_sample_metax.h" #endif #ifdef ENABLE_ASCEND_API @@ -65,6 +65,9 @@ infiniopCreateRandomSampleDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ASCEND_API CREATE(INFINI_DEVICE_ASCEND, ascend); #endif @@ -119,6 +122,9 @@ __INFINI_C infiniStatus_t infiniopGetRandomSampleWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ASCEND_API GET(INFINI_DEVICE_ASCEND, ascend); #endif @@ -183,6 +189,9 @@ __INFINI_C infiniStatus_t infiniopRandomSample( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ASCEND_API CALCULATE(INFINI_DEVICE_ASCEND, ascend); #endif @@ -234,6 +243,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRandomSampleDescriptor( #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ASCEND_API DELETE(INFINI_DEVICE_ASCEND, ascend); #endif diff --git a/src/infiniop/ops/rearrange/operator.cc b/src/infiniop/ops/rearrange/operator.cc index f1828c807..6e0242141 100644 --- a/src/infiniop/ops/rearrange/operator.cc +++ b/src/infiniop/ops/rearrange/operator.cc @@ -14,7 +14,7 @@ #ifdef ENABLE_CAMBRICON_API #include "bang/rearrange_bang.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/rearrange_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -67,6 +67,9 @@ __INFINI_C infiniStatus_t infiniopCreateRearrangeDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -120,6 +123,9 @@ __INFINI_C infiniStatus_t infiniopRearrange( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -171,6 +177,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRearrangeDescriptor( #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/reciprocal/operator.cc b/src/infiniop/ops/reciprocal/operator.cc index a4730a44f..db6e848df 100644 --- a/src/infiniop/ops/reciprocal/operator.cc +++ b/src/infiniop/ops/reciprocal/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/reciprocal_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/reciprocal_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateReciprocalDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -86,6 +89,9 @@ __INFINI_C infiniStatus_t infiniopGetReciprocalWorkspaceSize(infiniopReciprocalD #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -130,6 +136,9 @@ __INFINI_C infiniStatus_t infiniopReciprocal( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -169,6 +178,9 @@ infiniopDestroyReciprocalDescriptor(infiniopReciprocalDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/recurrent_gated_delta_rule/operator.cc b/src/infiniop/ops/recurrent_gated_delta_rule/operator.cc index fc272fdf9..aeae19e1c 100644 --- a/src/infiniop/ops/recurrent_gated_delta_rule/operator.cc +++ b/src/infiniop/ops/recurrent_gated_delta_rule/operator.cc @@ -7,7 +7,7 @@ #if defined(ENABLE_NVIDIA_API) #include "nvidia/recurrent_gated_delta_rule_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/recurrent_gated_delta_rule_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateRecurrentGatedDeltaRuleDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore) #endif @@ -72,6 +75,9 @@ __INFINI_C infiniStatus_t infiniopGetRecurrentGatedDeltaRuleWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -106,6 +112,9 @@ __INFINI_C infiniStatus_t infiniopRecurrentGatedDeltaRule( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore) #endif @@ -131,6 +140,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRecurrentGatedDeltaRuleDescriptor( #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore) #endif diff --git a/src/infiniop/ops/relu/operator.cc b/src/infiniop/ops/relu/operator.cc index 59b6f8ada..8d00233f7 100644 --- a/src/infiniop/ops/relu/operator.cc +++ b/src/infiniop/ops/relu/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/relu_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #ifdef ENABLE_NINETOOTHED #include "metax/relu_metax.h" #endif @@ -50,6 +50,11 @@ __INFINI_C infiniStatus_t infiniopCreateReluDescriptor( CREATE(INFINI_DEVICE_METAX, metax); #endif #endif +#ifdef ENABLE_MARS_API +#ifdef ENABLE_NINETOOTHED + CREATE(INFINI_DEVICE_MARS, metax); +#endif +#endif #ifdef ENABLE_ALI_API CREATE(INFINI_DEVICE_ALI, nvidia); #endif @@ -89,6 +94,11 @@ __INFINI_C infiniStatus_t infiniopGetReluWorkspaceSize(infiniopReluDescriptor_t GET(INFINI_DEVICE_METAX, metax) #endif #endif +#ifdef ENABLE_MARS_API +#ifdef ENABLE_NINETOOTHED + GET(INFINI_DEVICE_MARS, metax) +#endif +#endif #ifdef ENABLE_ALI_API GET(INFINI_DEVICE_ALI, nvidia); #endif @@ -136,6 +146,11 @@ __INFINI_C infiniStatus_t infiniopRelu( CALCULATE(INFINI_DEVICE_METAX, metax); #endif #endif +#ifdef ENABLE_MARS_API +#ifdef ENABLE_NINETOOTHED + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif +#endif #ifdef ENABLE_ALI_API CALCULATE(INFINI_DEVICE_ALI, nvidia); #endif @@ -177,6 +192,11 @@ infiniopDestroyReluDescriptor(infiniopReluDescriptor_t desc) { DELETE(INFINI_DEVICE_METAX, metax); #endif #endif +#ifdef ENABLE_MARS_API +#ifdef ENABLE_NINETOOTHED + DELETE(INFINI_DEVICE_MARS, metax); +#endif +#endif #ifdef ENABLE_ALI_API DELETE(INFINI_DEVICE_ALI, nvidia); #endif diff --git a/src/infiniop/ops/relu6/operator.cc b/src/infiniop/ops/relu6/operator.cc index 0767e904e..209cad391 100644 --- a/src/infiniop/ops/relu6/operator.cc +++ b/src/infiniop/ops/relu6/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/relu6_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/relu6_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateRelu6Descriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetRelu6WorkspaceSize(infiniopRelu6Descriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopRelu6( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroyRelu6Descriptor(infiniopRelu6Descriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/rms_norm/operator.cc b/src/infiniop/ops/rms_norm/operator.cc index 63bf27eb6..2bd8ca2c0 100644 --- a/src/infiniop/ops/rms_norm/operator.cc +++ b/src/infiniop/ops/rms_norm/operator.cc @@ -14,7 +14,7 @@ #ifdef ENABLE_CAMBRICON_API #include "bang/rms_norm_bang.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/rms_norm_metax.cuh" #endif #ifdef ENABLE_MOORE_API @@ -73,6 +73,9 @@ __INFINI_C infiniStatus_t infiniopCreateRMSNormDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -121,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopGetRMSNormWorkspaceSize(infiniopRMSNormDescrip #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -170,6 +176,9 @@ __INFINI_C infiniStatus_t infiniopRMSNorm(infiniopRMSNormDescriptor_t desc, void #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -218,6 +227,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRMSNormDescriptor(infiniopRMSNormDescri #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/rope/operator.cc b/src/infiniop/ops/rope/operator.cc index ad3196092..9afb88e2d 100644 --- a/src/infiniop/ops/rope/operator.cc +++ b/src/infiniop/ops/rope/operator.cc @@ -14,7 +14,7 @@ #ifdef ENABLE_CAMBRICON_API #include "bang/rope_bang.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/rope_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -71,6 +71,9 @@ __INFINI_C infiniStatus_t infiniopCreateRoPEDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_ASCEND_API CREATE(INFINI_DEVICE_ASCEND, ascend); #endif @@ -119,6 +122,9 @@ __INFINI_C infiniStatus_t infiniopGetRoPEWorkspaceSize(infiniopRoPEDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -176,6 +182,9 @@ __INFINI_C infiniStatus_t infiniopRoPE( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -225,6 +234,9 @@ infiniopDestroyRoPEDescriptor(infiniopRoPEDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DELETE(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/rot/operator.cc b/src/infiniop/ops/rot/operator.cc index 6c1345d7a..238d4d9ac 100644 --- a/src/infiniop/ops/rot/operator.cc +++ b/src/infiniop/ops/rot/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/rot_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/rot_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -37,6 +37,9 @@ __INFINI_C infiniStatus_t infiniopCreateRotDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -61,6 +64,9 @@ __INFINI_C infiniStatus_t infiniopGetRotWorkspaceSize(infiniopRotDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -93,6 +99,9 @@ __INFINI_C infiniStatus_t infiniopRot( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -117,6 +126,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRotDescriptor(infiniopRotDescriptor_t d #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/rotg/operator.cc b/src/infiniop/ops/rotg/operator.cc index 0fa83d664..31a1e01e2 100644 --- a/src/infiniop/ops/rotg/operator.cc +++ b/src/infiniop/ops/rotg/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/rotg_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/rotg_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -34,6 +34,9 @@ __INFINI_C infiniStatus_t infiniopCreateRotgDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -58,6 +61,9 @@ __INFINI_C infiniStatus_t infiniopGetRotgWorkspaceSize(infiniopRotgDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -90,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopRotg( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -114,6 +123,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRotgDescriptor(infiniopRotgDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/rotm/operator.cc b/src/infiniop/ops/rotm/operator.cc index fcfe2060c..35e2860e6 100644 --- a/src/infiniop/ops/rotm/operator.cc +++ b/src/infiniop/ops/rotm/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/rotm_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/rotm_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -34,6 +34,9 @@ __INFINI_C infiniStatus_t infiniopCreateRotmDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -59,6 +62,9 @@ __INFINI_C infiniStatus_t infiniopGetRotmWorkspaceSize(infiniopRotmDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -91,6 +97,9 @@ __INFINI_C infiniStatus_t infiniopRotm( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -117,6 +126,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRotmDescriptor(infiniopRotmDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/rotmg/operator.cc b/src/infiniop/ops/rotmg/operator.cc index 98c25bd5b..54aa474cc 100644 --- a/src/infiniop/ops/rotmg/operator.cc +++ b/src/infiniop/ops/rotmg/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/rotmg_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/rotmg_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -35,6 +35,9 @@ __INFINI_C infiniStatus_t infiniopCreateRotmgDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -59,6 +62,9 @@ __INFINI_C infiniStatus_t infiniopGetRotmgWorkspaceSize(infiniopRotmgDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -92,6 +98,9 @@ __INFINI_C infiniStatus_t infiniopRotmg( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -116,6 +125,9 @@ __INFINI_C infiniStatus_t infiniopDestroyRotmgDescriptor(infiniopRotmgDescriptor #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/scal/operator.cc b/src/infiniop/ops/scal/operator.cc index 33fa8618a..451cfb11d 100644 --- a/src/infiniop/ops/scal/operator.cc +++ b/src/infiniop/ops/scal/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/scal_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/scal_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -32,6 +32,9 @@ __INFINI_C infiniStatus_t infiniopCreateScalDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -56,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopGetScalWorkspaceSize(infiniopScalDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -86,6 +92,9 @@ __INFINI_C infiniStatus_t infiniopScal( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -110,6 +119,9 @@ __INFINI_C infiniStatus_t infiniopDestroyScalDescriptor(infiniopScalDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/scatter/operator.cc b/src/infiniop/ops/scatter/operator.cc index 30fa1cf1f..23fb0b755 100644 --- a/src/infiniop/ops/scatter/operator.cc +++ b/src/infiniop/ops/scatter/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/scatter_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/scatter_metax.h" #endif @@ -61,6 +61,9 @@ __INFINI_C infiniStatus_t infiniopCreateScatterDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -99,6 +102,9 @@ __INFINI_C infiniStatus_t infiniopGetScatterWorkspaceSize(infiniopScatterDescrip #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -145,6 +151,9 @@ __INFINI_C infiniStatus_t infiniopScatter( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -183,6 +192,9 @@ __INFINI_C infiniStatus_t infiniopDestroyScatterDescriptor(infiniopScatterDescri #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/selu/operator.cc b/src/infiniop/ops/selu/operator.cc index 3558b04d5..b2f3ef6a3 100644 --- a/src/infiniop/ops/selu/operator.cc +++ b/src/infiniop/ops/selu/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/selu_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/selu_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateSeluDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetSeluWorkspaceSize(infiniopSeluDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopSelu( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroySeluDescriptor(infiniopSeluDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/silu/operator.cc b/src/infiniop/ops/silu/operator.cc index 602d5d178..f41164948 100644 --- a/src/infiniop/ops/silu/operator.cc +++ b/src/infiniop/ops/silu/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/silu_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/silu_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateSiluDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -80,6 +83,9 @@ __INFINI_C infiniStatus_t infiniopGetSiluWorkspaceSize(infiniopSiluDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -125,6 +131,9 @@ __INFINI_C infiniStatus_t infiniopSilu( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -164,6 +173,9 @@ infiniopDestroySiluDescriptor(infiniopSiluDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/sinh/operator.cc b/src/infiniop/ops/sinh/operator.cc index 9df60758f..6b5889a97 100644 --- a/src/infiniop/ops/sinh/operator.cc +++ b/src/infiniop/ops/sinh/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/sinh_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/sinh_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -43,6 +43,9 @@ __INFINI_C infiniStatus_t infiniopCreateSinhDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -77,6 +80,9 @@ __INFINI_C infiniStatus_t infiniopGetSinhWorkspaceSize(infiniopSinhDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax) #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax) +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore) #endif @@ -118,6 +124,9 @@ __INFINI_C infiniStatus_t infiniopSinh( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -154,6 +163,9 @@ infiniopDestroySinhDescriptor(infiniopSinhDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/smooth_l1_loss/operator.cc b/src/infiniop/ops/smooth_l1_loss/operator.cc index 75a66fdc5..10c98d058 100644 --- a/src/infiniop/ops/smooth_l1_loss/operator.cc +++ b/src/infiniop/ops/smooth_l1_loss/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/smooth_l1_loss_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/smooth_l1_loss_metax.h" #endif @@ -59,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopCreateSmoothL1LossDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -97,6 +100,9 @@ __INFINI_C infiniStatus_t infiniopGetSmoothL1LossWorkspaceSize(infiniopSmoothL1L #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -142,6 +148,9 @@ __INFINI_C infiniStatus_t infiniopSmoothL1Loss( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -180,6 +189,9 @@ __INFINI_C infiniStatus_t infiniopDestroySmoothL1LossDescriptor(infiniopSmoothL1 #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/softplus/operator.cc b/src/infiniop/ops/softplus/operator.cc index edaa5f546..e42230aa2 100644 --- a/src/infiniop/ops/softplus/operator.cc +++ b/src/infiniop/ops/softplus/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/softplus_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/softplus_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateSoftplusDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CREATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -95,6 +98,9 @@ __INFINI_C infiniStatus_t infiniopGetSoftplusWorkspaceSize(infiniopSoftplusDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -145,6 +151,9 @@ __INFINI_C infiniStatus_t infiniopSoftplus( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -189,6 +198,9 @@ infiniopDestroySoftplusDescriptor(infiniopSoftplusDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DELETE(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/softsign/operator.cc b/src/infiniop/ops/softsign/operator.cc index e11de375b..8ae2cc74c 100644 --- a/src/infiniop/ops/softsign/operator.cc +++ b/src/infiniop/ops/softsign/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/softsign_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/softsign_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -65,6 +65,9 @@ __INFINI_C infiniStatus_t infiniopCreateSoftsignDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -106,6 +109,9 @@ __INFINI_C infiniStatus_t infiniopGetSoftsignWorkspaceSize(infiniopSoftsignDescr #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -155,6 +161,9 @@ __INFINI_C infiniStatus_t infiniopSoftsign( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -198,6 +207,9 @@ infiniopDestroySoftsignDescriptor(infiniopSoftsignDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/sub/operator.cc b/src/infiniop/ops/sub/operator.cc index 60857b7aa..6fd0ed3e0 100644 --- a/src/infiniop/ops/sub/operator.cc +++ b/src/infiniop/ops/sub/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/sub_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/sub_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -48,6 +48,9 @@ __INFINI_C infiniStatus_t infiniopCreateSubDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CREATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -88,6 +91,9 @@ __INFINI_C infiniStatus_t infiniopGetSubWorkspaceSize(infiniopSubDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -137,6 +143,9 @@ __INFINI_C infiniStatus_t infiniopSub( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -179,6 +188,9 @@ infiniopDestroySubDescriptor(infiniopSubDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DELETE(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/sum/operator.cc b/src/infiniop/ops/sum/operator.cc index 9eb9c25f4..cb68bb094 100644 --- a/src/infiniop/ops/sum/operator.cc +++ b/src/infiniop/ops/sum/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/sum_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/sum_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -56,6 +56,9 @@ __INFINI_C infiniStatus_t infiniopCreateSumDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -93,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopGetSumWorkspaceSize(infiniopSumDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -141,6 +147,9 @@ __INFINI_C infiniStatus_t infiniopSum( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -180,6 +189,9 @@ infiniopDestroySumDescriptor(infiniopSumDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/swap/operator.cc b/src/infiniop/ops/swap/operator.cc index 22d688021..2269390be 100644 --- a/src/infiniop/ops/swap/operator.cc +++ b/src/infiniop/ops/swap/operator.cc @@ -5,7 +5,7 @@ #ifdef ENABLE_CPU_API #include "cpu/swap_cpu.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/swap_metax.h" #endif #ifdef ENABLE_CAMBRICON_API @@ -32,6 +32,9 @@ __INFINI_C infiniStatus_t infiniopCreateSwapDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -56,6 +59,9 @@ __INFINI_C infiniStatus_t infiniopGetSwapWorkspaceSize(infiniopSwapDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -86,6 +92,9 @@ __INFINI_C infiniStatus_t infiniopSwap( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -110,6 +119,9 @@ __INFINI_C infiniStatus_t infiniopDestroySwapDescriptor(infiniopSwapDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/swiglu/operator.cc b/src/infiniop/ops/swiglu/operator.cc index b43cd47dd..0f1cc2706 100644 --- a/src/infiniop/ops/swiglu/operator.cc +++ b/src/infiniop/ops/swiglu/operator.cc @@ -11,7 +11,7 @@ #ifdef ENABLE_KUNLUN_API #include "kunlun/swiglu_kunlun.h" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #if defined(ENABLE_NINETOOTHED) #include "ninetoothed/swiglu.h" #else @@ -87,6 +87,9 @@ __INFINI_C infiniStatus_t infiniopCreateSwiGLUDescriptor( CREATE_CUDA(INFINI_DEVICE_METAX, metax); #endif #endif +#ifdef ENABLE_MARS_API + CREATE_CUDA(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CREATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -151,6 +154,9 @@ __INFINI_C infiniStatus_t infiniopGetSwiGLUWorkspaceSize(infiniopSwiGLUDescripto GET_CUDA(INFINI_DEVICE_METAX, metax); #endif #endif +#ifdef ENABLE_MARS_API + GET_CUDA(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API GET(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -221,6 +227,9 @@ __INFINI_C infiniStatus_t infiniopSwiGLU( CALCULATE_CUDA(INFINI_DEVICE_METAX, metax); #endif #endif +#ifdef ENABLE_MARS_API + CALCULATE_CUDA(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API CALCULATE(INFINI_DEVICE_CAMBRICON, bang); #endif @@ -286,6 +295,9 @@ infiniopDestroySwiGLUDescriptor(infiniopSwiGLUDescriptor_t desc) { DELETE_CUDA(INFINI_DEVICE_METAX, metax); #endif #endif +#ifdef ENABLE_MARS_API + DELETE_CUDA(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_CAMBRICON_API DELETE(INFINI_DEVICE_CAMBRICON, bang); #endif diff --git a/src/infiniop/ops/take/operator.cc b/src/infiniop/ops/take/operator.cc index 90eb24660..15de317fa 100644 --- a/src/infiniop/ops/take/operator.cc +++ b/src/infiniop/ops/take/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/take_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/take_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateTakeDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -91,6 +94,9 @@ __INFINI_C infiniStatus_t infiniopGetTakeWorkspaceSize(infiniopTakeDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -135,6 +141,9 @@ __INFINI_C infiniStatus_t infiniopTake( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -173,6 +182,9 @@ __INFINI_C infiniStatus_t infiniopDestroyTakeDescriptor(infiniopTakeDescriptor_t #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/tan/operator.cc b/src/infiniop/ops/tan/operator.cc index a0ac17f16..67ee8f280 100644 --- a/src/infiniop/ops/tan/operator.cc +++ b/src/infiniop/ops/tan/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/tan_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/tan_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateTanDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -80,6 +83,9 @@ __INFINI_C infiniStatus_t infiniopGetTanWorkspaceSize(infiniopTanDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -121,6 +127,9 @@ __INFINI_C infiniStatus_t infiniopTan( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -157,6 +166,9 @@ infiniopDestroyTanDescriptor(infiniopTanDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/tanhshrink/operator.cc b/src/infiniop/ops/tanhshrink/operator.cc index a153c4feb..8ec7a0507 100644 --- a/src/infiniop/ops/tanhshrink/operator.cc +++ b/src/infiniop/ops/tanhshrink/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/tanhshrink_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/tanhshrink_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -46,6 +46,9 @@ __INFINI_C infiniStatus_t infiniopCreateTanhshrinkDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -80,6 +83,9 @@ __INFINI_C infiniStatus_t infiniopGetTanhshrinkWorkspaceSize(infiniopTanhshrinkD #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -121,6 +127,9 @@ __INFINI_C infiniStatus_t infiniopTanhshrink( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -157,6 +166,9 @@ infiniopDestroyTanhshrinkDescriptor(infiniopTanhshrinkDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/topk/cuda/kernel.cuh b/src/infiniop/ops/topk/cuda/kernel.cuh index 199ca8765..df9fade03 100644 --- a/src/infiniop/ops/topk/cuda/kernel.cuh +++ b/src/infiniop/ops/topk/cuda/kernel.cuh @@ -47,7 +47,7 @@ __device__ __forceinline__ float to_float(half v) { return __half2float(v) #if defined(ENABLE_MOORE_API) using bf16_t = __mt_bfloat16; -#elif defined(ENABLE_METAX_API) +#elif defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) using bf16_t = __hpcc_bfloat16; #else // CUDA / NVIDIA / ILUVATAR diff --git a/src/infiniop/ops/topk/operator.cc b/src/infiniop/ops/topk/operator.cc index cd7f17291..d37f207d2 100644 --- a/src/infiniop/ops/topk/operator.cc +++ b/src/infiniop/ops/topk/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/topk_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/topk_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -60,6 +60,9 @@ __INFINI_C infiniStatus_t infiniopCreateTopKDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -97,6 +100,9 @@ __INFINI_C infiniStatus_t infiniopGetTopKWorkspaceSize(infiniopTopKDescriptor_t #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -147,6 +153,9 @@ __INFINI_C infiniStatus_t infiniopTopK( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -186,6 +195,9 @@ infiniopDestroyTopKDescriptor(infiniopTopKDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/topkrouter/operator.cc b/src/infiniop/ops/topkrouter/operator.cc index bf9f2e586..3e137d7c2 100644 --- a/src/infiniop/ops/topkrouter/operator.cc +++ b/src/infiniop/ops/topkrouter/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/topkrouter_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/topkrouter_metax.h" #endif #ifdef ENABLE_KUNLUN_API @@ -36,6 +36,9 @@ __INFINI_C infiniStatus_t infiniopCreateTopkrouterDescriptor(infiniopHandle_t ha #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CREATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -71,6 +74,9 @@ __INFINI_C infiniStatus_t infiniopGetTopkrouterWorkspaceSize(infiniopTopkrouterD #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API GET(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -109,6 +115,9 @@ __INFINI_C infiniStatus_t infiniopTopkrouter(infiniopTopkrouterDescriptor_t desc #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API CALCULATE(INFINI_DEVICE_KUNLUN, kunlun); #endif @@ -144,6 +153,9 @@ __INFINI_C infiniStatus_t infiniopDestroyTopkrouterDescriptor(infiniopTopkrouter #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_KUNLUN_API DESTROY(INFINI_DEVICE_KUNLUN, kunlun); #endif diff --git a/src/infiniop/ops/topksoftmax/operator.cc b/src/infiniop/ops/topksoftmax/operator.cc index 56bab41bc..d30e0f941 100644 --- a/src/infiniop/ops/topksoftmax/operator.cc +++ b/src/infiniop/ops/topksoftmax/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_HYGON_API) #include "nvidia/topksoftmax_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/topksoftmax_metax.cuh" #endif #ifdef ENABLE_MOORE_API @@ -37,6 +37,9 @@ __INFINI_C infiniStatus_t infiniopCreateTopksoftmaxDescriptor(infiniopHandle_t h #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -76,6 +79,9 @@ __INFINI_C infiniStatus_t infiniopGetTopksoftmaxWorkspaceSize(infiniopTopksoftma #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -120,6 +126,9 @@ __INFINI_C infiniStatus_t infiniopTopksoftmax(infiniopTopksoftmaxDescriptor_t de #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -159,6 +168,9 @@ __INFINI_C infiniStatus_t infiniopDestroyTopksoftmaxDescriptor(infiniopTopksoftm #ifdef ENABLE_METAX_API DESTROY(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DESTROY(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DESTROY(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/triplet_margin_loss/operator.cc b/src/infiniop/ops/triplet_margin_loss/operator.cc index 16ce25a83..69539a41d 100644 --- a/src/infiniop/ops/triplet_margin_loss/operator.cc +++ b/src/infiniop/ops/triplet_margin_loss/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/triplet_margin_loss_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/triplet_margin_loss_metax.h" #endif @@ -67,6 +67,9 @@ __INFINI_C infiniStatus_t infiniopCreateTripletMarginLossDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -105,6 +108,9 @@ __INFINI_C infiniStatus_t infiniopGetTripletMarginLossWorkspaceSize(infiniopTrip #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -151,6 +157,9 @@ __INFINI_C infiniStatus_t infiniopTripletMarginLoss( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -189,6 +198,9 @@ __INFINI_C infiniStatus_t infiniopDestroyTripletMarginLossDescriptor(infiniopTri #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/triplet_margin_with_distance_loss/operator.cc b/src/infiniop/ops/triplet_margin_with_distance_loss/operator.cc index 22cbdb39d..507c883ce 100644 --- a/src/infiniop/ops/triplet_margin_with_distance_loss/operator.cc +++ b/src/infiniop/ops/triplet_margin_with_distance_loss/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/triplet_margin_with_distance_loss_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/triplet_margin_with_distance_loss_metax.h" #endif @@ -63,6 +63,9 @@ __INFINI_C infiniStatus_t infiniopCreateTripletMarginWithDistanceLossDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -103,6 +106,9 @@ __INFINI_C infiniStatus_t infiniopGetTripletMarginWithDistanceLossWorkspaceSize( #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -149,6 +155,9 @@ __INFINI_C infiniStatus_t infiniopTripletMarginWithDistanceLoss( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -188,6 +197,9 @@ __INFINI_C infiniStatus_t infiniopDestroyTripletMarginWithDistanceLossDescriptor #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/unfold/operator.cc b/src/infiniop/ops/unfold/operator.cc index c78b46753..0d1ab0870 100644 --- a/src/infiniop/ops/unfold/operator.cc +++ b/src/infiniop/ops/unfold/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/unfold_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/unfold_metax.h" #endif @@ -62,6 +62,9 @@ __INFINI_C infiniStatus_t infiniopCreateUnfoldDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -100,6 +103,9 @@ __INFINI_C infiniStatus_t infiniopGetUnfoldWorkspaceSize(infiniopUnfoldDescripto #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -144,6 +150,9 @@ __INFINI_C infiniStatus_t infiniopUnfold( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -182,6 +191,9 @@ __INFINI_C infiniStatus_t infiniopDestroyUnfoldDescriptor(infiniopUnfoldDescript #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/upsample_bilinear/operator.cc b/src/infiniop/ops/upsample_bilinear/operator.cc index eb03e6a21..ec64b91c8 100644 --- a/src/infiniop/ops/upsample_bilinear/operator.cc +++ b/src/infiniop/ops/upsample_bilinear/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/upsample_bilinear_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/upsample_bilinear_metax.h" #endif @@ -55,6 +55,9 @@ __INFINI_C infiniStatus_t infiniopCreateUpsampleBilinearDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -93,6 +96,9 @@ __INFINI_C infiniStatus_t infiniopGetUpsampleBilinearWorkspaceSize(infiniopUpsam #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -137,6 +143,9 @@ __INFINI_C infiniStatus_t infiniopUpsampleBilinear( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -175,6 +184,9 @@ __INFINI_C infiniStatus_t infiniopDestroyUpsampleBilinearDescriptor(infiniopUpsa #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/upsample_nearest/operator.cc b/src/infiniop/ops/upsample_nearest/operator.cc index bad09b892..98cb3ac50 100644 --- a/src/infiniop/ops/upsample_nearest/operator.cc +++ b/src/infiniop/ops/upsample_nearest/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/upsample_nearest_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/upsample_nearest_metax.h" #endif @@ -53,6 +53,9 @@ __INFINI_C infiniStatus_t infiniopCreateUpsampleNearestDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -91,6 +94,9 @@ __INFINI_C infiniStatus_t infiniopGetUpsampleNearestWorkspaceSize(infiniopUpsamp #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -135,6 +141,9 @@ __INFINI_C infiniStatus_t infiniopUpsampleNearest( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -173,6 +182,9 @@ __INFINI_C infiniStatus_t infiniopDestroyUpsampleNearestDescriptor(infiniopUpsam #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/vander/operator.cc b/src/infiniop/ops/vander/operator.cc index 6c9b33deb..fcbb4f3fa 100644 --- a/src/infiniop/ops/vander/operator.cc +++ b/src/infiniop/ops/vander/operator.cc @@ -10,7 +10,7 @@ #include "nvidia/vander_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/vander_metax.h" #endif @@ -58,6 +58,9 @@ __INFINI_C infiniStatus_t infiniopCreateVanderDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -96,6 +99,9 @@ __INFINI_C infiniStatus_t infiniopGetVanderWorkspaceSize(infiniopVanderDescripto #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -140,6 +146,9 @@ __INFINI_C infiniStatus_t infiniopVander( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -178,6 +187,9 @@ __INFINI_C infiniStatus_t infiniopDestroyVanderDescriptor(infiniopVanderDescript #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/var/cuda/kernel.cuh b/src/infiniop/ops/var/cuda/kernel.cuh index a39cac751..dd6b1473e 100644 --- a/src/infiniop/ops/var/cuda/kernel.cuh +++ b/src/infiniop/ops/var/cuda/kernel.cuh @@ -22,7 +22,7 @@ __inline__ __device__ half Nan() { #if defined(ENABLE_MOORE_API) using bf16_t = __mt_bfloat16; -#elif defined(ENABLE_METAX_API) +#elif defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) using bf16_t = __hpcc_bfloat16; #else using bf16_t = __nv_bfloat16; diff --git a/src/infiniop/ops/var/operator.cc b/src/infiniop/ops/var/operator.cc index 9bccebb39..91e45af13 100644 --- a/src/infiniop/ops/var/operator.cc +++ b/src/infiniop/ops/var/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/var_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/var_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -58,6 +58,9 @@ __INFINI_C infiniStatus_t infiniopCreateVarDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -95,6 +98,9 @@ __INFINI_C infiniStatus_t infiniopGetVarWorkspaceSize(infiniopVarDescriptor_t de #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -144,6 +150,9 @@ __INFINI_C infiniStatus_t infiniopVar( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -183,6 +192,9 @@ infiniopDestroyVarDescriptor(infiniopVarDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/var_mean/cuda/kernel.cuh b/src/infiniop/ops/var_mean/cuda/kernel.cuh index 945cabf16..0bd914b20 100644 --- a/src/infiniop/ops/var_mean/cuda/kernel.cuh +++ b/src/infiniop/ops/var_mean/cuda/kernel.cuh @@ -22,7 +22,7 @@ __inline__ __device__ half Nan() { #if defined(ENABLE_MOORE_API) using bf16_t = __mt_bfloat16; -#elif defined(ENABLE_METAX_API) +#elif defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) using bf16_t = __hpcc_bfloat16; #else using bf16_t = __nv_bfloat16; diff --git a/src/infiniop/ops/var_mean/operator.cc b/src/infiniop/ops/var_mean/operator.cc index 0fd3b7142..f26cd9b64 100644 --- a/src/infiniop/ops/var_mean/operator.cc +++ b/src/infiniop/ops/var_mean/operator.cc @@ -9,7 +9,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_HYGON_API) #include "nvidia/var_mean_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/var_mean_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -60,6 +60,9 @@ __INFINI_C infiniStatus_t infiniopCreateVarMeanDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -97,6 +100,9 @@ __INFINI_C infiniStatus_t infiniopGetVarMeanWorkspaceSize(infiniopVarMeanDescrip #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -147,6 +153,9 @@ __INFINI_C infiniStatus_t infiniopVarMean( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -186,6 +195,9 @@ infiniopDestroyVarMeanDescriptor(infiniopVarMeanDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infiniop/ops/zeros/operator.cc b/src/infiniop/ops/zeros/operator.cc index 7f71e6f69..f831ff19b 100644 --- a/src/infiniop/ops/zeros/operator.cc +++ b/src/infiniop/ops/zeros/operator.cc @@ -8,7 +8,7 @@ #if defined(ENABLE_NVIDIA_API) || defined(ENABLE_ILUVATAR_API) || defined(ENABLE_QY_API) || defined(ENABLE_ALI_API) || defined(ENABLE_HYGON_API) #include "nvidia/zeros_nvidia.cuh" #endif -#ifdef ENABLE_METAX_API +#if defined(ENABLE_METAX_API) || defined(ENABLE_MARS_API) #include "metax/zeros_metax.h" #endif #ifdef ENABLE_MOORE_API @@ -52,6 +52,9 @@ __INFINI_C infiniStatus_t infiniopCreateZerosDescriptor( #ifdef ENABLE_METAX_API CREATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CREATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CREATE(INFINI_DEVICE_MOORE, moore); #endif @@ -94,6 +97,9 @@ __INFINI_C infiniStatus_t infiniopGetZerosWorkspaceSize(infiniopZerosDescriptor_ #ifdef ENABLE_METAX_API GET(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + GET(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API GET(INFINI_DEVICE_MOORE, moore); #endif @@ -144,6 +150,9 @@ __INFINI_C infiniStatus_t infiniopZeros( #ifdef ENABLE_METAX_API CALCULATE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + CALCULATE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API CALCULATE(INFINI_DEVICE_MOORE, moore); #endif @@ -188,6 +197,9 @@ infiniopDestroyZerosDescriptor(infiniopZerosDescriptor_t desc) { #ifdef ENABLE_METAX_API DELETE(INFINI_DEVICE_METAX, metax); #endif +#ifdef ENABLE_MARS_API + DELETE(INFINI_DEVICE_MARS, metax); +#endif #ifdef ENABLE_MOORE_API DELETE(INFINI_DEVICE_MOORE, moore); #endif diff --git a/src/infinirt-test/main.cc b/src/infinirt-test/main.cc index 5c3e97db8..eebcc4b15 100644 --- a/src/infinirt-test/main.cc +++ b/src/infinirt-test/main.cc @@ -18,6 +18,7 @@ void printUsage() { << " cambricon" << std::endl << " ascend" << std::endl << " metax" << std::endl + << " mars" << std::endl << " moore" << std::endl << " iluvatar" << std::endl << " qy" << std::endl @@ -51,6 +52,7 @@ ParsedArgs parseArgs(int argc, char *argv[]) { else PARSE_DEVICE("--cambricon", INFINI_DEVICE_CAMBRICON) else PARSE_DEVICE("--ascend", INFINI_DEVICE_ASCEND) else PARSE_DEVICE("--metax", INFINI_DEVICE_METAX) + else PARSE_DEVICE("--mars", INFINI_DEVICE_MARS) else PARSE_DEVICE("--moore", INFINI_DEVICE_MOORE) else PARSE_DEVICE("--iluvatar", INFINI_DEVICE_ILUVATAR) else PARSE_DEVICE("--qy", INFINI_DEVICE_QY) diff --git a/test/infinicore/framework/config.py b/test/infinicore/framework/config.py index 058fda90c..8e43e2423 100644 --- a/test/infinicore/framework/config.py +++ b/test/infinicore/framework/config.py @@ -20,6 +20,7 @@ def get_supported_hardware_platforms(): ("--ascend", "Huawei Ascend NPUs (requires torch_npu)"), ("--iluvatar", "Iluvatar GPUs"), ("--metax", "Metax GPUs"), + ("--mars", "Mars GPUs with HPCC support"), ("--moore", "Moore Threads GPUs (requires torch_musa)"), ("--kunlun", "Kunlun XPUs (requires torch_xmlir)"), ("--hygon", "Hygon DCUs"), @@ -195,6 +196,14 @@ def get_test_devices(args): except ImportError: print("Warning: Metax GPU support not available") + if args.mars: + try: + import torch + + devices_to_test.append(InfiniDeviceEnum.MARS) + except ImportError: + print("Warning: Mars GPU support not available") + if args.moore: try: import torch diff --git a/test/infinicore/framework/devices.py b/test/infinicore/framework/devices.py index 59b0ad558..69ca0e829 100644 --- a/test/infinicore/framework/devices.py +++ b/test/infinicore/framework/devices.py @@ -10,6 +10,7 @@ class InfiniDeviceEnum: HYGON = 8 QY = 9 ALI = 10 + MARS = 11 InfiniDeviceNames = { @@ -24,6 +25,7 @@ class InfiniDeviceEnum: InfiniDeviceEnum.KUNLUN: "Kunlun", InfiniDeviceEnum.HYGON: "Hygon", InfiniDeviceEnum.ALI: "Ali", + InfiniDeviceEnum.MARS: "Mars", } torch_device_map = { @@ -38,4 +40,5 @@ class InfiniDeviceEnum: InfiniDeviceEnum.HYGON: "cuda", InfiniDeviceEnum.QY: "cuda", InfiniDeviceEnum.ALI: "cuda", + InfiniDeviceEnum.MARS: "cuda", } diff --git a/test/infinicore/test.py b/test/infinicore/test.py index 72828b567..4d20ad0c5 100644 --- a/test/infinicore/test.py +++ b/test/infinicore/test.py @@ -1,9 +1,9 @@ -import torch -from infinicore.lib import _infinicore -from infinicore.utils import to_torch_dtype import numpy as np +import torch import infinicore +from infinicore.lib import _infinicore +from infinicore.utils import to_torch_dtype def test(): @@ -186,10 +186,11 @@ def func6_initialize_device_relationship(): _infinicore.Device.Type.KUNLUN, # 7 "cuda" _infinicore.Device.Type.HYGON, # 8 "cuda" _infinicore.Device.Type.ALI, # 10 "cuda" + _infinicore.Device.Type.MARS, # 11 "cuda" ] if True: print("\n ---------- 测试 CPU") - all_device_count = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0] + all_device_count = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] infinicore_2_python_dict, python_2_infinicore_dict = ( _initialize_device_relationship(all_device_types, all_device_count) ) @@ -197,15 +198,25 @@ def func6_initialize_device_relationship(): print("python_2_infinicore_dict: ", python_2_infinicore_dict) print("\n ---------- 测试 CPU+NVIDIA") - all_device_count = [1, 2, 0, 0, 0, 0, 0, 0, 0, 0] + all_device_count = [1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + infinicore_2_python_dict, python_2_infinicore_dict = ( + _initialize_device_relationship(all_device_types, all_device_count) + ) + print("infinicore_2_python_dict", infinicore_2_python_dict) + print("python_2_infinicore_dict: ", python_2_infinicore_dict) + + print("\n ---------- 测试 CPU+MARS") + all_device_count = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2] infinicore_2_python_dict, python_2_infinicore_dict = ( _initialize_device_relationship(all_device_types, all_device_count) ) + assert len(infinicore_2_python_dict[_infinicore.Device.Type.MARS]) == 2 + assert len(python_2_infinicore_dict["cuda"]) == 2 print("infinicore_2_python_dict", infinicore_2_python_dict) print("python_2_infinicore_dict: ", python_2_infinicore_dict) print("\n ---------- 测试 CPU+NVIDIA+HYGON") - all_device_count = [1, 2, 0, 0, 0, 0, 0, 0, 0, 2] + all_device_count = [1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0] infinicore_2_python_dict, python_2_infinicore_dict = ( _initialize_device_relationship(all_device_types, all_device_count) ) @@ -213,7 +224,7 @@ def func6_initialize_device_relationship(): print("python_2_infinicore_dict: ", python_2_infinicore_dict) print("\n ---------- 测试 CPU+NVIDIA+HYGON+CAMBRICON+ASCEND") - all_device_count = [1, 2, 2, 2, 0, 0, 0, 0, 0, 2] + all_device_count = [1, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0] infinicore_2_python_dict, python_2_infinicore_dict = ( _initialize_device_relationship(all_device_types, all_device_count) ) diff --git a/test/infinicore/test_preload.py b/test/infinicore/test_preload.py new file mode 100644 index 000000000..dde9e8254 --- /dev/null +++ b/test/infinicore/test_preload.py @@ -0,0 +1,44 @@ +import ctypes +import os +import unittest +from unittest import mock + +from infinicore import _preload + + +class DevicePreloadTest(unittest.TestCase): + def test_hpcc_environment_selects_only_mars(self): + with mock.patch.dict(os.environ, {"HPCC_PATH": "/opt/hpcc"}, clear=True): + self.assertTrue(_preload._should_preload_device("MARS")) + self.assertFalse(_preload._should_preload_device("METAX")) + + def test_maca_environment_does_not_select_mars(self): + with mock.patch.dict(os.environ, {"MACA_PATH": "/opt/maca"}, clear=True): + self.assertFalse(_preload._should_preload_device("MARS")) + self.assertFalse(_preload._should_preload_device("METAX")) + + def test_hpcc_home_is_a_supported_runtime_prefix(self): + with mock.patch.dict(os.environ, {"HPCC_HOME": "/custom/hpcc"}, clear=True): + with mock.patch.object(_preload, "_try_load") as try_load: + _preload.preload_hpcc() + + self.assertEqual(try_load.call_count, 4) + self.assertEqual(try_load.call_args_list[0].args[0], ["/custom/hpcc"]) + + def test_runtime_loader_checks_lib64(self): + def exists(path): + return path == "/custom/hpcc/lib64/libhcruntime.so" + + with mock.patch.object(_preload.os.path, "exists", side_effect=exists): + with mock.patch.object(_preload.ctypes, "CDLL") as cdll: + self.assertTrue( + _preload._try_load(["/custom/hpcc"], "libhcruntime.so") + ) + + cdll.assert_called_once_with( + "/custom/hpcc/lib64/libhcruntime.so", mode=ctypes.RTLD_GLOBAL + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/infiniop/libinfiniop/devices.py b/test/infiniop/libinfiniop/devices.py index bb776e242..3f410dd52 100644 --- a/test/infiniop/libinfiniop/devices.py +++ b/test/infiniop/libinfiniop/devices.py @@ -10,6 +10,7 @@ class InfiniDeviceEnum: HYGON = 8 QY = 9 ALI = 10 + MARS = 11 InfiniDeviceNames = { @@ -24,6 +25,7 @@ class InfiniDeviceEnum: InfiniDeviceEnum.HYGON: "Hygon", InfiniDeviceEnum.QY: "QY", InfiniDeviceEnum.ALI: "Ali", + InfiniDeviceEnum.MARS: "Mars", } # Mapping that maps InfiniDeviceEnum to torch device string @@ -39,4 +41,5 @@ class InfiniDeviceEnum: InfiniDeviceEnum.HYGON: "cuda", InfiniDeviceEnum.QY: "cuda", InfiniDeviceEnum.ALI: "cuda", + InfiniDeviceEnum.MARS: "cuda", } diff --git a/test/infiniop/libinfiniop/liboperators.py b/test/infiniop/libinfiniop/liboperators.py index 48ce04fe4..8452aca26 100644 --- a/test/infiniop/libinfiniop/liboperators.py +++ b/test/infiniop/libinfiniop/liboperators.py @@ -10,6 +10,7 @@ from .structs import * INFINI_ROOT = os.getenv("INFINI_ROOT") or str(Path.home() / ".infini") +INFINI_RT_ROOT = os.getenv("INFINI_RT_ROOT") class InfiniLib: @@ -28,11 +29,9 @@ def __getattr__(self, name): # Open operators library def open_lib(): - def find_library_in_ld_path(subdir, library_name): - ld_library_path = os.path.join(INFINI_ROOT, subdir) - paths = ld_library_path.split(os.pathsep) - for path in paths: - full_path = os.path.join(path, library_name) + def find_library(root, subdirs, library_name): + for subdir in subdirs: + full_path = os.path.join(root, subdir, library_name) if os.path.isfile(full_path): return full_path return None @@ -40,17 +39,23 @@ def find_library_in_ld_path(subdir, library_name): system_name = platform.system() # Load the library if system_name == "Windows": - libop_path = find_library_in_ld_path("bin", "infiniop.dll") - librt_path = find_library_in_ld_path("bin", "infinirt.dll") + libop_path = find_library(INFINI_ROOT, ("bin",), "infiniop.dll") + librt_root = INFINI_RT_ROOT or INFINI_ROOT + librt_path = find_library(librt_root, ("bin",), "infinirt.dll") elif system_name == "Linux": - libop_path = find_library_in_ld_path("lib", "libinfiniop.so") - librt_path = find_library_in_ld_path("lib", "libinfinirt.so") + libop_path = find_library(INFINI_ROOT, ("lib", "lib64"), "libinfiniop.so") + librt_root = INFINI_RT_ROOT or INFINI_ROOT + librt_path = find_library( + librt_root, ("lib", "lib64"), "libinfinirt.so" + ) + else: + raise RuntimeError(f"Unsupported platform: {system_name}") assert libop_path is not None, ( "Cannot find infiniop.dll or libinfiniop.so. Check if INFINI_ROOT is set correctly." ) assert librt_path is not None, ( - "Cannot find infinirt.dll or libinfinirt.so. Check if INFINI_ROOT is set correctly." + "Cannot find infinirt.dll or libinfinirt.so. Check INFINI_RT_ROOT or INFINI_ROOT." ) librt = ctypes.CDLL(librt_path) diff --git a/test/infiniop/libinfiniop/utils.py b/test/infiniop/libinfiniop/utils.py index 690425b54..a064af435 100644 --- a/test/infiniop/libinfiniop/utils.py +++ b/test/infiniop/libinfiniop/utils.py @@ -449,6 +449,11 @@ def get_args(): action="store_true", help="Run METAX GPU test", ) + parser.add_argument( + "--mars", + action="store_true", + help="Run Mars GPU test", + ) parser.add_argument( "--moore", action="store_true", @@ -520,6 +525,7 @@ def filter_tensor_dtypes_by_device(device, tensor_dtypes): InfiniDeviceEnum.CPU, InfiniDeviceEnum.NVIDIA, InfiniDeviceEnum.METAX, + InfiniDeviceEnum.MARS, InfiniDeviceEnum.ASCEND, InfiniDeviceEnum.ILUVATAR, InfiniDeviceEnum.CAMBRICON, @@ -781,6 +787,10 @@ def get_test_devices(args): import torch devices_to_test.append(InfiniDeviceEnum.METAX) + if args.mars: + import torch + + devices_to_test.append(InfiniDeviceEnum.MARS) if args.moore: import torch import torch_musa diff --git a/xmake.lua b/xmake.lua index 9ec14e9ca..df37ba316 100644 --- a/xmake.lua +++ b/xmake.lua @@ -149,25 +149,22 @@ option("metax-gpu") set_description("Whether to compile implementations for MetaX GPU") option_end() -option("use-mc") +option("mars-gpu") set_default(false) set_showmenu(true) - set_description("Use MC version") + set_description("Whether to compile implementations for Mars GPU with HPCC") option_end() if has_config("metax-gpu") then - add_defines("ENABLE_METAX_API") - if has_config("use-mc") then - add_defines("ENABLE_METAX_MC_API") - -- MACA torch build expects USE_MACA for ATen headers (e.g. C10_WARP_SIZE). - add_defines("USE_MACA") - else - -- HPCC torch build expects this for ATen headers on hpcc. - add_defines("USE_HPCC") - end + add_defines("ENABLE_METAX_API", "ENABLE_METAX_MC_API", "USE_MACA") includes("xmake/metax.lua") end +if has_config("mars-gpu") then + add_defines("ENABLE_MARS_API", "USE_HPCC") + includes("xmake/mars.lua") +end + -- 摩尔线程 option("moore-gpu") set_default(false) @@ -242,13 +239,20 @@ option("flash-attn") set_description("Path to flash-attention repo. If not set, flash-attention will not used.") option_end() +option("mars-flash-attn-abi") + set_default("detect") + set_values("detect", "standard", "extended") + set_showmenu(true) + set_description("Mars flash-attn ABI: detect from the library, standard, or extended") +option_end() + if has_config("aten") then add_defines("ENABLE_ATEN") if has_config("iluvatar-gpu") then add_defines("_GLIBCXX_USE_CXX11_ABI=0") end if get_config("flash-attn") and get_config("flash-attn") ~= "" - and (has_config("nv-gpu") or has_config("metax-gpu") or has_config("qy-gpu") or has_config("hygon-dcu")) then + and (has_config("nv-gpu") or has_config("metax-gpu") or has_config("mars-gpu") or has_config("qy-gpu") or has_config("hygon-dcu")) then add_defines("ENABLE_FLASH_ATTN") end end @@ -333,11 +337,139 @@ local function find_infinirt_library(infinirt_root, xmake_os) infinirt_library = path.join(infinirt_root, "lib64", "libinfinirt.so") end if not xmake_os.isfile(infinirt_library) then - raise("InfiniRT library not found under: " .. infinirt_root) + xmake_os.raise("InfiniRT library not found under: " .. infinirt_root) end return infinirt_library end +local function validate_infinirt_root(xmake_os) + local infinirt_root = get_infinirt_root() + if not infinirt_root or infinirt_root == "" then + return + end + + local public_header = path.join(infinirt_root, "include", "infini", "rt.h") + if not xmake_os.isfile(public_header) then + xmake_os.raise("InfiniRT public header not found: " .. public_header) + end + find_infinirt_library(infinirt_root, xmake_os) +end + +local function find_flash_attn_library(xmake_os) + local configured = os.getenv("FLASH_ATTN_2_CUDA_SO") + if configured and configured ~= "" then + configured = configured:trim() + if not xmake_os.isfile(configured) then + xmake_os.raise("flash-attn library not found: " .. configured) + end + return configured + end + + local find_spec_script = + "import importlib.util; s = importlib.util.find_spec('flash_attn_2_cuda'); print(s.origin if s and s.origin else '')" + local discovered = xmake_os.iorunv("python", {"-c", find_spec_script}):trim() + if discovered ~= "" and xmake_os.isfile(discovered) then + return discovered + end + + local fallback + if has_config("mars-gpu") then + fallback = os.getenv("FLASH_ATTN_MARS_CUDA_SO_CONTAINER") + or "/opt/conda/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-aarch64-linux-gnu.so" + else + fallback = "/opt/conda/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so" + end + if not xmake_os.isfile(fallback) then + xmake_os.raise("flash-attn library not found; set FLASH_ATTN_2_CUDA_SO") + end + return fallback +end + +-- Device SDK and flash-attn are versioned independently, so inspect the +-- extension's exported C++ signatures instead of deriving its ABI from the SDK. +local function detect_flash_attn_abi(xmake_os) + local flash_attn_library = find_flash_attn_library(xmake_os) + local symbols = xmake_os.iorunv("nm", {"-D", "-C", flash_attn_library}) + local mha_fwd_symbol = nil + local mha_varlen_fwd_symbol = nil + local mha_fwd_kvcache_symbol = nil + for line in symbols:gmatch("[^\r\n]+") do + if line:find(" mha_fwd(", 1, true) then + mha_fwd_symbol = line + elseif line:find(" mha_varlen_fwd(", 1, true) then + mha_varlen_fwd_symbol = line + elseif line:find(" mha_fwd_kvcache(", 1, true) then + mha_fwd_kvcache_symbol = line + end + end + + if mha_fwd_symbol and mha_varlen_fwd_symbol and mha_fwd_kvcache_symbol then + local has_attention_mask = mha_fwd_symbol:find( + "std::optional&, std::optional&, std::optional&, float, float", + 1, + true + ) ~= nil + local fwd_has_s_aux = mha_fwd_symbol:find( + "std::optional, std::optional&)", + 1, + true + ) ~= nil + local varlen_has_s_aux = mha_varlen_fwd_symbol:find( + "std::optional, std::optional&)", + 1, + true + ) ~= nil + local kvcache_has_s_aux = mha_fwd_kvcache_symbol:match( + ", int, std::optional&%)$" + ) ~= nil + if has_attention_mask + and fwd_has_s_aux + and varlen_has_s_aux + and kvcache_has_s_aux + then + return "extended" + elseif not has_attention_mask + and fwd_has_s_aux + and varlen_has_s_aux + and kvcache_has_s_aux + then + return "s_aux" + elseif not has_attention_mask + and mha_fwd_symbol:find("std::optional)", 1, true) + and mha_varlen_fwd_symbol:find("std::optional)", 1, true) + and mha_fwd_kvcache_symbol:match(", int%)$") + then + return "standard" + end + end + + xmake_os.raise( + "Unable to detect the flash-attn ABI from " + .. flash_attn_library + ) +end + +local function mars_flash_attn_uses_extended_abi(xmake_os) + local abi = get_config("mars-flash-attn-abi") or "detect" + if abi == "extended" then + return true + elseif abi == "standard" then + return false + end + + local detected = detect_flash_attn_abi(xmake_os) + if detected == "extended" then + return true + elseif detected == "standard" then + return false + end + xmake_os.raise("Mars flash-attn does not support detected ABI: " .. detected) +end + +local function metax_flash_attn_abi(xmake_os) + return detect_flash_attn_abi(xmake_os) +end + local function add_external_infinirt() local INFINI_ROOT = os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini") local infinirt_root = get_infinirt_root() @@ -365,6 +497,20 @@ local function add_external_infinirt() end end end + if has_config("metax-gpu") then + local maca_root = os.getenv("MACA_PATH") or os.getenv("MACA_HOME") or os.getenv("MACA_ROOT") or "/opt/maca" + local maca_include = path.join(maca_root, "include") + if os.isdir(maca_include) then + add_includedirs(maca_include, { public = true }) + end + end + if has_config("mars-gpu") then + local hpcc_root = os.getenv("HPCC_PATH") or os.getenv("HPCC_HOME") or "/opt/hpcc" + local hpcc_include = path.join(hpcc_root, "include") + if os.isdir(hpcc_include) then + add_includedirs(hpcc_include, { public = true }) + end + end add_links("infinirt") end @@ -403,7 +549,12 @@ local function filter_infiniops_ops_for_backend(infiniops_ops) return table.concat(filtered, ",") end -local function get_infiniops_backend_cmake_arg() +local function get_infiniops_backend_cmake_arg(xmake_os) + if has_config("mars-gpu") then + xmake_os.raise( + "standalone InfiniOps does not expose a distinct Mars backend; configure with --infiniops=false" + ) + end local enabled = {} local function add_backend(config, cmake_arg) if has_config(config) then @@ -415,10 +566,12 @@ local function get_infiniops_backend_cmake_arg() add_backend("iluvatar-gpu", "-DWITH_ILUVATAR=ON") add_backend("moore-gpu", "-DWITH_MOORE=ON") if #enabled == 0 then - raise("InfiniOps integration requires one of --nv-gpu, --metax-gpu, --iluvatar-gpu, or --moore-gpu") + xmake_os.raise( + "InfiniOps integration requires one of --nv-gpu, --metax-gpu, --iluvatar-gpu, or --moore-gpu" + ) end if #enabled > 1 then - raise("InfiniOps can build only one GPU backend at a time") + xmake_os.raise("InfiniOps can build only one GPU backend at a time") end return enabled[1] end @@ -430,12 +583,15 @@ local function build_infiniops_external(xmake_os) local infiniops_root = path.absolute(get_config("infiniops-root") or "submodules/InfiniOps", os.projectdir()) local infiniops_builddir = path.join(infiniops_root, "build") local INFINI_ROOT = os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini") + if not xmake_os.isdir(infiniops_root) then + xmake_os.raise("InfiniOps root not found: " .. infiniops_root) + end local infinirt_root = get_infinirt_root() local cmake_config_args = { "-S", infiniops_root, "-B", infiniops_builddir, "-DWITH_CPU=ON", - get_infiniops_backend_cmake_arg(), + get_infiniops_backend_cmake_arg(xmake_os), "-DGENERATE_OPERATOR_CALL_INSTANTIATIONS=ON", "-DGENERATE_PYTHON_BINDINGS=OFF", "-DCMAKE_BUILD_TYPE=Release" @@ -484,6 +640,12 @@ end target("infini-utils") set_kind("static") on_install(function (target) end) + on_load(function (target) + if has_config("metax-gpu") and has_config("mars-gpu") then + os.raise("--metax-gpu and --mars-gpu are separate backends and cannot be enabled together") + end + validate_infinirt_root(os) + end) set_languages("cxx17") set_warnings("all", "error") @@ -562,6 +724,9 @@ target("infiniop") if has_config("metax-gpu") then add_deps("infiniop-metax") end + if has_config("mars-gpu") then + add_deps("infiniop-mars") + end if has_config("moore-gpu") then add_deps("infiniop-moore") end @@ -599,6 +764,9 @@ target("infiniccl") if has_config("metax-gpu") then add_deps("infiniccl-metax") end + if has_config("mars-gpu") then + add_deps("infiniccl-mars") + end if has_config("iluvatar-gpu") then add_deps("infiniccl-iluvatar") end @@ -649,17 +817,51 @@ target("infinicore_cpp_api") add_deps("infiniop", "infiniccl") set_languages("cxx17") set_symbols("visibility") + on_load(function (target) + if has_config("infiniops") then + build_infiniops_external(os) + end + if has_config("mars-gpu") + and get_config("flash-attn") + and get_config("flash-attn") ~= "" + and mars_flash_attn_uses_extended_abi(os) + then + target:add("defines", "INFINICORE_FLASH_ATTN_MARS_EXT=1") + end + if has_config("metax-gpu") + and get_config("flash-attn") + and get_config("flash-attn") ~= "" + then + local abi = metax_flash_attn_abi(os) + if abi == "extended" then + target:add("defines", "INFINICORE_FLASH_ATTN_METAX_EXT=1") + elseif abi == "s_aux" then + target:add("defines", "INFINICORE_FLASH_ATTN_METAX_S_AUX=1") + end + end + end) local INFINI_ROOT = os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini") add_includedirs("include") - if has_config("metax-gpu") and has_config("use-mc") and has_config("aten") then + if has_config("metax-gpu") and has_config("aten") then local maca_root = os.getenv("MACA_PATH") or os.getenv("MACA_HOME") or os.getenv("MACA_ROOT") or "/opt/maca" add_includedirs(maca_root .. "/include") add_includedirs(maca_root .. "/tools/cu-bridge/include") for _, include_dir in ipairs(os.dirs(maca_root .. "/include/*")) do add_includedirs(include_dir) end + end + if has_config("mars-gpu") and has_config("aten") then + local hpcc_root = os.getenv("HPCC_PATH") or os.getenv("HPCC_HOME") or "/opt/hpcc" + add_includedirs(hpcc_root .. "/include") + add_includedirs(hpcc_root .. "/tools/cu-bridge/include") + for _, include_dir in ipairs(os.dirs(hpcc_root .. "/include/*")) do + add_includedirs(include_dir) + end + end + if has_config("aten") and (has_config("metax-gpu") or has_config("mars-gpu")) then + -- The CUDA-compatibility SDK headers may shadow the system limits header. add_cxflags("-include", "climits") add_cxxflags("-includeclimits", {force = true}) add_defines("CHAR_BIT=8", "INT_MIN=(-2147483647 - 1)", "INT_MAX=2147483647", "UINT_MAX=4294967295U") @@ -672,10 +874,6 @@ target("infinicore_cpp_api") end if has_config("infiniops") then local infiniops_root = path.absolute(get_config("infiniops-root") or "submodules/InfiniOps", os.projectdir()) - if not os.isdir(infiniops_root) then - raise("InfiniOps root not found: " .. infiniops_root) - end - get_infiniops_backend_cmake_arg() local infinirt_root = get_infinirt_root() if infinirt_root and infinirt_root ~= "" then add_includedirs(infinirt_root .. "/include") @@ -686,9 +884,6 @@ target("infinicore_cpp_api") add_defines("ENABLE_INFINIOPS_API") add_links("infiniops") add_rpathdirs(INFINI_ROOT .. "/lib") - on_load(function (target) - build_infiniops_external(os) - end) after_install(function (target) local INFINI_ROOT = os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini") local infinirt_root = get_infinirt_root() @@ -712,6 +907,9 @@ target("infinicore_cpp_api") if has_config("metax-gpu") then add_deps("flash-attn-metax") end + if has_config("mars-gpu") then + add_deps("flash-attn-mars") + end if has_config("qy-gpu") then add_deps("flash-attn-qy") end @@ -721,8 +919,7 @@ target("infinicore_cpp_api") end -- Flash pip `.so` link flags: `before_link` runs in an xmake sandbox that cannot see helpers - -- from other included scripts; MetaX and QY each register their own hook in `xmake/metax.lua` - -- and `xmake/qy.lua`. + -- from other included scripts; platform scripts register their own hooks. -- Moore mate: -- enable Python bridge macro for flash-attn Moore path @@ -733,30 +930,6 @@ target("infinicore_cpp_api") end before_build(function (target) - -- MetaX + flash-attn: `flash_attn_2_cuda` may use a different `mha_fwd_kvcache` ABI - -- depending on the underlying stack version. When building with MACA (`--use-mc=y`), - -- the version file is typically `/opt/maca/Version.txt` (HPCC uses `/opt/hpcc/Version.txt`). - if has_config("metax-gpu") and get_config("flash-attn") and get_config("flash-attn") ~= "" then - local version_txt = "/opt/hpcc/Version.txt" - if not os.isfile(version_txt) and has_config("use-mc") then - version_txt = "/opt/maca/Version.txt" - end - if os.isfile(version_txt) then - local content = os.iorunv("cat", {version_txt}) or "" - content = content:trim() - local major_str = content:match("Version:(%d+)") or content:match("^(%d+)") - if major_str and major_str ~= "" then - local major = tonumber(major_str) - if major then - local define = "INFINICORE_HPCC_VERSION_MAJOR=" .. tostring(major) - target:add("defines", define) - target:add("cxflags", "-D" .. define) - target:add("cxxflags", "-D" .. define) - end - end - end - end - if has_config("aten") then local outdata = os.iorunv("python", {"-c", "import torch, os; print(os.path.dirname(torch.__file__))"}):trim() local TORCH_DIR = outdata diff --git a/xmake/mars.lua b/xmake/mars.lua new file mode 100644 index 000000000..85c011505 --- /dev/null +++ b/xmake/mars.lua @@ -0,0 +1,137 @@ +local HPCC_ROOT = os.getenv("HPCC_PATH") or os.getenv("HPCC_HOME") or "/opt/hpcc" +local FLASH_ATTN_ROOT = get_config("flash-attn") + +local FLASH_ATTN_MARS_CUDA_SO_CONTAINER_DEFAULT = + "/opt/conda/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-aarch64-linux-gnu.so" + +local function mars_flash_attn_cuda_so_path(xmake_os) + local env_path = xmake_os.getenv("FLASH_ATTN_2_CUDA_SO") + if env_path and env_path ~= "" then + env_path = env_path:trim() + if xmake_os.isfile(env_path) then + return env_path + end + xmake_os.raise(string.format("mars+flash-attn: FLASH_ATTN_2_CUDA_SO is not a file: %s", env_path)) + end + + local find_spec_script = + "import importlib.util; s = importlib.util.find_spec('flash_attn_2_cuda'); print(s.origin if s and s.origin else '')" + local discovered = xmake_os.iorunv("python", {"-c", find_spec_script}):trim() + if discovered ~= "" and xmake_os.isfile(discovered) then + return discovered + end + + local container_path = xmake_os.getenv("FLASH_ATTN_MARS_CUDA_SO_CONTAINER") + if not container_path or container_path == "" then + container_path = FLASH_ATTN_MARS_CUDA_SO_CONTAINER_DEFAULT + end + if not xmake_os.isfile(container_path) then + xmake_os.raise(string.format("mars+flash-attn: library not found: %s", container_path)) + end + return container_path +end + +target("infinicore_cpp_api") + if FLASH_ATTN_ROOT and FLASH_ATTN_ROOT ~= "" then + before_link(function (target) + local flash_so = mars_flash_attn_cuda_so_path(os) + local flash_dir = path.directory(flash_so) + local flash_name = path.filename(flash_so) + target:add( + "shflags", + "-Wl,--no-as-needed -L" .. flash_dir .. " -l:" .. flash_name .. " -Wl,-rpath," .. flash_dir, + {force = true} + ) + end) + end +target_end() + +add_includedirs(HPCC_ROOT .. "/include") +add_linkdirs(HPCC_ROOT .. "/lib") +add_links("hcdnn", "hcblas", "hcruntime") + +rule("hpcc") + set_extensions(".maca") + + on_load(function (target) + target:add("includedirs", "include") + end) + + on_buildcmd_file(function (target, batchcmds, sourcefile, opt) + local objectfile = target:objectfile(sourcefile) + local htcc = path.join(HPCC_ROOT, "htgpu_llvm/bin/htcc") + local args = { + "-x", "hpcc", "-c", sourcefile, "-o", objectfile, + "-I" .. HPCC_ROOT .. "/include", "-O3", "-fPIC", "-Werror", "-std=c++17" + } + + for _, includedir in ipairs(target:get("includedirs")) do + table.insert(args, "-I" .. includedir) + end + for _, define in ipairs(target:get("defines")) do + table.insert(args, "-D" .. define) + end + + table.insert(target:objectfiles(), objectfile) + batchcmds:mkdir(path.directory(objectfile)) + batchcmds:show_progress(opt.progress, "${color.build.object}compiling.hpcc %s", sourcefile) + batchcmds:vrunv(htcc, args) + batchcmds:add_depfiles(sourcefile) + batchcmds:set_depmtime(os.mtime(objectfile)) + batchcmds:set_depcache(target:dependfile(objectfile)) + end) +rule_end() + +target("infiniop-mars") + set_kind("static") + on_install(function (target) end) + set_languages("cxx17") + set_warnings("all", "error") + add_cxflags("-lstdc++", "-fPIC", "-Wno-defaulted-function-deleted", "-Wno-strict-aliasing", {force = true}) + add_cxxflags("-lstdc++", "-fPIC", "-Wno-defaulted-function-deleted", "-Wno-strict-aliasing", {force = true}) + add_files("../src/infiniop/devices/metax/*.cc") + add_files("../src/infiniop/ops/*/metax/*.cc") + add_files("../src/infiniop/ops/*/metax/*.maca", {rule = "hpcc"}) + + if has_config("ninetoothed") then + add_includedirs(HPCC_ROOT .. "/include/hcr") + add_files("../build/ninetoothed/*.c", "../build/ninetoothed/*.cpp", { + cxflags = { + "-include stdlib.h", + "-Wno-return-type", + "-Wno-implicit-function-declaration", + "-Wno-builtin-declaration-mismatch" + } + }) + end +target_end() + +target("flash-attn-mars") + set_kind("phony") + set_default(false) + + if FLASH_ATTN_ROOT and FLASH_ATTN_ROOT ~= "" then + before_build(function (target) + local torch_dir = os.iorunv("python", {"-c", "import torch, os; print(os.path.dirname(torch.__file__))"}):trim() + local python_include = os.iorunv("python", {"-c", "import sysconfig; print(sysconfig.get_paths()['include'])"}):trim() + local python_lib_dir = os.iorunv("python", {"-c", "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))"}):trim() + target:add("includedirs", torch_dir .. "/include", torch_dir .. "/include/torch/csrc/api/include", python_include, {public = false}) + target:add("linkdirs", torch_dir .. "/lib", python_lib_dir, {public = false}) + end) + end +target_end() + +target("infiniccl-mars") + set_kind("static") + on_install(function (target) end) + set_warnings("all", "error") + if not is_plat("windows") then + add_cxflags("-fPIC") + add_cxxflags("-fPIC") + end + if has_config("ccl") then + add_links("libhccl.so") + add_files("../src/infiniccl/mars/*.cc") + end + set_languages("cxx17") +target_end() diff --git a/xmake/metax.lua b/xmake/metax.lua index 3e700fff2..6f0705900 100644 --- a/xmake/metax.lua +++ b/xmake/metax.lua @@ -2,13 +2,6 @@ local MACA_ROOT = os.getenv("MACA_PATH") or os.getenv("MACA_HOME") or os.getenv("MACA_ROOT") local FLASH_ATTN_ROOT = get_config("flash-attn") --- MetaX flash-attn (pip `flash_attn_2_cuda`) may append an extra trailing argument --- (`flash_attn_mars_ext_`) depending on the underlying HPCC/MetaX stack version. -do - -- Intentionally empty: HPCC version parsing is deferred to `before_build` - -- on `infinicore_cpp_api` where `os.iorunv` is available in this xmake sandbox. -end - -- Resolve MetaX flash-attn .so path (used only from this file: `before_link` sandbox cannot see globals from `xmake.lua`). local FLASH_ATTN_METAX_CUDA_SO_CONTAINER_DEFAULT = "/opt/conda/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so" @@ -42,7 +35,6 @@ local function metax_flash_attn_cuda_so_path() end -- MetaX flash-attn link flags for pip `flash_attn_2_cuda`. --- Version/ABI macros are set in `xmake.lua` for `infinicore_cpp_api` so they apply to all sources. target("infinicore_cpp_api") if get_config("flash-attn") and get_config("flash-attn") ~= "" then before_link(function (target) @@ -60,11 +52,7 @@ target_end() add_includedirs(MACA_ROOT .. "/include") add_linkdirs(MACA_ROOT .. "/lib") -if has_config("use-mc") then - add_links("mcdnn", "mcblas", "mcruntime") -else - add_links("hcdnn", "hcblas", "hcruntime") -end +add_links("mcdnn", "mcblas", "mcruntime") rule("maca") set_extensions(".maca") @@ -77,14 +65,8 @@ rule("maca") local objectfile = target:objectfile(sourcefile) os.mkdir(path.directory(objectfile)) local args - local htcc - if has_config("use-mc") then - htcc = path.join(MACA_ROOT, "mxgpu_llvm/bin/mxcc") - args = { "-x", "maca", "-c", sourcefile, "-o", objectfile, "-I" .. MACA_ROOT .. "/include", "-O3", "-fPIC", "-Werror", "-std=c++17"} - else - htcc = path.join(MACA_ROOT, "htgpu_llvm/bin/htcc") - args = { "-x", "hpcc", "-c", sourcefile, "-o", objectfile, "-I" .. MACA_ROOT .. "/include", "-O3", "-fPIC", "-Werror", "-std=c++17"} - end + local htcc = path.join(MACA_ROOT, "mxgpu_llvm/bin/mxcc") + local args = { "-x", "maca", "-c", sourcefile, "-o", objectfile, "-I" .. MACA_ROOT .. "/include", "-O3", "-fPIC", "-Werror", "-std=c++17"} local includedirs = table.concat(target:get("includedirs"), " ") for _, includedir in ipairs(target:get("includedirs")) do table.insert(args, "-I" .. includedir) @@ -165,11 +147,7 @@ target("infiniccl-metax") add_cxxflags("-fPIC") end if has_config("ccl") then - if has_config("use-mc") then - add_links("libmccl.so") - else - add_links("libhccl.so") - end + add_links("libmccl.so") add_files("../src/infiniccl/metax/*.cc") end set_languages("cxx17")