- 博客(22)
- 收藏
- 关注
原创 [手搓 RISC-V 高性能模拟器]笔记三
通过p_offset和p_filesz两个成员就可以获得相应segment中的所有内容,所以这里就不再需要section header的支持,但需要ELF文件头中的信息来确定program header表(每个program header的大小相同)的开头位置,因此ELF文件头(它包含在第一个LOAD segment中)也要加载到内存中 [1]程序头是专门用来描述段信息的,这个段不是内存中的段,内存中的段是记录在全局描述符表中的。程序头描述的段是磁盘上程序中的一个段,常见的如代码段和数据段,下面是其结构。
2023-04-23 10:40:55
446
原创 【重读《C和指针》】笔记1
scanfgetchargetstrlenstrncpy缓冲区的作用在计算机里应用程序调用一个系统调用从用户态进去内核态再将结果回到用户态开销较大。如果我们调用printf函数,每次输出一个字符都要从用户态切换到内核态,那么连续输出多个字符开销成本将会非常大,这个时候缓存就起到非常大的作用了,输出的字符串先在应用程序里缓存起来,缓存到一定数量后再调用系统调用一次性将缓存数据输出到标准输出。由于只调用了一次系统调用,比连续调用多个系统调用性能高上不少。在生活中我们也能感受到缓存带来的效率提升,打个比
2023-04-13 09:27:07
96
原创 [手搓 RISC-V 高性能模拟器]笔记二
然后定义machine_load_program()用来读取elf文件,获得其文件指针传递给mmu_load_elf()获取elf header,然后将读取的entry地址付给pc寄存器。mmu结构体:用于保存处理器内存的所有信息,目前包含entry内存地址(即程序从何处开始执行)其中,mmu_load_elf()函数作用就是读取elf header给mmu。status结构体:包含处理器中的32个普通register和pc。首先定义了machine结构体,包含了status和mmu。
2023-04-09 16:52:17
198
原创 [自制深度学习推理框架]笔记1
在内存中并不连续,容易造成内存的访问,扩容以及修改的不方便(比如卷积的时候cache不命中)类作为数据管理类来实现Tensor类。Tensor类的主要工作是封装。KuiperInfer框架中使用Armadillo里的。,可以简单的认为就是按照BCHW方式保存。其中fcube是float cube。完成padding,fill函数。并提供了方便数据访问的对外接口。Cube与Matrix关系详见。本次笔记包含第一课和第二课。
2023-04-03 14:01:20
150
原创 TensorFlow-lite添加自定义算子
TFLITE-SOC GEMM接口分析涉及文件:tensorflow/lite/kernels/modeling/util.sc.h|-- PrintMatricesInfo|-- PrintMatrix|-- PrintMatricestensorflow/lite/kernels/cpu_backend_gemm.htensorflow/lite/kernels/cpu_backend_gemmlowp.hcpu_backend_gemm.hGemm函数的重载定义// So in
2022-01-28 15:14:47
2880
原创 在TensorFlow-lite中添加SystemC支持
安装对应版本Bazel今天下载的tensorflow对应的commit为5a6c3d2d139547b19fe8ed5ae856ed8c6ebbd7f7,bazel对应的版本为4.2.2。TFLITE-SOC的docker上没有正确版本的bazel,因此需要安装,步骤如下(此处默认在docker container里,拥有根用户权限,否则部分命令行需要添加sudo):首先安装依赖apt-get install build-essential openjdk-11-jdk python zip unzi
2022-01-21 08:32:41
1470
原创 NVDLA HW仿真指南
本文记录基于Verilator的NVDLA HW仿真流程,针对nvdla/hw/nvdla1分支的nv_full设置。编译生成make文件进入./hw文件cd ./hw运行Makefilemake设置对应的路径(以下是我的docker容器的设置,如使用自己的容器,需手动调整)##======================= ## Project Name Setup, multiple projects supported ##=========
2022-01-14 07:20:18
1169
原创 NVDLA Loadable文件解析
本文严重依赖LeiWang1999的NVDLA Parser | Loadable Analysis首先,安装flatbuffers(1.6.0)git clone https://github.com/google/flatbuffers.gitgit checkout v1.6.0cmake -G "Unix Makefiles"make make install 并生成解析所需的loadable_generated.h文件(loadable.fbs由nvdla/sw提供)flatc
2022-01-13 02:37:57
451
原创 NVDLA CMOD仿真指南
本文记录了NVDLA的QBOX(QEMU+SystemC)的源代码debug方法。主要步骤如下:重编译hw的cmod代码重编译vp开始debug注意!使用Docker的时候,一定要在run或者exec的时候使用priviledged模式!docker exec --privileged -it f163e40905c1 /bin/bash重编译hw的cmod代码首先在cmod文件夹下Makefile的C++代码编译控制行中添加argument “-g”CPPFLAGS ?= $(INC
2022-01-04 04:21:30
1333
2
原创 NVDLA VP使用指南
本文用流水账的形式记录如何使用nvdla的virtual platform编译生成NVDLA硬件可识别代码并且在QEMU中模拟运行。NVDLA硬件为full模式,并没有对硬件做任何的配置。下载nvdla/vp中提到的docker,所有的编译工具都已经预编译并且放在/usr/local/nvdla/中docker pull nvdla/vp准备caffe模型可以从以下链接下载编译好了的caffe模型,并从以下链接获取测试样例。此处需要注意,caffe模型是使用黑底白字训练的,而我们得到的测试
2021-12-23 01:51:13
3230
8
原创 TorchSeg代码学习笔记(二:data和augmentation)
本文以cityScapes和BiSeNet.R18为例BaseDatasetTorchSeg的dataset定义在furnace/datasets/BaseDataset.py中,根据setting来提供基本的图像和label的读取功能。而setting定义在各个网络的config.py中定义。cityscapes数据集cityScapes数据集的定义在furnace/datasets/cityscapes/cityscapes.pyimport numpy as npfrom data
2020-11-13 05:49:54
464
1
原创 TorchSeg代码学习笔记(一:安装)
代码repo:https://github.com/ycszen/TorchSegTorchSeg安装:由于本机上没有安装nvcc,我采用docker来实现下载对应docker:docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04运行容器:docker run --gpus all -p 12222:22 -it --name=lbaiSeg --mount type=bind,source=/mnt/VOL_2/lbai/,target=/l
2020-11-12 11:47:36
249
原创 【论文复现】End-to-end Pseudo-LiDAR for Image-Based 3D Object Detection训练环境搭建
End-to-end Pseudo-LiDAR for Image-Based 3D Object Detection 是发表在CVPR2020的单目目标检测模型,它通过对双目摄像头图片进行深度估计,然后将深度图从image view转换成欧氏空间,再通过现成的3D目标检测模型进行检测。一些细节:Depth Estimation和3D object detection模型全部使用pre-trained的模型,分别是SDN(ICLR2020)和PointRCNN(CVPR2019)以及PIXOR(CV
2020-11-02 03:21:13
2349
12
原创 如何使用fit_generator和keras.utils.Sequence来解决mutiple output的数据生成问题
如何使用fit_generator和keras.utils.Sequence来解决mutiple output的数据生成问题有用的几个网页为什么要使用Sequence使用Sequence时需要注意的子函数需要注意的的点有用的几个网页https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-flyhttps:/...
2020-04-12 09:35:17
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人