自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenCL

如上图,the host is going to call the host API to manage devices on the right. Devices are programmed using OpenCL C. Underneath all of these are models. These models are here to guide everything.

2024-05-13 15:20:08 730

原创 make、makefile、cmake、nmake

GCC:即GNU Compiler Collection(GNU编译器套件),可简单认为是编译器。它可以编译很多种编程语言(如C、C++、Objective-C、Fortran、Java等)。当程序只有一个源文件时,直接就可以用gcc命令编译它。但是若程序包含多个源文件,用gcc命令逐个去编译显然很容易混乱且工作量大,所以就出现了下面的make工具make:可以看作一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式,通过调用makefile文件中用户指定的命令来进行编译的链

2024-05-07 11:07:59 236

原创 用mac编译、用华为手机跑llama.cpp过程中遇到的问题

【代码】Mac跑llama.cpp过程中遇到的问题。

2024-05-06 15:59:47 509

原创 安卓手机跑大模型

F-Droid是一个安卓平台上自由开源软件的目录,并提供下载安装支持。类似于Google Play。

2024-05-01 19:55:06 185

原创 程序的表示、转换与链接:三、运算电路基础

上面谈到高级语言程序中的各类运算,会被编译器转换为相应的运算指令,程序运行时,CPU执行这些指令,控制操作数在运算电路中被处理。由上可知,计算机中所有运算都是由相应的运算电路完成的,而这些运算电路是由基本的逻辑门电路实现的。如若实现从数据y中提取低位字节,并使高位字节为0的话,可用“&”实现:作“y&0x00FF”。该对什么样的操作数进行运算的呢?本节讲C语言程序中涉及的运算,如算术运算、按位运算、逻辑运算、移位运算等。本节主要介绍高级语言程序中的表达式、运算类指令和运算电路之间的关系。

2024-04-23 16:08:47 661

原创 程序的表示、转换与链接:二、数据的表示和存储

其中,感觉媒体信息如声音、动画。

2024-04-11 15:58:50 866

原创 程序的表示、转换与链接:一、计算机系统概述

语言处理系统提供语言处理程序+语言的运行时系统(运行时系统如库函数,调试、优化等功能)。系统软件又是在指令集体系结构的基础上构建起来的(操作系统最终是由指令实现的,而指令是按照一定规范编写的,这个规范就是指令集体系结构)。而指令集体系结构最终是由计算机硬件实现的,即指令集体系结构是计算机硬件的一种抽象,抽象成软件能够直接使用的一个接口,软件就可通过此接口来使用具体硬件了。冯·诺依曼结构最重要的思想是“存储程序”,即任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。

2024-04-09 18:40:47 588

原创 CMU 10-414/714: Deep Learning Systems --hw4

通过之前作业中完成的所有组件,使用高性能的网络结构来解决一些问题。首先会增加一些新的算子(使用CPU/CUDA后端),然后完成卷积、以及用一个卷积神经网络来在CIFAR-10图像数据集上训练一个分类器。接着需要完成循环神经网络(带LSTM),并在Penn Treebank数据集上完成字符级的预测。

2024-03-21 16:20:44 1059

原创 CMU 10-414/714: Deep Learning Systems --hw3

EwiseSetitem(a, out, shape, strides, offset):这里a是紧凑型矩阵,out是一个非紧凑行矩阵,需要将a的各元素的值赋给out的指定位置上(根据shape、strides、offset确定)。只需要复用上面的代码,将mode改为INDEX_OUT,即调用ScalarSetitem(size, val, out, shape, strides, offset):out是一个非紧凑型子矩阵,根据shape、strides、offset在out的对应位置将值写为val,即

2024-03-19 10:03:44 790 2

原创 CMU 10-414/714: Deep Learning Systems --hw2

