计算机程序的构造和解释(SICP) Assignment 2 The game of twenty-one
这次回顾Assignment 2 The game of twenty-one。
学习资料:
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/index.htm
https://github.com/DeathKing/Learning-SICP
https://mitpress.mit.edu/sites/default/files/sicp/index.html
https://www.bilibili.com/video/BV1Xx41117tr?from=search&seid=14983483066585274454
作业地址:
https://mitpress.mit.edu/sites/default/files/sicp/psets/index.html
说明:
mit scheme的read有问题,所以这里使用chez schem ...
计算机程序的构造和解释(SICP) Assignment 1 Introductory assignment
之前把SICP整体过了一遍,完成了70%左右的习题,不过后几章还有不少疑问,所以现在进行二刷,结合官网的assignment进行学习,这次回顾Assignment 1 Introductory assignment。
学习资料:
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/index.htm
https://github.com/DeathKing/Learning-SICP
https://mitpress.mit.edu/sites/default/files/sicp/index.html
https://www.bilibili.com/video/BV1Xx41117tr?from=search&seid=14983483066585274454
作业地址:
https://mitpress.mit.edu/sites/default/ ...
torch中Parameter和tensor的区别
参考资料:
https://blog.csdn.net/hei653779919/article/details/106648928https://discuss.pytorch.org/t/why-model-to-device-wouldnt-put-tensors-on-a-custom-layer-to-the-same-device/17964/4
最近使用pytorch时候碰到了一个Paramerter和tensor的坑, 这里记录一下。
Parameter和tensor在初始化时的区别使用torch的nn.Module时,即使初始化一些不需要计算梯度的量,也应该初始化为Parameter,因为model.to(device)是将Parameter移动到device上,但是并不会将tensor移动到device上。
下面从代码来看这点:
import torch
import torch.nn as nn
class Net(nn.Module):
def __init__(self):
super().__init__()
self.w1 = torch ...
深入理解计算机系统 第8章 笔记整理
这次回顾深入理解计算机系统第8章 ,这一章介绍了异常控制流。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
备注:图片和总结内容均来自于电子书。
参考资料:
https://baike.baidu.com/item/%E5%8F%AF%E9%87%8D%E5%85%A5%E5%87%BD%E6%95%B0/4521100?fr=aladdin
第8章:异常控制流重要概念
控制流:
平滑流;
异常控制流(Exceptional Control Flow, ECF);
异常:
异常号和异常表;
异常表基址寄存器;
异常和过程调用的区别;
类别:
异步:
中断;
同步(也叫作故障指令):
陷阱;
系统调用;
跳转表;
故障;
终止;
C++, Java中的异常是“软件”异常,需要和硬件异常区分;
Segmentation fault
程序与进程的区别;
并发,并行;
...
深入理解计算机系统 第8章 习题解析
这次更新第8章习题。
参考资料:
https://blog.csdn.net/ustc_sse_shenzhang/article/details/105744435
https://www.cnblogs.com/drfxiaoliuzi/p/5483317.html
https://www.cnblogs.com/chan0311/p/9427356.html
https://blog.csdn.net/weixin_47139649/article/details/113998453
https://askubuntu.com/questions/484569/how-can-i-fix-setenv-command-not-found-error-ubuntu-12-04-4
https://www.cnblogs.com/c-slmax/p/5244425.html
https://stackoverflow.com/questions/3985193/what-is-bin-sh-c
https://dreamanddead.github.io/CSAPP-3e-Solu ...
MIT 6.S081 Operating System Enginerring Lab2 System calls
这里给出Lab2 System calls的解析。
学习资料:
https://pdos.csail.mit.edu/6.828/2020/schedule.html
https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/
https://th0ar.gitbooks.io/xv6-chinese/content/
https://www.bilibili.com/video/BV19k4y1C7kA
参考资料:
https://github.com/PKUFlyingPig/MIT6.S081-2020fall/tree/master/reports
准备工作修改测评脚本:
将
#!/usr/bin/env python
修改为:
#!/usr/bin python
测试命令由
./grade-lab-syscall trace
修改为:
sudo python3 grade-lab-syscall trace
System call tracing (moderate)调用过程:
trace.c设置调 ...
深入理解计算机系统 第7章 习题解析
这次更新第7章习题。
参考资料:
https://dreamanddead.github.io/CSAPP-3e-Solutions/chapter7
7.6代码:
extern int buf[];
int *bufp0 = &buf[0];
static int *bufp1;
static void incr()
{
static int count = 0;
count++;
}
void swap()
{
int temp;
incr();
bufp1 = &buf[1];
temp = *bufp0;
*bufp0 =*bufp1;
*bufp1 = temp;
}
表格:
符号
swap.o.symtab条目?
符号类型
定义符号的模块
节
buf
是
外部
m.o
.data
bufp0
是
全局
swap.o
.data
bufp1
是
局部
swap.o
.bss
swap
是
全局
swap.o
.text
temp
否
无
无
无
in ...
深入理解计算机系统 第7章 笔记整理
这次回顾深入理解计算机系统第7章 ,这一章介绍了链接。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
备注:图片和总结内容均来自于电子书。
第7章:链接重要概念提要
链接:
概念以及作用;
执行时间:
编译时;
加载时;
运行时;
gcc编译链接的过程:
编译器驱动程序;
C预处理器;
C编译器;
汇编器;
链接器;
静态链接:
符号解析;
重定位;
目标文件:
可重定位目标文件;
可执行目标文件;
共享目标文件;
EFL文件格式:
.text
.data
.bss
COMMON
符号和符号表:
全局符号;
强符号和弱符号;
外部符号;
局部符号(static);
几种文件格式:
静态库(.a):将常用的函数的可执行目标文件打包为存档的形式。
可重定位目标文件(.o);
可执行目标文件(.out);
共享库(.so, .dll);
库打桩机制:
截获 ...
深入理解计算机系统 第6章 笔记整理
这次回顾深入理解计算机系统第6章 ,这一章介绍了存储器层次结构。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
备注:图片和总结内容均来自于电子书。
第6章:存储器层次结构重要概念提要
局部性:
时间局部性;
空间局部性;
指令局部性;
缓存不命中(读):
强制性不命中(冷不命中);
冲突不命中;
容量不命中;
缓存不命中(写):
直写;
写回;
写分配;
非写分配;
高速缓存:
直接映射高速缓存;
$E$路组相连高速缓存;
全相连高速缓存;
冲突不命中相关概念:
抖动;
选择中间位做索引的原因;
6.1 存储技术略过。
6.2 局部性基本概念
编写良好的计算机程序具有良好的局部性(locality):
计算机程序倾向于引用临近于其他最近引用过的数据项;
或者最近引用过的数据项本身;
这种倾向性称为局部性原理。
有良好局部性的程序比局部性差的程序运行的更快。 ...
计算机程序的构造和解释(SICP) 第5章 习题解析 Part2
这次回顾第五章第二部分习题。
学习资料:
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/index.htm
https://github.com/DeathKing/Learning-SICP
https://mitpress.mit.edu/sites/default/files/sicp/index.html
https://www.bilibili.com/video/BV1Xx41117tr?from=search&seid=14983483066585274454
参考资料:
https://sicp.readthedocs.io/en/latest
http://community.schemewiki.org/?SICP-Solutions
http://community.schemewiki.org/?sicp
https://l ...
关于SelfAttention时间空间复杂度的思考
参考资料:
https://github.com/pytorch/pytorch/blob/master/torch/nn/functional.py
函数接口torch中MultiheadAttention是调用torch.nn.functional中的multi_head_attention_forward函数,首先看下该函数接口:
def multi_head_attention_forward(
query: Tensor,
key: Tensor,
value: Tensor,
embed_dim_to_check: int,
num_heads: int,
in_proj_weight: Tensor,
in_proj_bias: Optional[Tensor],
bias_k: Optional[Tensor],
bias_v: Optional[Tensor],
add_zero_attn: bool,
dropout_p: float,
out_proj_weight: ...
计算机程序的构造和解释(SICP) 第5章 习题解析 Part1
这次回顾第五章第一部分习题。
学习资料:
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/index.htm
https://github.com/DeathKing/Learning-SICP
https://mitpress.mit.edu/sites/default/files/sicp/index.html
https://www.bilibili.com/video/BV1Xx41117tr?from=search&seid=14983483066585274454
参考资料:
https://sicp.readthedocs.io/en/latest
http://community.schemewiki.org/?SICP-Solutions
http://community.schemewiki.org/?sicp
https://l ...