标签: CUDA

学术阅读 – SAGE笔记

1. Introduction 本文总结了Sage: Self-tuning approximation for graphics engines一文的主要观点,记录部分自己的思考。 作者是密歇根大学Mehrzad Samadi,发表在MICRO 2013上。 SAGE主要实现自动生成多种近似级别CUDA kernel函数的编译器,并在运行时选择可行的kernel函数来达到用户设定的目标输出质量(Target output quality, TOQ)。 它使用了三种优化技术: selective...

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

Nvidia-docker 在docker里安装caffe2

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

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代码分析,适合入门阅读。

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

NVIDIA Tegra TK/X系列板子的零拷贝(zero copy)问题

Introduction 本文原本系翻译,原文地址:Zero Copy on Tegra K1,后(2017.8.25)经学长(http://zangcq.me)指出文章错误,更新部分内容。 之前写过的关于cuda 零拷贝的文章: CUDA零复制内存 CUDA锁页内存和零复制 以下是NVIDIA论坛和Google Groups里关于tegra板子零拷贝的讨论,给出的观点也是零拷贝在unified memory上是没有发生copy行为的,强烈推荐看他们的讨论,可能需要翻墙。 Jetson TK1 ...