自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我会等

交给时间

  • 博客(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

原创 软件测试 —— B / 测试用例

🌈🏆我的格言:一切只是时间问题。​。

2025-10-05 22:58:18 634

原创 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 基础语法 —— C / 运算符

2025-10-04 07:12:37 266

原创 JAVA SE 基础语法 —— D / 逻辑控制

2025-10-03 11:41:34 403

原创 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 基础语法 —— J / String 类

append(数据)

2025-10-01 19:43:03 540

原创 JAVA SE 基础语法 —— K / 认识异常

Java 内置异常无法覆盖所有业务场景(如用户名错误、密码错误),需创建符合业务的异常类。

2025-10-01 19:42:24 621

原创 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 —— H / 自定义指令

内容

2025-09-27 11:46:05 319

原创 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,国产标杆之争见分晓

零成本使用顶级模型!AI Ping 实测 GLM-4.7 与 MiniMax M2.1,国产标杆之争见分晓

2025-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除