BUAA-FPGA多核并行计算-Exp2-1
本系列是北航计算机学院于 2024 年春季学期开设的一般专业课《FPGA多核并行计算》课程的实验报告记录,由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
深度学习基础代码及相关数据文件上传在 Github 仓库中。
实验分析使用卷积神经网络进行图像识别任务说明:使用 PyTorch 搭建一个简单的卷积神经网络模型,并实现对手写数字的识别。
首先在 MNIST Dataset 中下载 MNIST 数据集,该数据集包含总计 70000 张手写数字的图片,其中划分为 60000 张训练图片以及 10000 张测试图片,每张样本图片都是一个 28x28 像素的灰度图像。
然后使用实验材料中提供的代码构建一个处理这些图像的卷积神经网络,最终的全连接层将全局最大池化层的输出的 64 个特征连接到一个有 10 个输出节点的全连接层,对应于 10 个分类标签(即数字 0~9 )。
实验过程和实验结果见 mnist.pynb。
使用yolov3进行图片中的目标检测任务说明:使用 yolov3 和已经训练好的权重模型对图片中的物体进行目标检测。
本实验环境为 wsl 环境 Ubuntu 20.0 ...
BUAA-FPGA多核并行计算-Exp1
本系列是北航计算机学院于 2024 年春季学期开设的一般专业课《FPGA多核并行计算》课程的实验报告记录,由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
在线实验平台使用及初识PYNQ代码及相关数据文件上传在 Github 仓库中。
实验分析硬件滤波器Overlay的制作
打开Vivado,创建新工程,工程类型为RTL Project,板卡型号选择pynq-z2
在左侧菜单中,选择IP INTEGRATOR下的Create Block Design项,创建模组设计并在模组中添加ZYNQ7 Processing System、FIR Compiler和AXI Direct Memory Access这三个模块
完成模块添加后,对模块进行修改
双击ZYNQ7 Processing System模块,做如下修改:
选择PS-PL Configuration页,勾选HP Slave AXI Interface页的S AXI HP0 interface,启用PS端的AXI协议数据传输接口
双击FIR Compiler滤波器模块,做如下修改:
修改其中的系数向量(系数向量详见后部软件 ...
BUAA-SoftwareEngineering-Task1
本系列文章是 2024 春季学期北航计算机学院本科生课程《软件工程》(嵌入式方向)的实验部分报告,不包含团队大作业项目内容与相关细节
任务1-环境配置与机器人模型搭建工作空间创建注意创建包时使用 urdf xacro
catkin_init_workspacecd ..catkin_makesource ./devel/setup.bashcatkin_create_pkg mrobot_description urdf xacro
然后创建 urdf 文件夹并进行 urdf 文件的书写。
RViz仿真显示此时创建的 urdf 单个文件已经可以配合 launch 文件运行在 RViz 应用中了。
<?xml version="1.0" ?><robot name="base"><!-- one basement two active wheel two all-direction wheel one lazer radar one camera --> <lin ...
BUAA-SoftwareEngineering-Task0
本系列文章是 2024 春季学期北航计算机学院本科生课程《软件工程》(嵌入式方向)的实验部分报告,不包含团队大作业项目内容与相关细节
任务0-ROS配置与话题通信Ubuntu系统安装从北航云盘(提取码:0GhE)下载 Ubuntu 18.04 版本系统,因为只有 18.04 对应的 ROS 版本是 melodic,其他的版本有所不同。
第一步是创建共享文件夹,首先在虚拟机设置—选项中启用共享文件夹,再在虚拟机中挂载文件夹:
sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
melodic(ROS)安装wget http://fishros.com/install -O fishros && . fishros
利用鱼香 ROS 安装 ROS 系统,注意安装过程中要选择 melodic 以及 melodic(桌面版)。桌面版有一些可视化的库,在后续展示小车状态时十分有效。
安装后使用 roscore 指令在终端测试 ROS 是否安装成功
cookedbear@ubuntu:~$ ros ...
BUAA-X86Programming-1
X86汇编程序设计笔记-1
本系列是北航计算机学院于 2024 年春季学期开设的一般专业课《X86汇编程序设计》的学习笔记,由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
基本知识数制及数制间的转换开摆!
二进制数与十六进制数的运算开摆!
ASCII码和BCD码
BCD 码:用二进制编码的十进制数,每一位数用四位二进制数表示
ASCII 码:标准码有 128 个字符
IBM-PC计算机组织本节以最基础的 Intel 8086/8088 为例进行学习,8086 的指令为 16 位,8088 为 8 位。
8088 和 8086 的体系结构和指令系统、指令编码格式、寻址方式完全相同,软件也完全兼容。
IBM-PC微型计算机的基本结构
可直接寻址的内存:$2^{20}=1MB$
地址线有 20 根,但字长只有 16 位
Intel 8086 CPU 寄存器结构
Intel 8086/8088 CPU 主要由运算器、控制器以及工作寄存器三部分组成
通用寄存器通用寄存器共有 8 个:AX、BX、CX、DX、SP、BP、SI、DI;
数据寄存器:前四个寄存器,可以拆分为两个 8 位 ...
超低配主播女孩,略显可惜的小品作——《Pricolage -IDOLIZED-》
超低配主播女孩,略显可惜的小品作——《Pricolage -IDOLIZED-》上一次写杂谈还是上一次,疑似在长达半年之前,今天带来的是一个“像素图形”、“解谜”、“剧情丰富”,并且“多半好评”的新作,《失踪的偶像 Pricolage》(翻译前的标题在文章题目里)。游戏简介麻烦去 steam 页面自己看了,我这就懒得复制了,全年龄、国区原价33。链接放这了,有需要自提。
这次打算随便写点没营养的,反正也是临时起意。写了一点游戏的攻略,推不动了也可以找找看看。
总的来说是一个比较可惜的作品,选的主题和操作方法都是不错的,第一眼看上去是有主播女孩的感觉的,但开推之后才发现几乎完全不同,而且在剧情质量和长度上有点拉跨,使得这部作品有点电波的感觉,我甚至不太推荐付费游玩。不过好在它搭载了官中,翻译质量也还说得过去。
游戏发售在2024年2月19日,我是在21号凌晨达成的全收集,首先一提时长,完全初见大概需要1-3h全收集,这其实主要看的是你在屏幕上点点点的速度,理解上几乎没有任何问题。其次游戏总共有7个结局,1GE,5BE,1TE(至少我认为ED7更现实一点)。我的初见是跟完了一个v的直播, ...
编译课设编译器设计文档
编译器设计文档文档要求请自选一种编译器的源代码进行阅读分析,在此基础上完成总体架构设计,然后在编译器实现的每个阶段完成相应部分的设计文档,格式及内容不限,每个阶段均需写出编码之前的设计,编码完成之后对设计的修改情况。文档包括如下内容:
参考编译器介绍:总结所阅读的编译器的总体结构、接口设计、文件组织等内容
编译器总体设计:介绍自己的将要实现的编译器的总体结构、接口设计、文件组织等内容
词法分析设计:编码前的设计、编码完成之后的修改
语法分析设计:编码前的设计、编码完成之后的修改
错误处理设计:编码前的设计、编码完成之后的修改
代码生成设计:编码前的设计、编码完成之后的修改
代码优化设计:编码前的设计、编码完成之后的修改,未选择 MIPS 代码生成的同学无需完成此项内容
应在各个阶段任务完成相应部分并提交,最终提交一份完整的文档,文档格式为 pdf 版本。
参考编译器介绍一个凝练的小编译器 c4,实现了词法分析、语法分析、目标代码生成,在 525 行内使用了四个函数(实际上也就是三个大模块 + main 函数)完成对简单 C 语言程序的编译,虽然其中的代码实现比较复杂,但是逻辑相对清 ...
编译技术实验课程感想
编译技术课程感想总结课程收获这一整个学期的编译学习,在今天理论考试结束后就暂时告一段落了(文档 21 号截止但是实验期末 25 号考所以没法写进总结里(×
对实验部分来说,最大的收获就是从代码的层面上解释了编译的整个过程,(至少对我来说)揭开了编译这个在大学的整个学习过程中一直处于比较模糊的一个概念。从最开始的词法的解析、语法树的构建;再到符号表管理、错误处理;最后是中间代码和目标代码的生成和优化,实际动手实践过这一系列过程后才对编译这个概念有了具体的实感。
对我来说印象最深的是中间代码的生成,语法分析只提供了语法树作为输入,编译器却要生成一条条的中间代码,最开始我是无法理解这个过程的实现的。但是在理论课学到翻译文法后就大概有了想法,再根据教程文字逐步理解,具体生成了代码后的喜悦感还是很强烈的。
同时我认为编译技术还是整个计算机系学习体系中十分重要的一环,前有运行 mips 代码的实际 CPU(计组),后有根据高级程序设计语言建立的操作系统(操作系统)和相应的程序(面向对象),编译技术实际上把这两部分联系了起来,实现了从高级语言到汇编语言的转换,能够学到这部分知识是十分重要的。
课程改 ...
编译课设编译器优化文档
编译器优化文档本编译器设计初步就采用了寄存器分配和释放的分配策略,此外未进行额外的优化。
在分配寄存器时,遇到的问题主要是不易确定何时释放寄存器,过早释放会丢失其中存储的值,过晚释放会影响分配效率。由于一个 value 在声明后最多只有一个 user 对其进行使用,所以一旦唯一的 user 将其使用后,该 value 就没有其余的使用点了,此时可以在寄存器池中进行释放。
此外还遇到了寄存器池划分的问题,最开始的寄存器包括了参数寄存器,这样会影响函数调用前参数的分配,产生额外 bug。
学期末任务比较重所以只做到了堪堪没有 TLE,有机会还是希望好好研究一下优化的(哭
BUAA-DataBase-Chapter3
第 6 章 关系数据理论本章讨论关系数据理论。关系模式被看作为一个三元组:$R<U,F>$。当且仅当 $U$ 上的一个关系 $r$ 满足 $F$ 时,$r$ 被称为关系模式的一个关系。
由此引出第一范式的定义:
第一范式:该关系的每一个分量必须是不可分的数据项。