CUDA二进制探索

本文记录了探索NVIDIA CUDA SASS语法对应的二进制位的过程。 1. CUDA二进制文件 1.1 SASS NVCC编译过程和解读CUDA汇编PTX(二) SASS nvdisasm工具提过CUDA的汇编SASS,使用cuobjdump工具反编译出的SASS格式如下: more ...


GPU寄存器(二)

1. Introduction 本文介绍了NVIDIA GPU寄存器的相关内容。 2. GPU寄存器 2.1 物理寄存器的映射 关于gpu寄存器之前我还整理过:GPU寄存器 一个程序的近机器语言级别的中间语言中适用的寄存器,我们称之为“体系结构寄存器,architected register”,这些寄存器会被处理器映射到物理寄存器(Physical Registers)上。 CPU使用寄 more ...

图像的SNR信噪比

1.灰度值 图像灰度值的概念是什么?灰度也可以认为是亮度,简单说就是色彩的深浅程度。 所谓颜色或灰度级指黑白显示器中显示像素点的亮暗差别,在彩色显示器中表现为颜色的不同,灰度级越多,图像层次越清楚逼真。灰度级取决于每个像素对应的刷新存储单元的位数和显示器本身的性能。如每个象素的颜色用16位二进制数表示,我们就叫它16位图,它可以表达2的16次方即65536种颜色。如每一个象素采用24位二进制数表示,我们就叫它24位图,它可以表达2的24次方即16777216种颜色。 灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图象,它的象素值 more ...

Cache替换策略

1. Introduction 本文主要内容系Reference的整理,介绍了cache访问模式的分类和几种cache替换策略。 2. Cache访问模式分类 $$ \begin{align} &A:( a_1 , a_2 , ... , a_{k-1} , a_k , a_k , a_{k-1} , ... , a_2 , a_1 )^ N\text{ for any k}\\ &B:( a_1 , a_2 , ... , a_k )^ N \text{ k > cache size}\\ &C:(( a_ more ...

Host1Plus(美国便宜VPS)购买和使用|板瓦工bandwagon、Vultr、digital ocean、阿里云国际主机购买

Introducation 本文原来是介绍Host1Plus和搬瓦工的,在使用Host1Plus半年以后,发现该款VPS实际上很差,后来用了一年的搬瓦工,现在搬瓦工已经上了KVM架构的机器,也可以开启bbr加速了。 更新了SHADOWSOCKS科学上网这篇文章,添加了kvm架构更换内核方式使用bbr加速。 本文的视频教程:S01E05 b more ...

罹生2018.12.6

失眠。 所以干脆不睡了。 我太渴望成功了。世俗意义上的成功。 所以我反而有点理解父亲得病时那种不甘心的表现,之后很久很久都没有走出的阴影,以及期间对健康的期望对锻炼身体的急迫。 这样的心态和人生是我想要的吗? 总是看到说走就走的旅行、归返山林的隐者,那这样的生活是我想要的吗? 从小被教育要出人头地,考试成绩好,夸奖和物质奖励,考差了,持续不断地批评,体罚印象里倒是不多。从一年级的第一场考试拿了双百获得的两本《小葵花》开始,我享受到了这种反馈激励奖惩措施的好处。或许是因为第一个激励太重要,现在还记得那两期《 more ...


半精度浮点数Half

1. Introduction 本文介绍了半精度浮点数的基本概念以及f32到f16转换的截断法。 混合精度逐渐成为提升深度学习速度的一种有效方法,其本质上,是以运算的精度换速度,当然前提是精度需要在可接受的范围内,或者说应用本身具有容错性(error tolerant)。 在cuda中,half2以及tensorcore的应用,就是对于精度损失容忍性的体现。 在线进制转换工具 2. 半精度浮点数 2.1 位宽 more ...

gpgpusim runtime的dockerfile

Introduction 之前写过一篇在docker里跑gpgpusim(下称参考文献1),今天花了一点时间,写了个完整的dockerfile,并上传到了docker hub上去。现在简化一下运行的步骤。 gpgpusim-runtime 在docker hub的地址: https://hub.docker.com/r/findhao/gpgpusim_runtime/ 运行 执行参考文 more ...