hw2实现功能实现参数的多种初始化:用代码实现对应的数学公式即可,原理和公式推导见这里Xavier均匀分布版# 对于全连接层来说,fan_in是上一层的神经元数目,fan_out是当前层的神经元数目# gain是放缩因子,用于调整初始化的范围,默认为1def xavier_uniform(fan_in, fan_out, gain=1.0, **kwargs): a = gain * math.sqrt(6/(fan_in+fan_out)) # w服从(-a,a)的均匀分布

2024-03-11 18:54:04 876

原创 CMU 10-414/714: Deep Learning Systems --hw1

ops.py。

2024-03-07 16:14:06 1003

原创 python中的类

当其不再被需要时,即此对象的引用计数变为0时,它被垃圾回收。但回收不是立即的,而是由解释器在适当的时机,将垃圾对象占用的内存空间回收。此外,以双下划线开头的变量表示是私有类型的变量,只能允许这个类本身内部进行访问;类内的函数和普通函数只有一个特别的区别:前者必须有一个额外的第一个参数,按照惯例命名为self。self参数是对类当前实例的引用,用于访问属于该实例的变量。这些双下划线函数的名称是预先定义好的,当用户和使用某些内置函数或进行特定操作时,python解释器会自动调用这些双下划线函数。

2024-03-06 12:02:44 274

原创 CMU 10-414/714: Deep Learning Systems --hw0

【代码】CMU 10-414/714: Deep Learning Systems --hw0。

2024-03-04 16:14:17 1005

原创 xv6: 第二章 操作系统组织

计算机中的CPU往往被硬件所包裹,这些硬件通常以I/O接口的形式存在。xv6所基于的硬件是由qemu的“-machine virt”模拟的,包括RAM、ROM(有boot code)、与用户键盘和屏幕的串行连接、存储磁盘。

2024-01-20 15:41:52 905

原创 xv6:第一章 操作系统接口

即,调用pipe()、fork()后,父子进程都有了指向管道的文件描述符。子进程将管道的读端口拷贝在描述符0上,再关闭p中的描述符(新管道的读写描述符被记录在数组p中),然后执行wc。就是在之前设置好xargs后面的参数后(存放在Argv中),又读入标准输入中的内容(即通过管道传递过来的之前echo的内容)并存放在Ptr(也就是CmdPath)中。文件描述符是一个强大的抽象,因为它们将所连接的细节隐藏起来了:一个进程向描述符1写出,它有可能是写到一份文件、一个设备(如控制台)、或一个管道。

2024-01-18 09:49:13 782

原创 内存操作函数

【代码】内存操作函数。

2024-01-16 21:26:46 393

原创 argc和argv参数

当需要在程序启动时就携带参数给它,而不是运行过程中输入数据,这时就需要让main函数携带参数。

2024-01-09 13:14:46 477

原创 非递归方式遍历二叉树的原理

对于中序遍历递归算法,当栈顶记录中的指针非空时,应遍历左子树,即指向左子树根的指针进栈;虚线旁的三角形、圆形、方形内的字符分别表示在先序、中序、后序遍历二叉树过程中访问节点时输出的信息。从上图可知(也可从去掉visit的代码得知),从递归执行过程的角度来看先序、中序、后序遍历,是完全相同的。因为前序、中序遍历,遍历到右子树节点时,右子树的左兄弟和父节点都遍历完成,且不会在后面的遍历过程中被需要,因此可直接退栈。而对于后序遍历,根据左右根的顺序,若当前节点是一个左子树的节点,那么:1)其右兄弟还未进栈;

2023-12-17 10:15:58 407

原创 原码、补码的乘除法总结

CPU里的寄存器位数都是统一的。

2023-12-16 18:15:09 1238

原创 程序的机器代码表示--函数调用

如何访问栈帧、如何切换栈帧、如何传递参数和返回值。call和ret指令。

2023-12-10 22:36:18 421

原创 著作总结篇

