自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Matmul x86性能优化笔记

类似设计方案:block 3x32 4x24 6x16 12x8原始方案:6x16对输入进行重排,导致耗时很长新方案好处:整体的IO次数降低,会有cache miss严重,input不重排,weight利用率更好(空间局部性和时间局部性)使用小shape测试,性能提升1/4,但是未进行数据预取和指令流水线展开,还有优化空间。使用模型测试,未提升1/4 分析:未进行数据预取和循环展开,以及未对L1进行分析。3x32 和L1cache分析:原始没有提升的shape是[8, 2048]X[2048,

2022-01-13 18:39:55 161

原创 手写汇编更优?

首先编译器版本低导致的性能问题。其次大部分同学没有汇编优化的技巧或者说没有看看反汇编代码导致的变量和向量寄存器的随便使用,(类似全部命名位0-110,反正通过下标取就好了)这将导致性能的恶化。不断的push pop stack开销,简单的push pop并不会导致很严重的性能恶化,反而导致了严重的指令流水线以及等待问题。好处:指令集使用和指令重排更可控,同时解决了低版本编译器的性能不足问题!缺点:没人想写!x86实例一:// nnacl gemm in x86 fma intrinsic code

2022-01-13 18:11:07 222

原创 流水线冒险

在现代CPU中,采用多级流水线结构,提高CPU的执行效率,我们希望每一周期执行一条或者多条指令,但是在某些情况下流水线的并行将导致错误,无法按照预期执行,这就是流水线冒险。结构冒险:指令占用同一执行单元或者结构,导致一条流水线的执行必须等待另一条流水线的执行。解决方案:1. 填充流水线气泡(nop)2. 增加执行单元或者结构(比如取指和取数同时访问cache,增减数据cache和指令cache)3. 读写寄存器冲突,前半周期读后半周其写等等。数据冒险:一条流水线的执行需要另一条流水线的计算结果。

2021-11-15 20:54:25 285

原创 计算机体系结构-精简指令集和复杂指令集

精简指令集(CISV)和复杂指令集(RISC)一、Intel和AMD可以认为是CISC的典型代表。一条复杂的指令实现复杂的功能,对于编译器的要求低,只需一条指令就可以解决问题。ARM必须将数据加载到寄存器才能被指令使用。举例如下:// Intel AVX指令集如下:// 将寄存器ymm1 += ymm3(或者地址mem中值) * ymm2// 这是一条CISC指令集,最后一个操作数可以从地址或者寄存器中直接读,这将增加逻辑电路的复杂度。vfmadd231ps ymm1, ymm2, ymm3/me

2021-11-15 20:39:50 3020 1

原创 内存使用学习

一、系统内存free指令查看系统的内存使用情况(/proc/meminfo)Mem:系统整个物理内存的大小Swap:磁盘文件中Swap分区或者块,主要是系统在物理内存不够的情况下缓存不常用数据到Swap磁盘那,获取更大的物理内存给应用程序,这将使用磁盘IO导致性能下降。可以设置swappiness参数(0~100)来指定使用swap的紧迫程度,数值越大表示尽可能缓存到swap中。Totel:总的物理内存。used:已经被使用的物理内存。free:完全没被使用的物理内存。shared:被共享的

2021-11-10 15:24:40 404

原创 RISC-V指令集探索

RISC-V指令集是一种矢量指令集,与SIMD的固定长度指令集不同。对于RISC-V指令集来说,其vector长度可变(通过VLEN或者SLEN参数控制),多个vector可以合并为一个更大vector使用(通过VMUL参数控制)。一、 矢量长度控制寄存器VMUL:控制多个vector合并为一个更大的vector,得到更少但是更长的向量寄存器,被允许的向量名字必须是偶数名字,例如:VMUL = m2 {v0,v2,v4…}, VMUL = m4 {v0,v4,v8…} , VMUL = 1 {v0, v

2021-10-29 10:05:12 913

原创 深入了解Arm和X86 Cache共享级别

sdnakskams

2021-10-08 18:35:30 1205

空空如也

空空如也

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

TA关注的人

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