Category: C/C++

1

GPU 共享内存bank冲突(shared memory bank conflicts)

Introduction 本文总结了GPU上共享内存的bank conflicts。主要翻译自Reference和简单解释了课件内容。 共享内存(Shared Memory) 因为shared mempory是片上的(Cache级别),所以比局部内存(local memory)和全局内存(global memory)快很多,实际上,shared memory的延迟要比没有缓存的全局内存延迟小100倍(如果线程之间没有bank conflicts的话)。在同...

0

curses-键盘编码-openssl加解密

嵌入式系统实验报告 一 1.Introduction github源码地址 1.1 键盘编码 按键过程: 当用户按下某个键时, 1.键盘会检测到这个动作,并通过键盘控制器把扫描码(scan code)传送到计算机;键盘扫描码跟具体的硬件有关的,不同厂商对同一个键的扫描码有可能不同。 2.计算机接收到扫描码后,将其交给键盘驱动程序; 3.键盘驱动程序把这个扫描码转换为键盘虚拟码;虚拟码与具体硬件无关,不同厂商的键盘,同一个键的虚拟码总是相同的。然后,键盘驱动...

1

CacheSim-5 实验数据分析

Introduction CacheSim 简单的Cache模拟器 专辑目录本文统计了组相联路数、cache_line_size,cache_size以及替换策略对miss率和读写通信数据量的影响,并以图表的形式展现出来。 1. 组相联路数的影响 不变条件:cache_line_size 32bytes,LRU,Cache_size 32KB 组相联路数 miss率 1 1.735562 2 1.338225 4 1.305841 8 1.289746 1...

1

CacheSim-4详细实现cache miss以后的操作

Introduction CacheSim 简单的Cache模拟器 专辑目录本文主要介绍cache miss以后的操作。接上一章的cache hit以后的操作,如果miss了 index = get_cache_free_line(set_base); set_cache_line((_u32)index, addr); if (is_read) { cache_r_count++; } else { cache_w_count++; } cache_mi...

1

CacheSim-3 详细实现check_cache_hit等函数

Introduction CacheSim 简单的Cache模拟器 专辑目录本文详细说明load_trace、check_cache_hit等函数。 1.程序入口 main.cpp主要针对一个测试文件,配置了不同cache line大小,不同组相联路数,不同的替换策略。默认使用写回法。默认cache大小32KB(0x8000 Bytes)。在每次循环里,首先初始化cache的配置,然后设置替换策略,最后读入trace文件并开始模拟内存读写过程。 2.初始化...

1

CacheSim-2 类的设计

Introduction CacheSim 简单的Cache模拟器 专辑目录本文说明了模拟的Cache需要完成的功能,以及大体框架设计,通过头文件内容的说明,使读者获得整体的认识。 1.模拟Cache需要完成的功能 1.1 指令读取 由于主存访问trace以文件形式给出,trace文件下载所以需要从文件中读取访存trace。其中trace的格式如下: s 0x1fffff50 1 每行的第一个字符是表示该条指令的类型,s为写(store),r为读(read...

1

CacheSim-1 Cache背景知识简介

Introduction CacheSim 简单的Cache模拟器 专辑目录 本文简要介绍Cache的背景知识,以及Cache结构的划分。 在计算机系统中,CPU高速缓存(英语:CPU Cache,在本文中简称缓存)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。 当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问...

5

手把手教你写Cache模拟器

Introduction 项目地址:CacheSim- GithubStar也放到了CacheSim-开源中国上这个专辑记录了写一个非常简单的cache模拟器的过程。主要是因为我要做的研究里,使用gem5来跑程序太慢了,所以只能自己在项目里实现一个简易的cache模拟器,获得一些实验数据。正好加州大学圣迭戈分校(University of California, San Diego,简称为UCSD,又常译为加州大学圣地亚哥分校)有一门Principles ...

0

远程调试nvidia jetson tk1 tx1 cuda板子

Introduction Nvidia针对异构本身有一套开发平台,叫NVIDIA® Nsight™,有很强的debug和程序分析工具。有Nsight Visual Studio和Nsight Eclipse两个版本。在这里的平台:Host: x86_64 Ubuntu 14.04 Tegra tx 1板子: Ubuntu 14.04.4 LTS Linux tegra-ubuntu 3.10.67-gcdddc52 #1 SMP PREEMPT Mon N...

0

Cmake的使用[转]

Introducation 本文系转载,源于我要修改CLion自动生成的cmakelist。 一、基本使用 安装:下载二进制包后可直接解压使用 从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败 使用:cmake dir_path,生成工程文件或makefile文件 二、概念 out-of-source build,与in-source build相对,即将编译输出文件与源文件放到不同目录...