分类: NVIDIA

CUDA PTX手册的目录

为了便于搜索指令对应的章节,将ptx官方手册的目录提取出来。 ptx手册:http://docs.nvidia.com/cuda/parallel-thread-execution/index.html CUDA Toolkit v9.1.85 PTX ISA ▽1. Introduction 1.1. Scalable Data-Parallel Computing using GPUs 1.2. Goals of PTX 1.3. PTX ISA Version 6.1 1.4. Docum...

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

Introduction 解读CUDA汇编PTX–目录 NVIDIA CUDA的NVCC编译过程之前已经介绍过了,编译ptx后,会生成cubin文件。 cubin文件是包含了CUDA执行代码节的ELF格式文件。类似于我们常见运行文件。而官方提供了两个工具来反编译cubin文件到sass文件(类似常见的汇编),官方使用文档,由于我目前重点使用的nvdisasm,因此本文只介绍nvdisasm的使用,nvdisasm处理数据的功能更多。 nvdisasm nvdisasm只接受cubin...

Nsight编译器设置保留编译过程

Introduction 之前记录过NVCC编译过程,但是在修改独立makefile时,可能会比较麻烦,而且如果是nsight里的项目,每次build makefile都会被重置。 但实际上nsight有设置编译参数的选项。 (本文将不定期更新,以完善nsight的build设置说明) 编译器设置 在项目上右键,弹出菜单的最后一个即为properties。 展开Build–》Settings,即可看到各种参数设置。 keep keep的含义: Keep all intermediat...

GPU benchmark说明

Introduction 本文内容主要系摘录翻译自Ang Li的博士毕业论文。 1.Perfect Power Efficiency Revolution for Embedded Computing http://hpc.pnl.gov/PERFECT/ Application Domains Kernels PERFECT Application 1 Discrete Wavelet Transform   2D Convolution   Histogram Equal...

GPU基础知识

Introduction 本文内容主要系摘录翻译自Ang Li博士的毕业论文。 1. GPU历史 Arch. Release Year Compute Capability Process Most highlighted Features Flagship GTX/Tesla/Jetson GPUs Tesla 2008 1.0, 1.1, 1.2, 1.3 65 nm GPU baseline architecture GTX8800, GTX9800, GTX280,Tesla1060 F...

Linux安装Nvidia 驱动

Introduction 记录一下从linux的源里安装驱动的命令。 不需要再自己下载run包,关X等。 命令 sudo apt install nvidia-cuda-dev 一般会自动安装最新的二进制driver比如nvidia-384,如果没有自动安装(debian可能会出现这个问题),自己手动安装ndivia-driver or 最新的nvidia-XXX即可。 重启 需要重启。 运行nvidia-smi查看驱动的安装情况: +——————————...

解读CUDA汇编PTX(一) [翻译]

Introduction 本文系翻译文章Demystifying PTX Code。 在我最近的文章里,我展示了怎样从CUDA和OpenCL代码生成PTX文件,本文则将重点解读PTX文件里的复杂指令。 我们还是使用向量加法的代码 代码片段: https://gist.github.com/FindHao/394b2f069788e5a4c80a069638a47e1c 原作者的代码项目:https://github.com/pentschev/ptxtract 本文中,我们将关注OpenCL的P...

解读CUDA汇编PTX–目录

Introduction 近期在研究NVIDIA的CUDA 近汇编 PTX,还不算是真正的汇编,属于中间语言。这里翻译了部分网络上精彩的文章,以及官方的手册。 解读CUDA汇编PTX(一) [翻译] 本文系翻译。主要内容是对一个向量加法的PTX代码分析,适合入门阅读。 解读CUDA汇编PTX(二) SASS nvdisasm工具 工具的说明

NVCC编译过程

Introduction 本文介绍了编写的nVIDIA Cuda代码是如何编译成二进制的。 上图即为官方的流程图。 打印步骤 nvcc -O2 -c vectorAdd.cu -keep -arch sm_20 –dryrun 以samples/0_Simple/vectorAdd为例,写上述编译命令。由于vectoradd这个样例比较简单,因此可以直接使用命令进行编译。 参数说明: 参数 含义 O2 该优化选项会牺牲部分编译速度,除了执行-O1所执行的所有优化之外,还会采用几乎所有的目标配置...

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...