自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Triton vs Ascend C:从基础架构看昇腾算子开发的底层逻辑

维度Ascend C开发语言C++Python内存管理手动自动Tiling策略Host侧手动计算Kernel侧分块逻辑性能上限🌟🌟🌟🌟🌟 (天花板)🌟🌟🌟🌟 (很强,但在特定场景有损耗)开发效率🐢 (慢,代码量大)🚀 (快,代码简洁)回到最初的问题:该学哪个?我的建议是:都要看。先看图4(Ascend C基础):哪怕你不手写C++算子,你也必须搞懂NPU的SPMD模型和存储层级。这是“道”。再看图3(Triton迁移):利用Triton快速实现业务逻辑,验证算法。这是“术”。

2025-11-20 23:49:18 675

原创 【C语言】函数

C语言函数是程序的基本组成单元,用于模块化代码并提高复用性。文章详细解析了库函数的使用方法、自定义函数的定义语法、形参与实参的关系(值传递机制)、return语句的作用,以及数组作为函数参数的特殊处理(传递地址而非值)。此外,还介绍了函数的嵌套调用和链式访问、函数声明与定义的关系,以及在多文件项目中如何使用头文件。最后,解释了static关键字对变量和函数链接属性的影响。掌握这些函数相关知识对编写高效、模块化的C程序至关重要。

2025-11-20 09:40:33 934

原创 保姆级教程:手把手带你跑通第一个Ascend C算子工程

很多新手(包括刚开始的我自己)看到“算子开发”这四个字,第一反应是“这也太高大上了,我肯定学不会”。但经过CANN训练营图4课程“从0到1掌握Ascend C算子工程开发方式”的洗礼,我发现只要把架子搭好了,填代码其实就像填空题一样。

2025-11-19 23:48:43 756

原创 基于Ascend C开发具备泛化能力的Vector算子:我的代码重构与思考

简单说,你的算子不能是“硬编码”的。Hard-Coded(差):假设每次处理256个fp16数据,循环10次。Generalized(好):给我任意长度N(比如 10001),我都能自动算出需要循环多少次,最后一次剩多少数据,并且不出错。Tiling切分:怎么把任意长度的数据切成适合UB(Unified Buffer)大小的块?尾块处理:最后一块数据如果不满足32字节对齐,或者填不满一个Block,怎么算?通过这次重构,我的算子终于从一个“只能演示的Demo”变成了一个“能扛实战的工具”。

2025-11-19 23:39:08 1019

原创 【C语言】数组

在编程中,我们经常需要处理大量同类型的数据,例如一个班级的学生成绩、一个星期的每日气温等。即,第0行的所有元素存放完毕后,紧接着存放第1行的所有元素,以此类推。这样的越界下标,编译器不会报错,但这会导致未定义行为,可能破坏其他数据或导致程序崩溃,是C语言中最危险的错误之一。二维数组本质上是一种特殊的一维数组,它的每个元素本身也是一个一维数组。这个技巧非常通用,因为它不依赖于硬编码的数组大小,即使数组大小改变,代码也无需修改。上面的写法是标准且清晰的。数组的第一个元素的地址是最低的,随后的元素地址依次递增。

2025-11-19 18:10:29 820

原创 【C语言】分支与循环(下)

本文介绍了如何在C语言中实现猜数字游戏,重点讲解了随机数的生成方法。首先使用rand()函数生成伪随机数,通过srand()设置种子使其每次运行产生不同序列。利用time()函数获取时间戳作为动态种子。详细说明了如何限定随机数范围(如1-100),并给出了完整的猜数字游戏代码实现,包含菜单界面、游戏逻辑和次数限制功能。最后展示了带有5次猜测限制的改进版本,增强了游戏的可玩性。

2025-11-17 16:33:04 1186

原创 【C语言】分支与循环(上)

本文详细介绍了C语言中的分支结构和循环控制语句。内容包括:if语句的多种形式(if/else、嵌套if、悬空else问题)、关系操作符、条件操作符(三目运算符)、逻辑操作符(&&、||、!),以及switch语句的使用方法。循环部分讲解了while循环、for循环、do-while循环的执行流程和实际应用,并介绍了break和continue语句的用法。最后通过循环嵌套示例展示了9x9乘法表的实现。全文采用代码示例辅助讲解,帮助读者理解C语言流程控制的核心概念和编程技巧。

2025-11-16 12:57:23 752 1

原创 【C语言】操作符详解

