自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 triton笔记

【代码】triton笔记。

2025-09-14 17:18:31 93

原创 编译。。。。。。

书。

2025-08-26 12:51:18 364

原创 Tensor scatter和gather

tensor<1x2x 3xindex>指的是从源地址搬1x2个切片,切片的坐标描述是一个三元组,对应scatter_dims([0, 1, 2])tensor<1x2x 3xindex>指的是从源地址搬1x2个切片,切片的坐标描述是一个三元组,对应gather_dims([0, 1, 2])提取源数据的一片放在目的地中, 目的地是一个框架,不是搬来的数据大小,提取的数据是形状<=目的地形状。提取源数据的一片放在目的地中, 目的地的大小是搬来的数据大小,提取的数据是形状=目的地形状。

2025-08-26 09:27:15 233

原创 mlir 文本提示跳转

配置Pdll_server_path。安装MLIR-custom。

2025-08-21 13:51:57 140

原创 mlir 工具

【代码】mlir 工具。

2025-08-21 13:48:50 142

原创 mlir CollapseShapeOp ExpandShapeOp的构造

CollapseShapeOp把一些维度合并,总Tensor的size不变;ExpandShapeOp把一些维度拆开,总Tensor的size不变。rhsReassociation类型是SmallVector本质是SmallVector<SmallVector<int64_t>>Reassociation: 输入Tensor到输出Tensor对应的维度坐标信息:把哪些维度合并在一起。Reassociation: 输出Tensor到输入Tensor对应的维度坐标信息:把哪些维度合并在一起。

2025-08-21 13:44:51 227

原创 gdb使用

lauch.json配置。调试控制台可输入命令。

2025-08-21 11:23:03 134

原创 mlir walk

applyPartialConversion使用WalkOrder::PreOrder, ForwardDominanceIterator<> 遍历后放入一个vector,从前往后拿出使用。applyPatternsAndFoldGreedily使用默认设置,遍历后放入一个vector,从后往前拿出使用。设定遍历当前节点与其同级算子block之间形成的CFG的遍历顺序。设定op与其内部op形成的树的遍历顺序。

2025-08-21 10:53:40 359

原创 mlir affineMap

【代码】mlir affineMap。

2025-08-19 16:50:51 279

原创 mlir 类型

从operand/result获取其数据类型和shape cast之前要先get type。获取memref 或 tensor里的字典属性。构造memref 或 tensor里的字典属性。此operand指作为参数传入的op。

2025-08-19 16:18:40 196

原创 mlir replace

如果在一个opA后新建了一个opB, opB用了opA的结果作为输入,那么用replaceAllUsesWith会报错,因为把所有使用opA的结果的地方换成opB的结果的时候,在构造opB的时候本身也使用了opA的结果,就造成opB的输入使用了opB的输出报错。

2025-08-19 16:10:28 174

原创 mlir setInsertPoint

在每次createOp之前都要思考一下setInsertPoint是在前还是后,防止新create的Op的operand在其之后报错。setInsertPointAfter在后插入。setInsertPoint在前插入。

2025-08-18 11:27:14 122

原创 mlir clone

IR 中 Value的映射替换.在clone的模块为:Operation/Region/Block时,如果被克隆的模块所使用的参数来源于外部,需要把原复制模块里的操作数value映射为新的从外面传入的value。

2025-08-15 17:48:15 248

原创 mlir operand

注:修改了operand之后,如果涉及某个variadic operand里的个数变量,则需要修改"operandSegmentSizes"属性里对应operand的值。getODSOperandIndexAndLength(1) → 返回 advanceOperands 在总operands里的。idx 是算子的第idx个operand在 ODS operand td文件中的声明里的顺序编号,从 0 开始。注:如果修改了operand的类型,那么block argument的类型也要修改。

2025-08-14 21:06:02 243

原创 cuda编程

需要注意的是,__threadfence() 做不到 grid 级别的同步,所以不能在一个核函数里,先求 sum 再除以 sum,因为核函数中间无法保证求得的 sum 是所有元素中的和,求 max 同理,所以,softmax.cu 中,求max和sum都是使用了单独的kernel,因为单独的kernel是一定可以保证 grid 中所有 block 同步的。,warp归约计算最后的结果将汇总到第一个线程中,第一个线程要把这个数据搬运到s_mem,以供同一个warp中的其他线程使用。,并行性更好,效率更高。

2025-07-07 00:59:01 829

原创 每日新知识

写在函数外类外的文件中:静态全局变量,作用域仅限于定义它的文件,其他文件无法访问。如果写在了头文件中,相当于包含这个头文件的文件中自定义了一个静态全局变量作用于本文件,即每个文件各得到了变量的副本,各文件中对这个变量的操作不影响原始头文件中的这个变量。静态成员函数:静态成员函数是属于类而不是属于某个特定对象的函数。静态成员函数只能访问静态成员变量和静态成员函数。写在函数外类内,静态成员变量。所有类的实例共享一个静态成员变量。它在类的所有对象之间是共享的。写在函数中:静态局部变量。示例 1:计算整数的总和。

2025-04-02 11:31:58 191

原创 linux修改python3为默认python

【代码】linux修改python3为默认python。

2024-07-11 10:46:26 647 1

原创 clangd的使用,实现跳转提示

若没有找到compile_commands.json文件可以通过如下方式之后再便于即可生成。在项目最顶层的.cmake文件中或者CMakeList文件中加入如下命令。一、插件卸载c插件下载clangd。二、设置搜索clangd。

