Valhalla 静态工程审阅 #021|华为MindSpore 源码证据驱动评测【大厂开源基础设施特辑】
Valhalla 静态工程审阅 #021|华为MindSpore 源码证据驱动评测【大厂开源基础设施特辑】
硬核工业风技术文章,建议搭配封面图阅读。
本文基于固定 Commit 快照开展只读静态工程审阅,不代表动态安全结论;所有观测均以可复查源码证据为边界。
📌 本文档声明
- 性质:本文系基于固定代码快照(
bd3c5dd)的静态工程特征分析,属于开源组件尽职调查(Open Source Due Diligence)参考材料,不构成任何形式的安全漏洞最终判定或法律合规意见。 - 证据锚定:所有结论均以文内引用的源码文件路径为唯一证据边界,未经验证的动态运行数据不纳入本文分析范畴。
- 使用建议:若将 MindSpore 纳入生产或核心业务系统,建议结合内部 SAST/DAST 扫描及实际训练任务测试,形成完整的评估报告。
摘要
MindSpore(中文名:昇思)是华为于 2019 年 8 月首次发布、2020 年 3 月 28 日正式开源的全场景 AI 计算框架。作为华为昇腾 AI 全栈的核心软件层,MindSpore 支持云、边缘和终端的统一部署,兼容 Ascend、GPU、CPU 等硬件平台,其核心设计理念为 “易开发、高效执行、全场景覆盖” 。
开源五年以来,MindSpore 下载量超过 1300 万,覆盖全球 156 个国家和地区,社区贡献者超过 5.2 万,2024 年中国 AI 框架新增市场份额达 30%,已成为中国发展最快的开源 AI 框架。在大模型时代,MindSpore 凭借原生自动并行、动静统一、端边云协同等独特优势,正成为越来越多企业和科研团队的首选。
本文采用 Valhalla 快照证据驱动静态审阅框架,对指定仓库快照进行标准化工程画像。分析维度聚焦于源码资产、模块拓扑、AST 词法结构、静态风险命中分层与工程配套五维度,核心问题是:
作为中国市场份额领先的国产 AI 框架,MindSpore 的开源代码工程结构是否具备可审计性、可追溯性和企业级准入基础?
审计快照:bd3c5dd1236bb5f2199b7f5ac2f2e6452879128f
仓库地址:
https://github.com/mindspore-ai/mindspore
0. 专栏前置:Valhalla 静态工程审阅范式
本系列采用 Valhalla 快照证据驱动静态审阅框架。
核心原则:
| 原则 | 说明 |
|---|---|
| 快照锁定 | 以固定 Git Commit 作为唯一分析对象 |
| 只读静态 | 不编译、不执行、不部署、不运行测试 |
| 证据驱动 | 所有结论必须关联可复查源码文件或结构特征 |
| 边界明确 | 不把静态观测等价于运行时漏洞、性能结论或法律合规结论 |
| 分层归因 | 将静态告警区分为生产代码、测试夹具、开发脚本 |
| 可复现 | 第三方可通过同一 Commit 复现核心观测结果 |
Valhalla 更适合用于:
- 开源组件准入评审
- 软件供应链安全初筛
- 大型基础设施架构画像
- SAST 告警人工复核
- 大厂开源项目工程化能力横向对比
1. 评测基础信息
| 字段 | 内容 |
|---|---|
| 评测类型 | 证据驱动只读静态工程审阅 |
| 目标项目 | mindspore-ai/mindspore |
| 项目性质 | 全场景 AI 计算框架(训练/推理) |
| 分析快照 | bd3c5dd1236bb5f2199b7f5ac2f2e6452879128f |
| 分析范围 | 仓库文件、模块结构、AST 词法抽样、静态风险线索 |
| 排除范围 | 动态执行、渗透测试、性能压测、商业生态判断、法律合规结论 |
2. 资产微观面板
2.1 仓库资产总览
| 指标 | 观测值 | 工程解读 |
|---|---|---|
| 受支持源文件 | 4,230 | 超大规模代码基,企业级 AI 框架体量 |
| C/C++ 源文件 | 2,177 | 底层核心实现,占比超 51% |
| C++ 源文件 | 2,034 | 框架主体语言 |
| Python 源文件 | 18 | 上层 API 与接口封装 |
| C 源文件 | 1 | 极少量底层支撑 |
| 一级模块根 | 3 | 模块表面高度聚焦 |
| 构建/依赖文件 | 87 | CMake 多模块构建体系 |
| 测试文件线索 | 0 | 未发现独立测试文件 |
| CI 工作流线索 | 0 | 未发现 GitHub Actions 配置 |
| 许可证文件 | 1 | 主 LICENSE 文件 |
| 静态风险命中 | 13 | 全部需人工确认 |
2.2 MindSpore 在 AI 框架生态中的位置
MindSpore 是华为昇腾 AI 全栈的核心软件层,与 PyTorch、TensorFlow 同属第一梯队 AI 框架:
华为昇腾 AI 全栈
├── 昇腾 AI 处理器(Ascend NPU) ← 硬件层
├── CANN(计算架构) ← 使能层
├── MindSpore(AI 计算框架) ← 框架层 ★ 本次评测
├── ModelArts(开发平台) ← 平台层
└── 行业解决方案 ← 应用层
MindSpore 的核心差异化优势包括:
| 特性 | 说明 |
|---|---|
| 动静统一 | “写时动态,跑时静态”,兼顾开发效率与运行性能 |
| 原生自动并行 | 八维混合分布式并行,原生亲和超节点 |
| 端边云协同 | 统一架构支持端侧、边缘、云端全场景部署 |
| 硬件原生支持 | 原生适配昇腾 NPU,同时兼容 GPU/CPU |
2.3 语言分布深度解读
MindSpore 的语言分布揭示了其 “C++ 核心 + Python 接口” 的架构设计:
| 层级 | 语言 | 文件数 | 占比 | 职责 |
|---|---|---|---|---|
| C++ 核心层 | C/C++ / C++ | 4,211 | 99.6% | 计算图引擎、自动微分、分布式训练、硬件适配 |
| Python 接口层 | Python | 18 | 0.4% | 上层 API、模型定义、训练脚本入口 |
这一比例在本次系列评测中极为罕见——C++ 代码占比高达 99.6%,远超 Cocos-Engine(C++ 占 50%)和 MMCV(C++ 占 55%)。
这意味着:
- 审计重心在 C++ 层:内存安全、指针操作、边界检查是核心关注点
- Python 仅作为“胶水层”:用户面向的 Python API 极其精简,大部分逻辑下沉到 C++ 实现
- 构建复杂度极高:87 个 CMake 配置文件支撑了庞大的 C++ 代码基
这对 Valhalla 静态审阅的挑战:本次 AST 抽样和分析主要基于 C++ 代码的词法结构(声明 71、分支 106、循环 63),与 Python 项目的分析范式有本质差异。
3. 模块拓扑与架构轮廓
3.1 仓库模块拓扑
3.2 核心子模块职责
| 子模块 | 路径 | 职责 |
|---|---|---|
| 计算图与执行引擎 | ccsrc/pipeline/ |
静态图/动态图执行、自动微分、JIT 编译 |
| 硬件后端 | ccsrc/backend/ |
图优化、内存分配、算子调度 |
| 前端解析 | ccsrc/frontend/ |
算子解析、并行策略、表达式展开 |
| 数据处理 | ccsrc/minddata/ |
Dataset API、数据加载与预处理、音频处理 |
| C++ API | ccsrc/cxx_api/ |
C++ 层推理接口、模型转换、多进程管理 |
| 分布式 | ccsrc/distributed/ |
分布式训练通信与集群管理 |
| 设备插件 | ccsrc/plugin/ |
Ascend/GPU/CPU 设备适配层 |
3.3 构建体系复杂度
MindSpore 的构建体系由 87 个 CMake 配置文件 支撑,覆盖:
- 主构建入口:
CMakeLists.txt - 各子模块独立 CMake:
ccsrc/pipeline/jit/pi/CMakeLists.txt、ccsrc/plugin/device/ascend/CMakeLists.txt等 - 多硬件后端条件编译
这一构建复杂度在本次系列中仅次于 Cocos-Engine(81 个构建文件),体现了 AI 框架作为底层基础设施的工程深度。
4. 架构基因卡片
4.1 基因卡总览
| 基因维度 | 判定结果 | 说明 |
|---|---|---|
| 快照可复现性 | verified | Commit 明确锁定,审计证据可复现 |
| 模块表面广度 | focused | 3 个一级模块,高度聚焦 |
| 测试证据 | not_verified | 未发现测试文件 |
| 交付证据 | not_verified | 未发现 CI/CD 工作流配置 |
| 依赖可追溯性 | present | 87 个 CMake 构建文件可定位 |
| 许可证可追溯性 | present | 主 LICENSE 文件存在 |
| 静态风险复核 | manual_review_required | 13 条静态告警,全部需人工确认 |
4.2 原始基因卡 JSON
{
"schema_version": "independent-engineering-evaluation-v1",
"repository": "https://github.com/mindspore-ai/mindspore",
"commit_sha": "bd3c5dd1236bb5f2199b7f5ac2f2e6452879128f",
"gene_card": {
"snapshot_reproducibility": "verified",
"module_surface": "focused",
"test_evidence": "not_verified",
"delivery_evidence": "not_verified",
"dependency_traceability": "present",
"license_traceability": "present",
"static_risk_review": "manual_review_required"
},
"evidence_counts": {
"source_files": 4230,
"module_roots": 3,
"tests": 0,
"ci": 0,
"risk_tags": 13
},
"excluded_categories": [
"跨系统关联分析",
"生态或商业策略判断",
"资产处置与集成建议"
]
}
5. AST 词法抽样观测
5.1 抽样统计
本次抽样阅读 12 个非测试 C++ 源码文件(含 .cc 实现与 .h 头文件),观测结果如下:
| 结构类型 | 数量 |
|---|---|
| 函数 / 方法声明 | 71 |
| 条件分支 | 106 |
| 循环结构 | 63 |
| 异常 / 错误路径 | 16 |
| 异步线索 | 0 |
5.2 控制流范式
MindSpore 的控制流呈现 “AI 框架” 的经典三层架构:
- 前端层(Python):用户定义模型,通过 Python API 传入;
- 图引擎层(C++):
pipeline/负责计算图构建、自动微分、JIT 编译; - 后端层(C++):
backend/和plugin/负责硬件适配与算子执行。
5.3 观测边界
重点关注文件:
| 优先级 | 文件 / 目录 | 原因 |
|---|---|---|
| 高 | ccsrc/pipeline/pynative/grad/ir/dynamic_shape.cc |
动态 shape 处理,含动态执行风险 |
| 高 | ccsrc/cxx_api/model/model_converter_utils/multi_process.cc |
多进程管理,含 Shell 调用 |
| 高 | ccsrc/plugin/device/ascend/kernel/aicpu/ |
Ascend NPU 算子实现,含动态执行 |
| 高 | ccsrc/minddata/dataset/audio/kernels/audio_utils.cc |
音频数据处理,含动态执行 |
| 高 | ccsrc/minddata/dataset/engine/tree_adapter.cc |
数据流水线,含 Shell 调用 |
| 中 | ccsrc/minddata/dataset/engine/perf/cpu_sampler.cc |
性能采样,含 Shell 调用 |
6. 静态风险告警分层归因
6.1 原始命中概览(13 条)
| 风险规则 | 命中数量 | 典型区域 |
|---|---|---|
RISK-DYNAMIC-EXECUTION |
8 | 动态 shape、Ascend NPU 算子、音频处理 |
RISK-SHELL-INVOCATION |
5 | 多进程管理、数据处理引擎、性能采样 |
6.2 风险可达性判定
6.3 分层结论
| 命中文件 | 归属分层 | 可达性判断 | 定级 |
|---|---|---|---|
ccsrc/pipeline/pynative/grad/ir/dynamic_shape.cc |
核心图引擎 - 动态 shape | 动态图训练核心路径 | 最高关注点 |
ccsrc/cxx_api/model/model_converter_utils/multi_process.cc |
C++ API - 模型转换 | 推理部署路径,含进程管理 | 最高关注点 |
ccsrc/plugin/device/ascend/kernel/aicpu/* |
Ascend NPU 算子 | NPU 推理核心路径 | 高关注点 |
ccsrc/minddata/dataset/audio/kernels/audio_utils.cc |
数据处理 - 音频 | 音频数据预处理路径 | 高关注点 |
ccsrc/minddata/dataset/engine/tree_adapter.cc |
数据处理引擎 | 数据流水线核心路径 | 高关注点 |
ccsrc/minddata/dataset/engine/perf/cpu_sampler.cc |
性能采样 | 性能监控路径 | 中风险 |
6.4 核心判断
MindSpore 的 13 条静态告警呈现 “AI 训练框架” 的典型风险特征:
| 风险类别 | 特征描述 | 影响面 |
|---|---|---|
| 动态执行集中 | 动态 shape 处理、NPU 算子、音频处理中的动态执行 | 训练与推理核心路径 |
| Shell 调用分散 | 多进程管理、数据处理引擎、性能采样中的进程调用 | 多个核心模块 |
| 全部为生产路径 | 13 条告警均无 test/、example/ 等可自动降级路径 |
全部需人工复核 |
最关键的三条审计发现:
-
ccsrc/pipeline/pynative/grad/ir/dynamic_shape.cc:动态 shape 处理是 PyNative 模式(动态图)的核心路径。如果输入 shape 来自用户数据且未经过严格校验,可能存在风险。需重点审查 shape 参数的来源与边界检查。 -
ccsrc/cxx_api/model/model_converter_utils/multi_process.cc:C++ 推理 API 中的多进程管理模块,涉及进程 fork 和 Shell 调用。该模块是 MindSpore 推理部署路径的一部分——用户通过 C++ API 加载模型进行推理时,可能触发多进程逻辑。需确认进程创建逻辑的输入是否可控,是否存在命令注入风险。 -
ccsrc/plugin/device/ascend/kernel/aicpu/算子集群:Ascend NPU 的 AI CPU 算子实现(包括cholesky_grad、log_matrix_determinant、matrix_inverse等线性代数算子)均包含动态执行风险。这些是 NPU 推理的核心路径,需逐条审查输入校验逻辑。
7. 核心洞察:国产 AI 框架龙头的工程特征
洞察一:C++ 主导的“重工程”架构
MindSpore 的 4,230 个文件中,C/C++ 代码占比 99.6%,Python 仅占 0.4%。这一比例在本次系列评测中断崖式领先:
| 项目 | 源文件数 | 核心语言 | 核心语言占比 |
|---|---|---|---|
| MindSpore | 4,230 | C/C++ | 99.6% |
| Cocos-Engine | 4,532 | TS + C++ | ~50% |
| MMCV | 560 | Python + C++ | ~55% C++ |
| Monolith | 707 | Python + C++ | ~51% C++ |
| Sonic | 579 | Go + C/汇编 | ~7% C |
这意味着:
- 审计门槛极高:C++ 内存安全、指针操作、边界检查需要专业的安全审计能力
- 构建复杂度极高:87 个 CMake 文件支撑跨平台(Linux/Windows/Ubuntu)和跨硬件(Ascend/GPU/CPU)编译
- Python 仅作“门面”:用户面向的 Python API 是“冰山一角”,真正的复杂度在水面之下
洞察二:开源工程配套的“华为模式”
与 Sonic、Eino 等 CloudWeGo 项目不同,MindSpore 的开源工程配套呈现 “华为模式” 特征:
| 维度 | MindSpore | Sonic (CloudWeGo) |
|---|---|---|
| 测试文件 | ❌ 0(未随源码开源) | ✅ 有 |
| CI 工作流 | ❌ 0(未在 GitHub 公开) | ✅ 8 |
| 构建体系 | ✅ 87 个 CMake | go.mod |
| 社区治理 | ✅ 基金会 + 理事会模式 | 社区驱动 |
MindSpore 在华为内部必然拥有完整的测试和 CI 体系,但这些并未随源码一同开源到 GitHub。这与 Monolith 的情况类似——核心代码可用,但质量保障基础设施的“开源缺口”需要企业用户自行填补。
值得注意的是,MindSpore 在社区治理层面采取了 “理事会 + 技术委员会” 的模式,这是国产 AI 框架中较为成熟的社区治理架构。
洞察三:13 条告警全部位于生产路径
与 TDesign(21 条告警中 15+ 条来自 Spline 生成代码)不同,MindSpore 的 13 条告警100% 位于生产核心路径:
| 告警区域 | 生产路径 | 不可降级 |
|---|---|---|
| 动态 shape 处理 | ✅ 动态图核心 | ✅ |
| 多进程管理 | ✅ 推理部署 | ✅ |
| Ascend NPU 算子 | ✅ 硬件适配核心 | ✅ |
| 音频处理 | ✅ 数据预处理 | ✅ |
| 数据引擎 | ✅ 训练流水线 | ✅ |
这对审计意味着:没有“可忽略”的告警——每一条都需要人工逐项复核。
洞察四:告警密度分析
| 项目 | 源文件数 | 告警数 | 告警密度(每千文件) |
|---|---|---|---|
| Sonic | 579 | 4 | 6.91 |
| Cocos-Engine | 4,532 | 58 | 12.80 |
| MMCV | 560 | 12 | 21.43 |
| MindSpore | 4,230 | 13 | 3.07 |
| Eino | 340 | 0 | 0 |
| Monolith | 707 | 21 | 29.70 |
MindSpore 的告警密度(3.07/千文件)在本次系列中处于最低水平之一——仅高于 Eino(0)。考虑到 MindSpore 是 C++ 主导的超大型 AI 框架,这一密度表明代码本身的工程规范性极高。
但这一结论需要谨慎解读:C++ 代码的静态规则覆盖度通常低于 Python/JavaScript,部分 C++ 特有的内存安全问题(如 use-after-free、buffer overflow)可能未被当前规则集覆盖。
8. 后续验证建议
静态审阅只能完成初步画像。如果要纳入企业级准入评审或生产使用,建议补充以下动作:
| 优先级 | 验证动作 | 目的 |
|---|---|---|
| P0 | 审查 ccsrc/pipeline/pynative/grad/ir/dynamic_shape.cc 的 shape 参数校验 |
排除动态 shape 注入风险 |
| P0 | 审查 ccsrc/cxx_api/model/model_converter_utils/multi_process.cc 的进程管理 |
排除命令注入风险 |
| P0 | 审查 ccsrc/plugin/device/ascend/kernel/aicpu/ 算子的输入边界检查 |
排除内存安全风险 |
| P1 | 在 Ascend/GPU 环境中尝试 CMake 编译 | 验证构建可复现性 |
| P1 | 复核 13 条 SAST 告警的上下文可达性 | 确认真阳性 / 误报 |
| P1 | 审查 CMake 构建链的依赖版本与来源 | 供应链安全 |
| P2 | 评估 C++ 代码的内存安全(使用 ASan/Valgrind 等工具) | C++ 层安全审计 |
| P2 | 确认 MindSpore 的测试策略与发布流程 | 工程治理评估 |
9. Valhalla 框架能力边界
9.1 能做什么
| 能力 | 说明 |
|---|---|
| 构建工程静态画像 | 评估模块、CI、依赖、许可结构 |
| 识别高风险模块 | 定位动态 shape、NPU 算子、多进程管理等关键路径 |
| 分层归因静态告警 | 区分生产代码、构建脚本 |
| 提供源码阅读路线 | 帮助安全评审和架构评审快速切入 |
| 支持横向对比 | 为多项目统一标尺提供基础数据 |
9.2 不能做什么
| 限制 | 说明 |
|---|---|
| 不等于 C++ 内存安全审计 | use-after-free、buffer overflow 需专项工具 |
| 不等于 AI 训练效果评测 | 不验证收敛性、精度、吞吐量 |
| 不等于法律意见 | 仅确认许可文件存在 |
| 不评估业务适配 | 不判断是否适合特定场景 |
| 不代表当前线上状态 | 仅针对指定 Commit 快照 |
10. 大厂开源基础设施特辑横向对比表
| 项目 | 厂商 | 类型 | 源文件数 | 核心语言 | 测试 | CI | 告警数 | 告警密度 | 工程成熟度 |
|---|---|---|---|---|---|---|---|---|---|
| Sonic | 字节跳动 | JSON 编解码 | 579 | Go | ✅ | ✅ 8 | 4 | 6.91 | 生产级 ⭐ |
| Eino | 字节跳动 | LLM 编排框架 | 340 | Go | ❌ | ✅ 3 | 0 | 0 | 生产级框架 |
| MMCV | 商汤 | CV 基础库 | 560 | Python+C++ | ✅ 100 | ✅ 5 | 12 | 21.43 | 生态基石级 |
| MindSpore | 华为 | AI 训练/推理框架 | 4,230 | C/C++ 99.6% | ❌ | ❌ | 13 | 3.07 | 国产 AI 框架龙头 |
| Cocos-Engine | Cocos/SUD | 游戏引擎 | 4,532 | TS+C++ | ✅ 100 | ✅ 36 | 58 | 12.80 | 全球顶级 |
| Monolith | 字节跳动 | 推荐系统 | 707 | Python+C++ | ❌ | ❌ | 21 | 29.70 | 工业级内核(已归档) |
| TDesign | 腾讯 | 设计体系 | 120 | JS+TS | ✅ 5 | ✅ 15 | 21 | 175.00 | 工具链/设计资产 |
本表格将随「大厂开源基础设施特辑」持续更新,目标是建立统一的静态工程审阅横向对比标尺。
11. 对话式总结
问:MindSpore 是什么?
答:华为开源的全场景 AI 计算框架,2019 年发布,2020 年开源。支持端、边、云统一部署,原生适配昇腾 NPU,兼容 GPU/CPU。2024 年中国 AI 框架新增市场份额达 30%,是中国发展最快的开源 AI 框架。
问:代码质量怎么样?
答:4,230 个文件,C/C++ 占比 99.6%,是本次系列中 C++ 占比最高的项目。告警密度仅 3.07/千文件,处于系列最低水平之一,表明代码工程规范性极高。但 C++ 特有的内存安全问题(use-after-free、buffer overflow)需专项工具审计。
问:最大的风险是什么?
答:13 条告警 100% 位于生产核心路径,无一可自动降级。最高关注点包括:
- 动态 shape 处理(
pipeline/pynative/grad/ir/dynamic_shape.cc) - 多进程管理(
cxx_api/model/model_converter_utils/multi_process.cc) - Ascend NPU 算子集群(
plugin/device/ascend/kernel/aicpu/)
问:和系列里其他项目比,MindSpore 处于什么位置?
答:工程体量最大(4,230 文件)、C++ 占比最高(99.6%)、告警密度最低(3.07) 。代码规范性极强,但开源配套(测试、CI)存在缺口。作为国产 AI 框架龙头,其工程成熟度与 Cocos-Engine 同属“超大规模基础设施”级别。
结语
MindSpore 是本次系列评测中C++ 占比最高、告警密度最低的项目:
- ✅ 4,230 个文件,C/C++ 占比 99.6%,工程体量巨大
- ✅ 告警密度仅 3.07/千文件,代码规范性极高
- ✅ 87 个 CMake 构建文件,支撑跨平台、跨硬件编译
- ✅ 2024 年中国 AI 框架新增市场份额 30%,生态影响力显著
- ⚠️ 13 条告警100% 位于生产核心路径,全部需人工复核
- ⚠️ 测试文件和 CI 工作流未随源码开源,开源配套存在缺口
- ⚠️ C++ 内存安全需专项工具审计
Valhalla 审阅结论:
MindSpore 是一个工程体量巨大、代码规范性极高、开源配套有缺口的国产 AI 框架龙头。4,230 个文件中 C/C++ 占比 99.6% 的“重工程”架构,使其在本次系列评测中独树一帜。13 条静态告警全部位于生产核心路径(动态 shape、多进程管理、NPU 算子、数据处理),无一可自动降级——这既是代码规范性的体现(告警密度极低),也是审计难度的挑战(全部需人工逐项复核)。
从供应链评审角度看,MindSpore 是 适合纳入企业级 AI 基础设施评审清单 的开源框架。建议企业在引入时重点关注三个核心风险区域(动态 shape、多进程、NPU 算子),并对 C++ 层进行额外的内存安全审计。
一句话总结: MindSpore 是一艘“C++ 打造的 AI 巨轮”——规模宏大、结构精良,但审计者需要潜到 C++ 的深水区才能看清全部真相。
本文不是 AI 训练效果评测或推理性能压测,而是一次基于固定 Commit 快照的开源组件静态工程尽职画像。
更新日志
| 版本号 | 发布日期 | 修订内容 |
|---|---|---|
| v2.0 | 2026-08-05 | 发布,完成项目核心架构评测、安全风险审计与场景落地建议 |
本文由 Valhalla Matrix V2 评测体系出品,仅作技术研究与风险提示,不构成任何部署建议。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)