- 博客(20)
- 收藏
- 关注
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 relateddigital_flutter
在鸿蒙上已经接入真实系统能力,Dart 侧 API 与上游保持一致。本文的验证结果全部来自 HarmonyOS API 26 真机按钮点击,没有占位返回值;平台本身不具备的能力在正文和 README 中都已明确标注为边界。
2026-10-18 13:47:51
1124
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 posthog_flutter
在鸿蒙上已经接入真实系统能力,Dart 侧 API 与上游保持一致。本文的验证结果全部来自 HarmonyOS API 26 真机按钮点击,没有占位返回值;平台本身不具备的能力在正文和 README 中都已明确标注为边界。
2026-10-18 13:45:24
1051
原创 昇腾CANN NumPy兼容层:asnumpy让NPU用上NumPy语法
asnumpy是昇腾CANN里的NumPy兼容层,让NumPy的语法可以直接在NPU上跑。它覆盖了NumPy最常用的接口(数组创建、操作、数学函数、线性代数),底层走的是昇腾的算子库,性能比CPU上的NumPy快几十倍到上百倍。如果你有很多基于NumPy的代码想在昇腾NPU上加速,asnumpy是迁移成本最低的方案。基本上把改成,就能跑起来。CANN开源之后,asnumpy的实现完全透明。如果某个NumPy接口还不支持,可以参考已有的接口实现,自己补充上去,然后提PR给开源社区。
2026-06-02 19:28:15
202
原创 昇腾CANN加速库:ascend-boost梯度提升树的高效实现
ascend-boost是昇腾CANN里的梯度提升树加速库,针对昇腾NPU做了特征分裂向量化、Histgram高效实现、稀疏特征优化这三件事。对结构化数据的机器学习任务,它比CPU上的XGBoost快3-5倍,比A100上的XGBoost略快(取决于具体场景)。如果你正在做昇腾上的机器学习应用,特别是表格数据上的分类/回归任务,ascend-boost是值得尝试的选择。它和XGBoost/LightGBM的接口几乎完全兼容,迁移成本很低。
2026-05-26 19:07:51
479
原创 昇腾CANN扩展通信:hcomm点对点通信与自定义通信模式
hcomm还支持完全自定义的通信模式。# hcomm 自定义 AllGather:针对稀疏数据的优化版本"""自定义的 AllGather,针对稀疏 tensor 做了优化场景:每个 rank 只有一小部分非零数据,全量 gather 后仍是稀疏的"""# 步骤1:先做一次 reduce-scatter,把数据分散开# 每个 rank 拿到自己的 chunk# 步骤2:用 hcomm 做 ring 式的 AllGather# 步骤3:拼接所有 chunk。
2026-05-26 19:05:04
379
原创 昇腾CANN大模型推理加速:ATB加速库的Transformer层融合优化
ATB是昇腾CANN里做大模型推理加速的核心组件。它把Transformer层的多个算子融合成一个大kernel,显著减少HBM读写,端到端吞吐可以提升3-5倍。在昇腾NPU上部署LLM推理,ATB几乎是必选项。CANN开源之后,ATB的融合策略完全透明,也可以根据特定模型做定制化融合。如果你正在做昇腾上的LLM推理优化,建议先把ATB的融合策略配置摸清楚,找到最适合你模型的融合组合。不要一上来就全部开启,融合策略的稳定性需要逐个验证。
2026-05-24 19:21:24
476
原创 昇腾CANN算子验证:用monocase保证算子正确性
monocase 验证示例:自定义 MatMul 算子# 定义待验证的算子(封装成 callable)"""自定义的 MatMul 算子,内部调用 Ascend C kernel"""return torch.matmul(a, b) # 实际场景替换为自定义算子调用# 1. Golden 数据生成# 生成 10 组随机输入,数据类型 FP16,形状随机shape_range=[(1, 128), (128, 4096)] # M/N/K 的范围# 2. 创建验证器。
2026-05-24 19:15:18
451
原创 昇腾CANN算子精度问题排查:从ops-math说起
ops-math是昇腾CANN里和精度关系最密切的算子库。它负责的类型转换、数学函数、随机数生成这三类算子,直接影响模型推理和训练的质量。把ops-math的精度处理策略搞清楚,就能理解为什么同样的模型在GPU和NPU上的表现会有差异,以及怎么缩小这个差异。CANN开源之后,这些问题不再需要猜,可以直接到源码里找答案。
2026-05-23 21:05:19
511
原创 昇腾CANN图编译黑盒打开之后:GE图引擎到底在干什么
GE是昇腾CANN里负责图编译的核心组件。它做的事情包括图解析、子图拆分、算子融合、内存复用优化、执行计划生成。把GE的编译流程搞清楚,就能理解为什么第一次跑慢、后面快,以及怎么避免动态shape带来的在线编译开销。如果你正在做昇腾上的模型部署,建议先把GE的图可视化工具用起来,看看你的模型被编译成了什么样子。很多时候性能问题(比如某个算子没被融合)在图可视化里一眼就能看出来。
2026-05-23 20:58:42
402
原创 昇腾CANN多机训练的性能命门:把HCCL的AllReduce吃透
HCCL是昇腾CANN里多机训练性能的关键。把AllReduce的拓扑选择(Ring vs Tree)、消息大小阈值、RoCE网络配置、通信和计算争用这几个点摸到清楚,多机训练的扩展效率能从50%提到85%以上。如果你正在做昇腾上的大模型多机训练,建议先把HCCL_DEBUG日志开出来,找到AllReduce的瓶颈点(拓扑?网络?争用?),再针对性地调。不要一上来就加NPU数量,扩展效率差的时候加机器只会让通信瓶颈更明显。
2026-05-22 12:16:49
496
原创 昇腾CANN实战:从MatMul算子内存排布摸透ops-nn的性能玄机
MatMul 算子的性能不只取决于"算得快",更取决于"数据搬得巧"。ops-nn 仓库里针对这个问题给了三条路:每次都转(训练友好)、权重预转(推理推荐)、融合算子(极致性能)。在昇腾NPU上做推理优化,把权重预转这一步做对,就能把 MatMul 的延迟压掉 60% 以上。还有一件事:内存排布格式(NZ、ND、NCHW 等)是昇腾CANN里最容易踩坑的地方之一。
2026-05-22 11:59:11
402
原创 昇腾CANN推理性能翻倍的起点:把 GEMM 算子吃透
ops-blas 是昇腾CANN里最基础的线性代数算子库,GEMM 是其中最核心的算子。要把大模型推理性能吃满,GEMM 的分块策略、UB 利用率、shape 固定性这三个维度都要考虑到位。通用场景用 ops-blas 的通用 GEMM,固定 shape 的高频算子用 catlass 做模板特化,这两条路配合起来,推理吞吐的提升空间还很大。如果你正在做昇腾上的推理优化,建议先把 GEMM 的 Profiler 数据跑出来,找到 UB 利用率的瓶颈点,再决定是调分块参数还是换 catlass 特化路线。
2026-05-21 16:31:53
272
原创 昇腾CANN实战:FlashAttention 在昇腾NPU上的实现与性能调优
FlashAttention 在昇腾 NPU 上的实现和 GPU 版本的原理一致,但具体的分块策略、块大小选择、因果掩码优化都要针对昇腾达芬奇架构的存储层次来调整。ops-transformer 仓库已经把这些做了封装,通过 ATB 加速库在上层做进一步融合,能拿到不错的性能。从我的实测数据来看,在 Ascend 910 上把朴素的注意力计算换成 ops-transformer 的 FlashAttention 实现,端到端推理吞吐提升了大约 2 倍。结合 ATB 的中等粒度融合,整体提升到 3 倍左右。
2026-05-21 16:11:27
454
原创 鸿蒙与Flutter:跨平台开发的融合与创新
Text('鸿蒙ArkUI (ArkTS):', style: TextStyle(color: Colors.red)),'鸿蒙版本: ${deviceInfo['harmonyVersion']}';_deviceInfo = '设备类型: ${deviceInfo['type']}\n''设备型号: ${deviceInfo['model']}\n'DataColumn(label: Text('鸿蒙ArkUI')),DataCell(Text('内存占用(MB)')),
2025-12-02 20:16:01
844
原创 Flutter:跨平台开发的未来
Flutter不仅支持iOS和Android,还扩展到了Web、桌面(Windows、macOS、Linux)甚至嵌入式设备,真正实现了"一次编写,处处运行"的梦想。'iOS风格按钮' : 'Material风格按钮','运行在iOS设备' : '运行在Android设备',appBar: AppBar(title: Text('响应式布局')),child: Text('Hello World'), // 编译时常量。child: Text('Hello World'), // 每次重建。
2025-12-02 20:04:34
788
原创 鸿蒙版Electron开发实战:Web前端秒变鸿蒙应用
在当今多端开发的时代,开发者们一直在寻求更高效的开发方式。Electron框架之所以大受欢迎,正是因为它允许开发者使用熟悉的Web技术来构建桌面应用。那么,在鸿蒙生态中,我们能否实现类似的开发体验呢?答案是肯定的!虽然鸿蒙没有官方的Electron框架,但通过Web组件 + ArkTS原生能力的组合,我们可以实现媲美Electron的开发模式。通过本文的实战演示,我们看到了在鸿蒙平台上实现Electron式开发的完整流程。
2025-11-26 21:12:29
833
原创 【鸿蒙Electron实战】在HarmonyOS上玩转Web技术:混合开发全指南
Electron的成功在于它让Web技术突破了浏览器沙箱,能够直接调用系统API。
2025-11-25 19:51:28
494
原创 鸿蒙HarmonyOS上的跨平台开发:探索HarmonyOS-Electron实践
摘要:随着鸿蒙生态的不断发展,越来越多的开发者希望能将成熟的Web技术栈与鸿蒙应用结合。但是,鸿蒙系统内置的 ACE(Ability Cross-Platform Engine)引擎 和 Web组件,为我们提供了实现类似Electron开发模式的能力。我们将创建一个简单的应用。在Web页面中有一个按钮,点击后可以调用鸿蒙的原生弹窗(Toast)功能,并且原生侧也能向Web侧发送消息。| **传统 Electron 应用架构** | **鸿蒙 “Electron-like” 应用架构** |
2025-11-25 19:14:45
457
原创 深入解析Ascend C:昇腾AI计算架构的核心编程模型
摘要:AscendC是华为昇腾AI架构的专用C语言扩展,提供多层次并行计算架构、高效内存管理和专用计算原语。其支持任务级、数据级和流水线并行,通过核函数编程模式和数据流范式实现高性能AI计算。配备完整工具链和优化库函数,适用于自定义算子开发、性能调优等场景。未来将持续优化编程模型和工具链,助力开发者在昇腾平台实现AI创新。
2025-11-18 23:19:52
868
原创 昇腾CANN:赋能AI应用的高性能计算架构深度解析
华为昇腾CANN架构是连接AI框架与昇腾芯片的关键中间层,通过对计算图的深度优化和软硬件协同设计,充分发挥芯片算力。其技术特性包括高性能算子库、自动算子开发工具和全栈性能调优能力,显著提升AI模型在昇腾平台的运行效率。典型应用流程涵盖模型转换、图优化、应用开发到部署执行,为开发者提供了从训练到推理的完整解决方案。作为昇腾AI生态的核心支撑,CANN将持续推动AI技术的商业化落地。
2025-11-18 23:12:28
949
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