自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(271)
  • 资源 (2)
  • 收藏
  • 关注

原创 Computer architecture & Cyber security & Quantum computing交友

如果您也是computer architecture方向的博士硕士,希望交个朋友,欢迎后台私信。

2023-01-23 21:04:07 1549

原创 C语言调用malloc

在C中,如果。

2024-04-02 16:12:39 58

原创 大模型笔记【3】 gem5 运行模型框架LLama

如上图所示,8核都跑起来了,处理到Hi这个token的时候,CPU0执行了2.9 Billion指令,相对于4核时的5.4 Billion约减少了一半。可以看出来,实际上只跑起来4核,定位后发现,模型默认是4核,需要增加-t 8选项,即threadnumber设置成8,下面的红色标注的command.上图是gem5运行大模型时生成的simout,我增加了AtomicCPU 运行指令数量的打印,这是在gem5的改动。如果你下载的是gem5的源码,那么现在运行起来应该只是最前面大模型的输出。

2024-01-21 22:28:09 663 1

原创 大模型笔记【2】 LLM in Flash

但是Flash带宽较低,LLM in Flash通过尽量减少从Flash中加载参数的数量,优化在DRAM中的内存管理,实现在Flash带宽有限的条件下提高计算速度的目的。上图左侧是如何在aggregated usage和incremental transfer中保持平衡,window设置的越大,每次新需要加载neruon也就越少,但是需要在memory中累计保存的空间占用的也就越大。2. 预测Relu层的稀疏性。上图右侧为一个window size为5的示意图,粉色的是要删除的元素,蓝色的是新加入的元素。

2024-01-08 16:08:07 1114

原创 大模型笔记 【1】 大模型初探

大模型笔记1

2024-01-03 16:54:33 956

原创 GPU Microarch 学习笔记【3】Tensor Core

Tensor Core是如何进行计算的

2023-11-20 05:29:01 265

原创 GPU Microarch 学习笔记【2】Unified Memory

3. Unified Memory是如何处理page fault的4. Unified Memory Page Fault的相关论文最新的Apple M3 芯片最亮眼的可能是支持dynamic caching,如下图所示。具体说来就是传统的GPU分配内存时,不是实时的分配内存,而是在一开始就分配好固定大小的内存,这时分配的内存是按照任务需要内存上限分配的,M3新支持的dynamic caching,可以支持GPU实时的分配内存,提高了内存的利用率,因为内存的使用就像上面的图片,有波峰和波谷。

2023-11-13 21:46:13 451

原创 Standford Compiler Course Assignment 2

>内部的,比如classes是在union中定义的value,而右侧的,比如class_list,我们需要定义规约该非终结符时,需要进行的操作。第二部分的作业是语法分析,通过编写cool.y(这个assignment的任务),利用bison将其自动生成语法分析LALR(1)的代码。起对应的位置如类名称即为 TYPEID,对应$2, feature_list对应$4,因此其动作action写成了如上图所示的样子。语法分析,就是将词法分析阶段已经识别好的token,按照语法的规则,构建抽象语法树的过程。

2023-10-24 21:40:05 114

原创 Standford Compiler Course Assignment 1

这里就是状态机,初始时和正常状态下都处于INITIAL状态,cool语言时的注释以"( *" 开头,考虑到会存在嵌套注释,因此在INITIAL,COMMENTS,INLINE_COMMENTS三种状态下,都可能会遇到 "( * " 此时我们进入COMMENTS状态,因此BEGIN COMMENTS。我列出了主要用的,主要用的还是yymore(),用来继续处理token的内容;上面是环境的问题,下面是除了课程的资料以外需要的了解的内容,遇到的问题我就直接问chatgpt了。在遇到换行符时,增加行数计数。

2023-09-01 18:36:47 443

原创 GPU Microarch 学习笔记 [1]

从CPU Microarch的角度学习学习GPU

2023-08-13 23:48:41 409

原创 llvm frontend learning from ChatGPT

【代码】llvm frontend learning from ChatGPT。

2023-05-12 21:00:53 154 1

原创 llvm backend pass demo learning from ChatGPT

【代码】llvm backend pass demo learning from ChatGPT。

2023-05-12 20:55:33 145

原创 anoymous page & heap

图转自 https://blog.csdn.net/zsj100213/article/details/82121289。

2023-05-09 01:28:57 490

原创 AMD Ryzen 7 3D Cache

可以看到5800X3D L3(32MB)+3D L3(64MB)相对于5800XL3(32MB),加持的3D L3 Cache使得在较大的memory region时仍然能有较小的延迟,但是latency增加了4个cycle,≈2ns。AMD最近出了新一代的Ryzen9,高端处理器加载了第二代的3D Cache,相对于第一代基于zen3架构Ryzen7 中的 3D Cache,进行了一些改进,我们先看一下第一代3D Cache的优缺点。硅薄膜虽然是很好的导热材料,但是不可避免地会带来散热的问题。

2023-03-18 17:58:08 773