毛泽东第一次国内革命战争时期1925.12《中国社会各阶级分析》:分清敌友是革命的首要问题1926.9《国民革命与农民运动》:“农民问题乃国民革命的中心问题”,“所谓国民革命运动,其大部分即是农民运动”土地革命战争时期1928.10《中国的红色政权为什么能够存在?》、 1928.11《井冈山的斗争》:提出工农武装割据的思想,这时还未解决以农村为工作中心的问题,但工农武装割据思想为解决这个问题奠定了基础1930.1《星星之火,可以燎原》:进一步阐明中国革命只能走与资本主义国家不同的道路,

2023-12-04 11:08:54 422

原创 常见指令的数据通路和执行过程

作此篇的原因是17年19题:本题选A,做的时候总感觉不够通透,因此把这题涉及到的内容全部看了一遍,顿时没有那种朦胧感了。

2023-11-26 20:14:58 1445

原创 B树与B+树的对比

个分叉(确保节点不要太空),任何一个节点的子树都一样高(确保“绝对平衡”)相同点:除根节点外,都最少。

2023-11-26 11:21:35 1143

原创 因特网的典型应用所使用的TCP/IP应用层协议和相应的传输层协议

因特网应用TCP/IP应用层协议TCP/IP传输层协议域名解析DNS(域名系统)UDP文件传送TFTP(简单文件传送协议)UDP路由选择RIP(路由信息协议)UDP网络参数配置DHCP(动态主机配置协议)UDP网络管理SNMP(简单网络管理协议)UDP远程文件服务器NFS(网络文件系统)UDPIP电话专用协议UDP流媒体通信专用协议UDPIP多播IGMP(网际组管理协议)UDP电子邮件SMTP(

2023-11-25 19:04:55 806

原创 高位片选与低位交叉编址、芯片扩展与多模块存储器、多通道内存

此题中总线宽度是64位(一次存取64bit),由于计算机是按字节编址的,所以一个地址中只有8bit数据(如果该内存条是采用位扩展,扩展成64位,那么一个地址中就64bit,不再是按字节编址),因此要同时读出连续的8个存储字,只能是低位交叉编址方式中的同时启动。而进行字扩展时,就需要片选。由此题也可看出多模块交叉编址中的同时启动和位扩展的区别,二者虽然都是增加一次性读取数据的能力,但是前者是让芯片满足一个存储单元有64位的内存设定,后者是让一个8位存储单元的内存设定满足总线一次可传64位数据的能力。

2023-11-05 21:17:48 1923 4

原创 应用层中一些零碎且易忘的知识点

邮件发送协议:SMTP:SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象(如带有图片、音频或视频数据的多媒体邮件)MIMP:为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME(Multipurpose Internet Mail Extensions)邮件读取协议:POP3和IMAP4都采用基于TCP连接的客户/服务器模式邮局协议POP3:用户只能以“下载并删除”方式或“下载并保留”方式从邮件服务器下载邮件到用户方计算机。不允许用

2023-11-03 19:27:01 158

原创 SDRAM芯片技术

SDRAM:synchronous DRAM,同步DRAM。

2023-10-30 21:02:05 217

原创 随机变量的最大最小值独立性问题

而引发了对于随机变量的max和min值变量来说,二者是否独立的问题。作本篇的原因是下面这道题(出自2023李林6第二套)若要使两边相等,则必须使。考虑两个独立的随机变量。这显然是不必然成立的。为其最小最大值变量,

2023-10-30 15:34:37 1161 4

原创 何时用ds以及何时用dx的问题

简单点来说的话,就是求面积,求的是平面上这个面积,高就是dx;而求旋转体的表面积,求的是三维立体铺在面上的那个面积,高是横着的那个不在平面上的,也就是侧着的弧微分ds;体积的话就和面积一样了,高就是dx。问题源于下面这道题目。题目本身的知识点是处在对称性那里的,第一次做的时候并没有什么问题,但是再做一遍就突然想很多,引发了题目中的思考。上面的过程写完后,就是求阴影部分面积了,这个时候脑子抽了想用ds,发现答案不对。用dx还是ds是通过无穷小来推导出来的,详细推导可参见。

2023-10-30 14:41:53 290

原创 傅立叶级数的意义--傅立叶级数是怎么来的

写这篇文章的起因是14年有道题目:本题实质上是考察傅立叶级数的意义,因此要求扩大为不能只拘泥于傅里叶级数的计算相关问题,故作此篇。

2023-10-29 16:20:51 136

原创 希尔排序和直接插入排序代码对比

不同点就是希尔算法会依次将整个序列分成…16、8、4、2、1组,每次在每个小组内进行直接插入,以此保证下一次扩大分组内元素数时,是基本有序的。两段代码相似的地方也是两个算法一致的地方:即直接插入算法的整体流程和希尔算法的每个组内进行直接插入的流程。

2023-10-25 17:06:06 139

原创 输出变量的机器数表示

【代码】输出变量的机器数表示。

2023-10-24 23:00:40 381

原创 文件系统相关

可分为三个层次:最低层是对象及其属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统(提供给用户的)接口。

2023-10-22 20:19:47 178

原创 向量空间-向量基、坐标转换

VVα1​α2​...αr​Vα1​α2​...αr​α1​α2​...αr​VVVα1​α2​...αr​VVξξx1​α1​x2​α2​...xr​αr​x1​x2​...xr​ξα1​α2​...αr​Vη1​η2​...ηn​ξ1​ξ2​...ξn​[η1​η2​...ηn​ξ1​ξ2​。

2023-10-20 19:12:14 196

原创 进程的描述、控制与通信

挂起:当挂起操作作用于某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。如正在执行的进程会暂停执行;处于就绪状态的进程将暂不接受调度。与挂起对应的操作是激活。

2023-10-19 22:18:59 150

原创 常见数据类型的占用字节数以及类型转换需要注意的事项

char:1B(8位)short:2B(16位)int:4B(32位)long:4B(32位)float(单精度浮点型):4B(32位)double(双精度浮点型):8B(64位)long double:10B(80位)

2023-10-13 20:55:21 144

原创 浮点数运算以及溢出问题

1. 浮点数运算(加减)的步骤:对阶、尾数加减、尾数规格化、尾数舍入、溢出判断2. 关于浮点数溢出的详细说明

2023-10-12 17:25:50 3668

原创 局域网上IP多播与IP单播关于MAC地址的区别

查表转发的结果可指明IP数据报的下一跳路由器的IP地址,但无法指明该IP地址所对应的MAC地址。由此可见,和数据链路层将正常IP数据报封装成帧的步骤不同,正常单播情况下,会通过ARP询问目的主机的MAC地址,而多播情况下,不用询问,只需要在本地根据固定规则将多播IP转换成多播MAC即可。将IPv4多播地址映射成多播MAC地址,即可将IP多播数据报封装在局域网的MAC帧中。这里MAC帧首部中的目的MAC地址字段的值,就设置为由IPv4多播地址映射成的多播MAC地址。

2023-10-11 17:30:59 1562

原创 TLB、页表不命中后发生了什么

至于我类比的Cache不命中,应该对标的其实是“TLB不命中、页表命中”,即该页是在内存中的,只不过其虚拟地址和物理地址的对应关系没有记录在TLB中。下图中真题(第三小问的“需要读TLB多少次”)的答案是查TLB不命中后会再查一次TLB(红色字体是王道的解析),而王道书里给出的地址变换流程图没有这个再查一次TLB的步骤。其实我一开始的理解是,先查一次TLB,不命中且页表也不命中后,发生缺页中断,之后会将该页写入页表和TLB,因此才有的“本次访问会访问两次TLB”,一次是读、一次是写。

2023-10-10 17:50:16 1276 4

原创 各报文段格式集合

数据链路层:MAC帧网络层:IP数据报传输层:TCP报文段、UDP报文应用层:HTTP报文

2023-10-10 16:57:50 279

空空如也

空空如也

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

TA关注的人

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