解读CUDA汇编PTX(二) SASS nvdisasm工具

Introduction 解读CUDA汇编PTX--目录 NVIDIA CUDA的NVCC编译过程之前已经介绍过了,编译ptx后,会生成cubin文件。 cubin文件是包含了CUDA执行代码节的ELF格式文件。类似于我们常见运行文件。而官方提供了两个工具来反编译cubin文件到sass文件(类似常见的汇编), more ...



解决Mendeley Linux下无法输入中文

Introduction 本文介绍了快捷修复mendeley Linux下无法输入中文的问题解决方案。 问题描述 Mendeley是一款协助学术研究的工具,可以作为自己的论文阅读库,方便整理读过的论文,同时它自带的阅读标注工具也还算好用。 但是在Linux下,Fcitx输入法框架支持的搜狗输入法则无法输入中文标注。 查阅是由于mendeley使用的qt库没有添加fcitx的输入法支持库。 解决方案 这里仅说明最简单的利用别人编译好的库的方法。如果下面没有自己的系统,则参考refe more ...

Nvidia-docker 在docker里安装caffe2

Introduction 发现nvidia开始搞nvidia-docker! 如果GPU是共享资源,比如在服务器上,可能不同的用户需要不同的运行环境,但是像vbox这样的重量级虚拟机又过于笨重而且也不支持GPU的直接虚拟化。这时候,共享GPU的环境配置就成了一个大问题,尤其是在配置的应用可能会产生冲突的情况下。 nvidia-docker完美解决了这个问题! docker之前也写过一些简易的入门教程: Docker学 more ...

图像的SNR信噪比

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

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的话)。在同一个block的线程共享一块shared memo more ...


GPU寄存器(一)

Introduction 本文将简单介绍GPU中的寄存器。 寄存器 寄存器是GPU片上高速缓存, 执行单元可以以极低的延迟访问寄存器。寄存器的基本单元式寄存器文件,每个寄存器文件大小为32bit。局部存储器对于每个线程,局部存储器也是私有的。如果寄存器被消耗完。数据将被存储在局部存储器中。如果每个线程使用了过多的寄存器,或声明了大型结构体或数据,或者编译器无法确定数据的大小,线程的私有数据就有可能被分配到local memory中,一个线程的输入和中间变量将被保存在寄存器或者是局部存储器中。局部存储器中的数据被保存在显存中,而不是片上的寄 more ...