原创 gem5 arm架构 fullsystem spec2017 benchmark 仿真

gem5 full system ARM 仿真

2023-01-03 02:43:47 2158 7

原创 理解DDR Part 1

DDR

2022-12-14 16:31:19 2961

原创 Introduction of DRAM

DDR简介,待完善。

2022-12-07 21:01:23 261

原创 computer architecture simulator汇总

最近读了【A Survey of Computer Architecture Simulation Techniques and Tools】,这篇文章汇总了常用的模拟器。

2022-11-15 05:35:38 1227

原创 RL an introduction Chap4 Dynamic Programming Code Understanding

reinforcement learning chap4 dynamic programming

2022-10-13 17:38:41 134

原创 Gem5 simpoint 全流程

gem5 simpoint全流程

2022-09-08 22:10:19 2389 15

原创 Gem5, simpoint的warm up

gem5 simpoint 的warm up

2022-09-08 17:23:56 838

原创 Gem5 Fullsystem,Spec2017

gem5 fullsystem运行spec2017

2022-09-01 18:57:44 1128 2

原创 Gem5 Bug Record

gem5 踩坑合集

2022-08-28 22:59:47 624

原创 C++ 前置声明和incomplete type

c++ 前置声明和incomplete type

2022-07-29 03:09:50 456

原创 Gem5, Spec2017 与 Simpoint

简单介绍Gem5,Spec benchmark与Simpoint工具链

2022-07-14 01:39:42 3171

原创 Anaconda安装tensorflow遇到的问题

使用pip下载库时出现Cannot uninstall ‘six’. It is a distutils installed project…解决办法pip install six --upgrade --ignore-installed sixFailed building wheel for grpcio去这个网站下载对应版本的grpcio whl文件下载之后 离线installpip install D:\download\grpcio-1.26.0-cp35-cp35m-win.

2022-01-26 14:27:01 1503

原创 memory virtualization: shadow page & nest page

系列文章目录文章目录系列文章目录前言一、标准page walk二、软件页表虚拟化 shadow page三、硬件页表虚拟化 nested page四、对比前言虚拟化是一个比较复杂的概念,包括硬件抽象层级别的虚拟化,操作系统层面的虚拟化,以及库函数的虚拟化,还有编程语言层面的虚拟化。java virual machine就是编程语言层面的虚拟化,可以实现跨平台的运行。本文指的虚拟化是在系统层面,一个host 系统上运行多个guest系统。当然这也是一个比较大的话题,先介绍最近学习的页表虚拟化。

2021-12-12 16:27:40 1129

原创 【Clean C++】 读书笔记 第四章

Clean C++ code 第四章 读书笔记命名与注释源代码文件、命名空间、类、模板、函数、参数、变量和常量等,都应该具有意义的名字名称应该自注释不要为易懂的代码写注释函数函数应当只做一件事,而且尽可能的小目前c++编译器对函数优化已经做的足够好,可以写小函数,不会有开销的影响函数的参数应该尽可能的少,一个参数比较理想。避免在函数的参数使用bool类型的标志参数,因为这样调用时不可避免的需要使用true/false, 可以通过函数组合调用的方式,或者通过派生的方式控制不同

2021-11-27 23:23:29 543

原创 函数指针与汇编