2023-09-02 18:51:20 2411 1

原创 vscode免密连远程

【代码】vscode免密连远程。

2023-08-25 14:00:46 716

原创 把编辑方式变成vim

【代码】把编辑方式变成vim。

2023-07-05 14:41:15 176

原创 batch_norm_grad

BatchNormGrad

2022-11-11 17:50:18 363

原创 神经网络学习

神经网络

2022-11-07 17:57:25 669

原创 WinTerm的使用

将禁用选项改为 合适的数值.

2022-10-20 15:31:17 4259 2

原创 vector的使用

https://blog.youkuaiyun.com/u011555996/article/details/96958965如果已经知道vector的大小那么给其赋值除了push_back还可以for(int i=0;i <vec->size();i++){ (*vec)[i]= static_cast<float>(generator(*(Eengine.getEngine()))); }

2022-04-24 11:14:42 122

原创 C++中存 取 传递数据

vector结构体struct addOperandsSpec { explicit addOperandsSpec(int64 add_operands_num = 0, int64 samples_num = 0, double add_operands_mean = 0.0, double add_operands_stddev = 0.0,

2022-03-31 00:13:17 553

原创 linux环境变量 export

https://www.cnblogs.com/hnrainll/archive/2011/06/29/2092860.html

2022-03-25 14:51:29 141

原创 C++指针的使用

字符串后面加.c_str()``string str1 = “kkkffff”;const char *ptr = str1.c_str();

2022-03-23 11:33:50 834

原创 python 文件 文件获取

if os.path.isdir(args.input): files_names = os.listdir(args.input)//从文件夹路径获取文件名 放入list files_names.sort() data_htmls = '' for i in files_names: file_path = os.path.join(args.input, i)//文件夹路径和文件名 拼成文件路径

2022-03-16 23:48:26 1071

原创 python list和string之间的转换

https://www.cnblogs.com/klb561/p/9211268.html

2022-03-15 22:47:06 723

原创 python 占位符 连接符

‘{}字符串’.format()print(’{0:2d} {1:3d}’.format(0,1)){0:02d} 第一个0对应format的0位置的数据 第二个0表示两位十进制数字的字符串,不够两位用0填充print(’{0:2d} {1:3d}’.format(0,1)) 可写成print(’{:2d} {:3d}’.format(0,1))ord() 转字母为对应的ASCII码各种进制之间相互转化int('0x17', 16) # 16进制转化为10进制 23int('101010

2022-03-15 20:41:39 1066

原创 python 命令行传参

def parse_args(): import argparse parser = argparse.ArgumentParser(description='tensor analysis') parser.add_argument('-i', '--input', default='.', help='path of your data

2022-03-15 20:36:56 675

原创 reduce_sum

ruduce 减少sum和通过减少维度的方式来求和–即在某个维度上进行求和 进而减少了维度https://blog.youkuaiyun.com/qq_16137569/article/details/72568793

2022-03-09 10:43:58 251

原创 markdown书写

自动生成目录(可跳转)npm i doctoc -gdoctoc 文件路径 //生成文件路径doctoc 文件路径 -u //更新文件目录

2022-03-05 14:13:01 369

原创 C++构造函数

#include <iostream>#include <stdio.h>using namespace std; class Student{public: //默认构造函数 Student() { num = 1001; age = 18; } //初始化构造函数 Student(int n, int a) :num(n), age(a) {}private: int num; int age;};int main(){ //用默认构

2022-03-02 17:32:10 283

原创 python 常见错误

SyntaxError: invalid syntax (明明代码没什么错误)----上一行少了个反括号

2022-02-28 21:16:03 396

原创 python画图 做表

print(’{0:2d} {1:3d}’.format(0,1)){0:02d} 第一个0对应format的0位置的数据 第二个0表示两位十进制数字的字符串,不够两位用0填充print(’{0:2d} {1:3d}’.format(0,1)) 可写成print(’{:2d} {:3d}’.format(0,1))ord() 转字母为对应的ASCII码各种进制之间相互转化int('0x17', 16) # 16进制转化为10进制 23int('101010',2) # 二进制转化为10进制

2022-02-25 16:51:03 707

原创 C++ 自定义数据类型

struct Date{ int day, month, year;};Date birthday = {23, 8, 1983};

2022-02-20 10:02:40 548

转载 template<typename T>

比如我们要计算两个数的加法,针对不同类型可能需要设计不同类型的函数,那么template 就可以很好的解决这个问题。原始解决方法:int sum(int a,int b);double sum(double a,double b);float sum(float a,float b);但是当用template 后为:template T sum(T a, T b){  return a+b;}...

2022-02-16 09:51:42 447

原创 docker

更新docker先退出docker exitmake update-dev-docker进入docker执行 make start-dev-docker ssh_port_mapping=10234

2022-01-28 16:18:09 2595

原创 linux命令

Ctrl+a 将光标移至输入行头,相当于Home键Ctrl+e 将光标移至输入行末,相当于End键Ctrl+k 删除从光标所在位置到行末Alt+Backspace 向前删除一个单词修改权限chown -R rui.xue:rui.xue ./*chmod 777 test.sh //777对应文件所有者 同ID的组 其他用户 7为读+写+执行( r=4,w=2,x=1);修改成功之后 ll一下可以看到文件后面有个*代表可运行了把文件的所有者改为shiyanlousudo chown shiy

2022-01-28 16:16:41 946

编译、、、、、、、、、、、、、

编译、、、、、、、、、、、、、

2025-08-26

空空如也

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

TA关注的人

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