- 博客(127)
- 收藏
- 关注
原创 对比源码解读:ops-nn中卷积算子的硬件加速实现原理
卷积算子作为卷积神经网络(CNN)的核心计算单元,其执行效率直接决定了神经网络模型在训练与推理阶段的整体性能。CANN(Compute Architecture for Neural Networks)作为华为面向AI异构计算打造的核心架构,为昇腾AI处理器量身打造了ops-nn神经网络算子库,其中卷积算子经过深度的硬件级加速优化,充分挖掘了昇腾硬件的众核计算、内存调度潜力,相比通用CPU的原生实现,性能实现了数量级的提升。
2026-02-06 23:09:34
180
原创 对比分析:ops-nn与传统深度学习框架算子的差异
在深度学习生态中,算子(Operator)是连接高层模型逻辑与底层硬件执行的桥梁。PyTorch、TensorFlow 等主流框架提供了丰富的内置算子库,极大简化了模型开发流程。然而,这些“通用型”算子往往以**易用性与跨平台兼容性**为优先目标,在特定硬件(如NPU、专用AI加速器)或高性能场景下,其性能、内存效率和定制灵活性常显不足。
2026-02-06 23:08:28
283
原创 ops-nn性能调优实战:提升神经网络推理速度的秘诀
在人工智能计算日益复杂的今天,如何充分压榨昇腾NPU的硬件性能,成为每一位AI开发者必须面对的挑战。CANN(Compute Architecture for Neural Networks)作为连接上层框架与底层硬件的桥梁,其核心价值在于通过极致的优化释放算力。
2026-02-06 23:07:29
228
原创 从零搭建CNN:如何高效调用ops-nn算子库
在深度学习研究和工程实践中,我们通常使用TensorFlow、PyTorch等高级框架来构建卷积神经网络(CNN)。然而,当我们需要在特定硬件平台上获得极致性能,或深入理解神经网络底层计算原理时,从基础的算子库开始搭建模型就变得至关重要。
2026-02-06 23:06:23
264
原创 ops-nn算子库深度解析:昇腾神经网络计算的基础
在AI技术高速发展的当下,神经网络模型的复杂度与计算量呈指数级增长,对底层计算架构的算力支撑和优化能力提出了极高要求。CANN(Compute Architecture for Neural Networks)作为华为面向AI场景打造的异构计算架构,是昇腾AI处理器发挥极致算力的核心支撑,而ops-nn作为CANN生态中核心的神经网络类计算算子库,更是昇腾平台实现神经网络高效计算的底层基础。ops-nn为昇腾硬件量身打造了覆盖CNN、DNN、RNN等主流神经网络的核心计算算子,通过底层硬件级优化和标准化封装
2026-02-06 23:05:02
323
原创 CANN接口解析:从ops-nn源码看如何在CANN中处理复杂的数据类型转换
在深度学习模型的训练与推理过程中,**数据类型(dtype)的多样性与动态性**是不可避免的现实。模型权重可能以 FP16 存储以节省显存,中间激活使用 BF16 以兼顾精度与性能,而某些算子(如 Softmax、LayerNorm)又要求 FP32 累加以保证数值稳定性。此外,硬件平台对特定数据类型的原生支持也各不相同——NPU 可能高效支持 INT8/FP16,而 CPU 更擅长处理 FP32/INT32。因此,**高效、安全、可扩展的数据类型转换(Type Casting)机制**成为 AI 框架底层
2026-02-06 23:03:24
300
原创 CANN算子开发实战:手把手教你基于ops-nn仓库编写Broadcast广播算子
在异构计算领域,CANN(Compute Architecture for Neural Networks)作为连接上层深度学习框架与底层昇腾(Ascend)硬件的桥梁,提供了强大的算力支持。对于开发者而言,深入理解并掌握CANN算子的开发流程,是释放NPU潜能的关键。
2026-02-06 22:58:07
238
原创 CANN神经网络:深度解读ops-nn中Reduce类算子的内存优化策略与代码实现
在深度学习模型的计算过程中,内存访问效率往往比计算本身更能影响整体性能。这种“内存墙”问题在需要大量数据搬运的算子中尤为突出。Reduce类算子(如求和、求最大值、求均值等)正是此类典型——它们需要跨维度聚合数据,产生大量的内存访问操作。
2026-02-06 22:57:07
356
原创 CANN异构计算:利用ops-nn仓库实现自定义算子的高性能并行开发
在AI异构计算快速迭代的当下,CANN(Compute Architecture for Neural Networks)作为面向AI场景打造的核心异构计算架构,凭借承上兼容多类AI框架、对下赋能硬件高效计算的特性,成为解锁AI模型高性能运行的关键。CANN架构的核心优势在于对并行计算的深度优化,能够充分挖掘硬件的多核计算潜力,而ops-nn仓库作为CANN官方核心项目之一,专注于神经网络类算子的开发与优化,不仅提供了覆盖CNN、DNN等主流网络的基础算子,更支持开发者基于其框架实现自定义算子的高性能并行开
2026-02-06 22:56:19
338
原创 CANN算子进阶:基于ops-nn仓库深度解析aclnn接口的两阶段调用机制
在现代AI系统中,算子执行不仅要追求极致的计算性能,还需兼顾资源管理效率、异步调度能力与系统稳定性。传统的“同步调用-立即执行”模式在高并发、低延迟场景下往往成为性能瓶颈:CPU线程被阻塞等待硬件完成计算,无法及时处理新请求;临时内存频繁分配/释放导致碎片化;错误处理逻辑与计算逻辑耦合,难以实现优雅降级。
2026-02-06 22:48:11
620
原创 编译原理 —— 通识课
一组独立的标志位,记录最近一次算术或逻辑运算的结果特征(如是否为0、是否溢出等),是实现程序分支判断的基础。它存放下一条要执行的指令在内存中的地址。程序员不能直接修改它,但程序中的跳转、调用指令会改变其值。CPU中的寄存器是高速存储单元,用于暂存指令、数据和地址。将操作数的各位向左或向右移动指定位数,空出的位补0。将内存操作数的有效地址(而非其内容)加载到寄存器中。先将下一条指令地址(返回地址)压栈,然后跳转到目标标签(函数入口)。(测试EAX最低位,若为0(偶数)则跳转)。: 取负(算术非,求补码)。
2026-01-22 11:03:31
646
原创 计算机网络 —— F / 应用层
主要内容:包括基本概念、网络应用模型(C/S和P2P)、DNS、文件传输FTP、万维网WWW和电子邮件等应用程序相关内容。必要性:不同网络应用的应用进程之间需要不同的通信规则,传输层仅提供端到端通信服务。定位:作为网络体系结构的最上层,建立在传输层之上,为应用程序通信提供服务。核心思想:取消中心服务器,每个节点兼具客户机和服务器的双重功能。重要协议:FTP、SMTP、POP3、HTTP、DNS。典型应用:Web服务、文件传输、远程登录、电子邮件等。局限性:存在响应和带宽限制,服务器故障会导致服务中断。
2025-10-31 17:21:57
518
原创 计算机网络 —— A / 体系结构
定义:计算机网络是将众多分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。设备类型:包括手机、笔记本电脑、台式机、智能手表、智能电视等。特点:即使外部网络断开(如宿舍10点断网),局域网仍可运行。"手机与电视同网络进行投屏":指局域网(计算机网络)"宽带欠费断网":通常指互联网(Internet)"一起去上网":通常指互联网(Internet)无线连接:WiFi连接路由器、5G连接基站。连接方式:通过网线直接连接两台电脑。"银行内网":指专用计算机网络。
2025-10-31 14:24:48
884
原创 Linux(系统编程) —— D / 进程概念
1.1 fork函数初识1.2 fork函数返回值1.3 写时拷贝1.4 fork常规用法1.5 fork调用失败的原因。
2025-10-09 08:35:43
166
原创 Linux(系统编程) —— C / 进程概念
3.1.6 通过系统调用创建进程-fork初识3-2 进程状态。3.4 Linux2.6内核进程O(1)调度队列。3.4.1 一个CPU拥有一个runqueue。3.3.6 补充概念-竞争、独立、并行、并发。3.1.5 通过系统调用获取进程标示符肉。3.2.3 Z(zombie)-僵尸进程。4.7 通过系统调用获取或设置环境变量。4.8 环境变量通常是具有全局属性的。4.6 通过代码如何获取环境变量。5.6 为什么要有虚拟地址空间。3.1.2 描述进程-PCB。4.4 和环境变量相关的命令。
2025-10-09 08:35:24
549
原创 软件测试 —— D / 自动化测试
2.1.2 selenium库。1.3 自动化测试金字塔。1.2.1 接口自动化。2.1.1 安装驱动管理。1.1.1 回归测试。8. 浏览器参数设置。
2025-10-07 07:58:54
150
原创 软件测试 —— C / 测试分类
界面测试(简称UI测试),指按照界面的需求(⼀般是UI设计稿)和界面的设计规则,对我们软件界面所展示的全部内容进行测试和检查,⼀般包括如下内容:• 验证界面内容显示的完整性,⼀致性,准确性,友好性。比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示;• 验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求;• 对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用;• 无效的状态是否设计合理;• 界面的布局和色调符合当下时事的发展。
2025-10-07 07:58:40
993
原创 Vue 3 —— M / 接口文档
1. 启动方式:克隆并启动 vue3-node-server 本地服务。- 地址:http://localhost:4000/api。- 返回:分页信息 + rows 文章数组。- 返回:id、用户名、姓名、头像、创建时间。- 返回:token、权限、状态等。- 返回:更新后文章对象。- code:10000 成功。- 返回:文章完整字段。- 返回:新增文章对象。- 返回:null(成功)- message:提示文本。接口文档大纲(12-接口文档)- 返回:图片 URL 数组。- data:业务数据。
2025-10-05 22:57:54
237
原创 JAVA SE 基础语法 —— E / 方法的使用
调用方法 → 传递参数 → 找到方法地址 → 执行方法体 → 方法结束返回 → 回到主调方法继续执行。:方法调用时通过 “栈” 存储调用关系,每个方法调用对应一个 “栈帧”,包含参数、返回地址等信息。:从原问题出发,逐层调用子问题方法,直到触发递归出口,再逐层返回结果,最终得到原问题答案。形参:方法定义时的参数,相当于函数自变量,用于接收调用时传递的值,名字不影响方法功能。:基础类型参数修改不影响实参,若需修改外部变量,可使用引用类型参数(如数组)返回值类型:有返回值则与返回实体类型一致,无返回值写。
2025-10-04 07:13:07
381
2
原创 JAVA SE 基础语法 —— G / 类和对象
关注参与的对象及对象间交互,无需关注对象内部实现(如现代洗衣机洗衣,仅需操作人、洗衣机、衣服、洗衣粉等对象交互)面向对象是解决问题的思想,通过对象间的交互完成任务,符合人类对事物的认知,利于大型程序的设计、扩展与维护。类是对实体(对象)的抽象描述,包含实体的属性(如洗衣机的品牌、尺寸)和功能(如洗衣、烘干)明确成员方法操作的是当前调用对象的数据(多个对象调用同一方法时,确定操作的对象)管理类的组织方式,类似目录,解决类名冲突(不同包可有同名类),控制类的访问范围。编译后生成独立字节码文件。
2025-10-03 11:40:50
456
原创 JAVA SE 基础语法 —— H / 继承和多态
子类对父类方法的实现过程重新编写,“外壳不变(方法名、参数列表),核心重写(方法体)”,用于实现子类特有行为。:静态代码块(类加载时执行,仅一次)→ 实例代码块(对象创建时执行)→ 构造方法(实例代码块后执行):子类继承父类的成员(属性和方法),仅需关注自身新增成员,呈现 “由简单到复杂” 的层次结构(如。:父类构造调用重写方法时,触发动态绑定调用子类方法,但子类对象未初始化,成员变量可能为默认值(如。:在子类中明确访问父类的同名成员(变量或方法),解决 “就近原则” 导致的父类成员不可见问题。
2025-10-02 11:16:22
882
原创 JAVA SE 基础语法 —— I / 抽象类和接口
简化接口实现,实现子类仅需实现合并后的接口,无需单独实现多个父接口。:明确父类仅提供框架,具体实现由子类完成,符合 “开闭原则”:类未实现所有抽象方法时,需设为抽象类;多态扩展:方法参数用接口类型,可接收所有实现该接口的对象(如。:抽象类可包含普通方法、属性及构造方法,仅抽象方法无实现体。:多个类的公共规范,属于引用数据类型,仅包含抽象方法和常量。:解决 Java 单继承限制,一个类可实现多个接口(如。方法无实现体,必须由实现类重写,且重写时访问权限需为。抽象类可无抽象方法,但有抽象方法的类必为抽象类。
2025-10-02 11:15:47
760
原创 JAVA SE 基础语法 —— F / 数组的定义与使用
创建时仅指定元素个数,元素默认初始化(如 int 数组默认值为 0,引用类型默认值为 null):形参接收数组的地址,修改形参指向的数组内容,会影响实参指向的数组(避免数组拷贝,降低开销):未手动初始化的数组,元素按类型赋予默认值(基本类型按对应默认值,引用类型为 null):多个引用变量可指向同一数组对象,修改其中一个引用操作的数组内容,其他引用可见。:无需关注下标,直接遍历每个元素,简化代码(适用于仅读取元素的场景)创建的对象(如数组),对象生命周期与引用关联,无引用时会被回收。
2025-09-30 12:13:57
347
原创 Vue 3 —— L / 11-Vue3全家桶
2. 技术栈:Vue3 + Vite + Vue-Router + Pinia + ElementPlus + Axios + SCSS + Quill。- ElMessageBox.confirm → 调 DELETE /article/${id} → 刷新列表。2. stores 层:user(token+info+logout)、article(列表+详情+增删改)- validate → 调 POST/PUT 接口 → 关闭抽屉 → 刷新列表 → 清空表单。
2025-09-30 12:13:34
510
原创 JAVA SE 基础语法 —— B / 数据类型与变量
字节是计算机表示空间大小的基本单位,8 个二进制位(bit)为 1 个字节(Byte)存储容量换算关系:1KB=1024Byte,1MB=1024KB,1GB=1024MB。程序中值会经常改变的内容,如人的年龄、身高、成绩等,数据类型用于定义不同种类变量。无论 16 位还是 32 位系统,int 占 4 字节,long 占 8 字节。本质是整数,Java 用 Unicode 编码,占 2 字节,支持更多字符。:由双引号括起,例:“12345”、“hello”、“你好”
2025-09-29 08:12:23
1050
1
原创 JAVA SE 基础语法 —— A / 初识
判断选项(A:class、B:HelloWorld、C:main、D:123abc、E:ARRAY_SIZE、F:$name、G:name:jim)中合法的标识符。JRE(Java Runtime Environment):Java 运行时环境,包含 JVM 与 Java 基础类库,是 Java 程序运行的必要环境。常见错误:源文件名后缀错误、类名与文件名不一致、main 方法名写错、类无 public 修饰、语句无分号结尾、中文分号、JDK 环境未配置好。关系公式:JDK = JRE + 开发工具集;
2025-09-29 08:11:28
1484
原创 Vue 3 —— K / ElementPlus组件库
三部分结构:header(具名插槽)、body(默认插槽)、footer(具名插槽)- el-table-column 用 prop、label、width 定义列。- 高级:show-checkbox、accordion、@node-click。- el-sub-menu 二级菜单、el-menu-item-group 分组。- 结合 el-icon、el-button 实现操作按钮。- 安装 @element-plus/icons-vue。
2025-09-28 10:07:52
369
原创 Vue 3 —— J / vue3 状态管理
组合式 API:defineStore('id', () => { ref + computed + function → return })1. 库存加减(Add / Sub / App 三组件同步 stock)- 新增/删除/全选/过滤/清空 全部通过 actions 完成。- 修改方法:addStock()、subStock()3. 定义 store(src/store/xxx.js)1. 定位:Vue 专属状态管理库,跨组件/页面共享数据。xxxStore.数据 / 计算属性 / 方法()
2025-09-28 10:06:43
333
1
原创 Vue 3 —— I / vue 路由管理器
② 动态路由:path: '/path/:id';to="/path/1" 或 :to="{name,params}"2. 404:{ path:'*', component:NotFound }(放最后)- 把路由配置抽离到 router/index.js,main.js 仅负责导入与注册。1. 重定向:{ path:'/', redirect:'/home' }② 在 App.vue 放置 <router-view /> 出口。router-link-exact-active(精确)
2025-09-27 11:44:12
347
原创 C++ —— G / vector
(一)vector 基础介绍本质定义:表示可变大小数组的序列容器,采用连续存储空间存储元素,兼具数组高效访问特性与动态大小调整能力底层实现:通过动态分配数组存储元素,插入新元素需重新分配空间时,会分配新数组、迁移元素、释放原空间空间策略:分配额外空间应对增长,不同库(如 VS 的 PJ 版本、g++ 的 SGI 版本)采用不同增长策略(如 1.5 倍、2 倍),保证末尾插入操作复杂度为常数级。
2025-09-26 13:51:39
782
原创 C++ —— H / list
(一)list 基础介绍核心特性:序列式容器,支持在常数范围内对任意位置进行插入和删除操作,可前后双向迭代底层结构:双向链表,每个元素存储在独立节点中,节点通过指针指向前后元素与 forward_list 对比:forward_list 是单链表,仅支持朝前迭代,结构更简单高效;list 为双向链表,迭代灵活性更高但结构稍复杂与其他序列式容器(array、vector、deque)对比优势:任意位置插入、删除元素执行效率更优。
2025-09-26 13:49:29
878
原创 C++ —— I / stack 和 queue 类
(一)queue 基础介绍容器本质:容器适配器,专为先进先出(FIFO)操作场景设计,元素从容器一端(队尾)插入,从另一端(队头)提取。实现原理:封装特定底层容器,通过特定成员函数访问元素,入队操作在底层容器尾部,出队操作在底层容器头部。底层容器要求:需支持empty(判空)、size(统计元素个数)、front(获取头部元素)、back(获取尾部元素)、push_back(尾部插入)、pop_front(头部删除)操作,标准容器 deque、list 均符合要求;默认底层容器为 deque。
2025-09-25 08:16:37
974
1
原创 C++ —— J / 模板进阶
核心场景:模板可实现与类型无关的通用代码,但针对特殊类型可能出现错误结果(如比较指针地址而非指向对象内容),需通过。代码复用:减少重复代码编写,提升开发效率,是 C++ 标准模板库(STL)的实现基础。代码膨胀:模板实例化会生成多个类型的专属代码,导致可执行文件体积增大,编译时间延长。非类型形参:以常量作为类 / 函数模板的参数,在模板中可直接作为常量使用(如。缺陷:函数模板特化代码可读性低、书写复杂,对参数类型复杂的场景不友好。定义:在原模板基础上,针对特定类型设计的专属实现版本,分为。
2025-09-25 08:16:04
681
1
原创 奇偶校验(课上)
校验类型核心规则目的奇校验(Odd Parity)原数据 + 校验位后,整个数据中 “1” 的总个数为奇数确保 “1” 的个数是奇数,若接收端统计为偶数,则判定出错偶校验(Even Parity)原数据 + 校验位后,整个数据中 “1” 的总个数为偶数确保 “1” 的个数是偶数,若接收端统计为奇数,则判定出错。
2025-09-24 11:45:55
1125
1
零成本使用顶级模型!AI Ping 实测 GLM-4.7 与 MiniMax M2.1,国产标杆之争见分晓
2025-12-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