typedef double (*PTRFUN)(int); PTRFUN pFun; double glFun(int a){ return a*2.4;} int main() { pFun = &glFun; (pFun)(2); (*pFun)(2); (glFun)(2); (&glFun)(2); } main 函数中的几行 汇编对应如下 mov QWORD PTR [rip+0x2

2021-11-04 15:14:53 539

原创 c++ 引用类型的类成员变量

Code:#include <iostream>using namespace std;class A {public: A(int& k):a(k){ // 必须要在初始化列表中进行初始化 cout << a <<endl; } int getVal() const { return a; }public: int &a;};int main(){ int

2021-10-31 12:12:20 1373

原创 编译原理总结

编译原理总结编译原理总结文章目录编译原理总结前言一、编译的过程二、前端1.词法分析2.语法分析2.1 LL分析2.2 LR分析3.语义分析4. 中间代码5. 后端5.1 指令选择5.2 活跃性分析5.3 寄存器分配5.4 数据流分析5.5 静态单赋值总结前言总结编译原理的重点。一、编译的过程编译分为前端和后端。前端包括词法分析,语法分析,语义分析,中间代码生成。后端主要负责对中间代码进行优化,生成目标平台代码,对目标平台代码进行优化等。前端与目标平台基本无关,因此有通用的工具:词法

2021-10-10 00:39:27 574

原创 编译原理:代码优化

常用的优化方法删除公共子表达式删除无用代码常量合并代码移动强度削弱删除归纳变量基本块的优化:局部优化技术大部分都是将基本块转为有向无环图(DAG).每个语句s都对应一个内部结点N结点N的标号是s中的运算符;同时还有一个定值变量表被关联到N ,表示s是在此基本块内最晚对表中变量进行定值的语句N的子结点是基本块中在s之前、最后一个对s所使用的运算分量进行定值的语句对应的结点。基于DAG删除无用代码:删除所有没有附加活跃变量(活跃变量是指其值可能会在以后被使用的变量)的根结点(即

2021-10-07 22:39:24 3521

翻译 LLVM是如何编译指令的

本文将会通过一条指令在LLVM中经过不同阶段的变化,从源程序语言中的语义结构到成为机器二进制码来研究LLVM的工作原理。本文不会介绍LLVM是如何工作的,这需要理解LLVM的设计以及code以及各种细节。输入代码我们从一段C代码开始探险,如下:int foo(int aa, int bb, int cc) { int sum = aa + bb; return sum / cc;}本文将会重点关注除法操作。ClangClang是作为LLVM的前端使用的,负责将C,C++,以及Obj

2021-09-30 18:47:48 791

原创 【缓存预取】Primer on Hardware Prefetching(二)

二 指令预取乱序执行可以掩盖寄存器不足以及数据访问带来的部分latency。但是,乱序执行无法缓解取指的latency。因此,取指的latency也是内存墙的瓶颈之一。2.1 Next-Line PrefetchingNext-Line Prefetching是指令预取最简单的形式,在现代大多数的处理器中都有使用。因为代码在内存中是线性按序存放的,通常超过一半的指令取指都是按序的。其结构如下:如上图所示,我们可以将预取的指令存入stream buffer,如果处理器访问该PC,就将指令从strea

2021-09-05 11:44:00 1445

原创 【缓存预取】Primer on Hardware Prefetching(一)

一 预取为了隐藏latency,预取机制需要:1)准确的预测memory访问地址 2) 预测何时预取 3)选择在哪里防止预取的数据1.1 预取地址如果程序执行的是顺序的访问数组,那么预取的地址有规律,比较方便做。但是如果是间隔的访问变量,多重数据结构或者是控制流相关的访问,比如访问二叉树,那么地址就不好预测。上面说的是数据预取,那么对指令的预取的效果就主要依赖于程序是顺序执行,还是正在执行分支。顺序预取比较简单,但是指令控制流的行为以及该行为是否可预测,就决定了指令预取的效果。预取地址也依赖于c.

2021-09-05 00:25:16 1263

翻译 【译文】CPU空闲时做什么?

https://manybutfinite.com/post/what-does-an-idle-cpu-do/https://www.kernel.org/doc/html/v5.0/admin-guide/pm/cpuidle.htmlhttps://unix.stackexchange.com/questions/426190/why-is-cpu-idle-called-as-the-last-function-of-the-start-kernel-routinehttps://unix.s

2021-08-29 23:08:38 907

原创 Spectre & Meltdown Vulnerability一图总结

欢迎关注我的公众号《处理器与AI芯片》

2021-07-10 22:21:01 234 1

翻译 【技术文章】Understanding Spectre & Meltdown Vulnerability 3

这篇文章中,我们将要讨论spectre以及它对当前系统的影响。正如之前文章介绍的,处理器使用推测执行以及分支预测来更好的利用CPU的周期。Spectre 攻击会推测执行一些永远不会被执行的指令。这些推测执行的指令会改变微架构状态(比如CPU cache),从而引起side channel attacks。这些side channel attacks包括Flush-Reload Attack(相同的攻击也在Meltdown中使用)。Understanding SpectreSpectre和Meltdo.

2021-07-10 21:45:14 204

翻译 【技术文章】Understanding Spectre & Meltdown Vulnerability 2

现代操作系统的一个核心安全特性就是在同一个系统中提供不同进程之间的隔离,确保一个进程不能访问另一个进程的数据。在我们现在的系统中,我们经常提供多个虚拟机,作为不同的进程,运行在一个机器上,假设其中的一个是victim,另一个是attacker,因此我们更加需要process isolation。上篇文章介绍了,现代的处理器通过privilege level提供了这种隔离。一个特权级别比较低的进程无法访问另一个特权级别高的进程的资源,比如kernel memory。然而,meltdown技术破解了这个se

2021-07-04 15:45:30 158

翻译 【技术文章】Understanding Spectre & Meltdown Vulnerability 1

这个blog的系列文章会介绍最近的security Spectre和Meltdown。程序是如何执行的 一段程序就是在memory中的一系列指令。这些指令在处理器中一条接一条的被执行。每个指令执行时都有其对应的特权级别,privilege level。特权级别在X86指令集中,控制当前运行在处理器上的程序的访问资源权限,比如memory区域,I/O 端口以及特殊的指令。因此,这基本上也意味着在处理器上执行的任何指令都是有特殊的权限级别,可能只能访问系统资源(memory region或者IO端.

2021-07-03 22:48:04 185

RISC处理器设计PPT

胡乃武讲解riscv处理器的设计架构,PPT形式,比较清晰。

2018-04-09

开源MIAO GPU白皮书

MIAOW白皮书,研究GPU架构的基本资料,感兴趣的同学可以看看。

2018-04-09

空空如也

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

TA关注的人

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