/ 定义// 定义并初始化优先级和结合性决定了操作符与操作数的组合方式。求值顺序决定了子表达式计算的先后,这在很大程度上是未定义的。表达式3、4、5:类似地,任何依赖于子表达式求值顺序的表达式,如(如果fun有副作用),a[i] = i++;等,都可能导致未定义行为。核心原则:不要编写任何依赖于子表达式求值顺序的代码。

2025-11-15 14:53:06 1758

原创 【C++】模板初阶

C++模板初阶摘要 本文介绍了C++模板的基础知识,包括泛型编程概念和模板实现方法。主要内容: 泛型编程:通过模板实现与类型无关的通用代码,提高代码复用率,解决函数重载带来的重复代码问题。 函数模板: 定义格式:使用template<typename T>或template<class T>声明 原理:编译器根据调用时实参类型自动生成具体函数 实例化方式:隐式实例化(自动推断)和显式实例化(手动指定类型) 模板匹配规则: 非模板函数优先于同名模板函数 模板可生成更好匹配时会选择模板

2025-06-03 17:28:01 2371 2

原创 【C++】内存管理,深入解析new、delete

本文介绍了C/C++内存管理机制,重点分析了动态内存分配方式及其实现原理。内容涵盖:1)C/C++内存分布(栈、堆、数据段等)及各区域特性;2)C语言的malloc/calloc/realloc动态内存管理方式对比;3)C++新增的new/delete操作符,详细解析其与malloc/free的关键区别在于对自定义类型构造/析构函数的自动调用;4)new/delete的实现原理,包括operator new/delete底层机制及自定义类型的处理流程。文章通过代码示例演示了内置类型和自定义类型的内存操作差异

2025-05-26 15:52:03 2861 3

原创 【C++】日期类

文章摘要: 本文详细介绍了C++中日期类的设计与实现,重点讨论了成员变量、默认成员函数、比较运算符重载以及加减运算符重载。日期类的成员变量包括年、月、日,默认成员函数中只有构造函数需要显式定义,其他如拷贝构造、赋值运算符重载、析构函数等均可由编译器自动生成。比较运算符重载通过复用==和<实现,简化了代码。加减运算符重载中,+复用+=的实现方式更为高效。文章通过代码示例展示了如何实现这些功能,并提供了调试和优化的建议。

2025-05-19 15:51:43 3053

原创 【C++】类和对象(3)

本文深入探讨了C++中构造函数的初始化列表及其特性。初始化列表是构造函数中用于初始化成员变量的另一种方式,语法以冒号开始,后跟以逗号分隔的成员变量及其初始值。初始化列表的特性包括:每个成员变量只能出现一次;引用、const成员变量及无默认构造的类类型变量必须在初始化列表中初始化;C++11支持在成员变量声明时提供缺省值;初始化列表按成员变量声明顺序初始化,与列表中的顺序无关。此外,文章还提到C++支持内置类型隐式转换为类类型对象,需有相关构造函数。总结指出,无论是否显式使用初始化列表,每个构造函数都有初始化

2025-05-12 12:36:45 2785

原创 【C++】类和对象(2)

本文主要介绍了C++中类的默认成员函数,特别是构造函数、析构函数、拷贝构造函数和赋值运算符重载函数。本文从各默认成员函数的语法基础,语法细节,特殊特性展开讲解。文章还指出,当编译器默认生成的函数不满足需求时,用户需要自行实现这些函数。

2025-05-11 20:27:41 1775

原创 【C++】类和对象(1)

C++类和对象,内存对齐,this指针,

2025-04-26 14:13:02 1738

原创 【C++】inline:从优化提示到现代编程的核心工具

inline函数,内联函数,#define

2025-04-26 13:48:43 1047

原创 【C++】代码可读性的默契二重奏:当缺省参数遇上函数重载

C++缺省参数、函数重载

2025-04-15 14:51:06 950

原创 【C++】引用的本质:从“别名”到高效编程的利器

C++引用详解

2025-04-15 14:39:56 688

原创 【C++】C++命名空间实战秘籍

namespace命名空间详解

2025-04-15 14:32:35 849

原创 【C++】祖师爷赏饭吃之C++的前世今生

C++发展史,C++文档,C++的现实应用

2025-04-14 15:46:59 782

原创 C 语言文件操作相关的常用函数fopen fclose fputc fputs fgetc fgets相应的代码示例。

这只是 C 语言文件操作函数的部分介绍,后续我会继续补充其他函数的讲解和示例代码。C 语言中与文件操作相关的常用函数,并提供相应的代码示例。

2024-07-13 23:10:46 1541 1

原创 【C语言】二维数组传参本质

二维数组传参本质

2024-04-21 22:00:01 1059 4

空空如也

空空如也

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

TA关注的人

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