设置NVIDIA GPU的时钟频率

NVIDIA GPU默认是自动调频,如果需要profile程序,通过ncu获得的结果可能会不准确,尤其是对于一些比较小的程序来说。因此,测试需要固定gpu的时钟频率。需要执行的命令如下: sudo nvidia-smi -pm 1 nvidia-smi -q -d CLOCK sudo nvidia-smi -lgc 2100,2100 more ...

ubuntu nvidia gpu driver的安装

之前记录过一篇使用nvidia提供的run包安装驱动的文章,现在更新下使用apt source更新的方法。 目前主要有三个apt源可以更新nvidia gpu driver ubuntu XX-updates/restricted,ubuntu官方源里的闭源驱动 https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa gra more ...

Ubuntu下开启TPM2.0安装nvidia driver

windows 11 发布了,新系统要求开启TPM2.0(一个安全芯片标准,8代及以后的intel和较新的amd cpu都支持)。但是之前在ubuntu下使用run包装nvidia 驱动时,一般都会遵循一些教程关闭UEFI的secure boot,同时也就关闭了TPM等。本文记录了如何开启TPM,在ubuntu下安装nvidia gpu driver。 开启TPM 以华硕主板, amd cpu为例,在UEFI中找到启动-->安全启动-->OS Type,选择Windows UEFT 模式。 在高级-->AMD fTPM设置, more ...

获得带源码行信息的cuda汇编

之前记录的一些cuda的用法中也有关于cuda汇编的一些介绍。本文主要记录了带源代码行信息的cuda汇编文件的获取。主要内容参考CUDA Binary Utilities 程序编译时需要添加的参数 在makefile或者cmakelist文件中,添加如下内容到nvccflag或者手动添加到nvcc编译的参 more ...

cuda unified memory

在Pacsal及更新的GPU中,managed memory在调用cudaMallocManaged()分配以后, 不一定在device memory上实际malloc。或者说,page和page table直到被GPU或CPU访问以后才被创建。page可以在任意时间迁移到任意memory,driver会采用启发算法来维护数据局部性和防止过多的page faults产生。 Reference https://developer.nvidia.com/blog/unified-memory-cuda-beginners/ more ...

cuda程序运行时间

写了两个脚本来获得通过nsys profile出来的cuda程序执行时间。 1. runnsys.sh runnsys.sh working_dir program args 第一个参数working_dir是设置后面你的程序在哪里跑。比如有些程序是编译在build/,但是实际input和work的目录在另外的目录下。这个参数设置为实际程序运行的目录即可。同时,reports也将生成在这个目录。 后面是正常运行cuda程序时的命令和参数。 more ...


CUDA 10 Memory Transaction的一个现象

1. Introduction 近日,在写一些microbenchmark分析cuda程序访存问题时,发现了一个有趣的问题。目前尚未找到合理的解释,先记录下来以待后续分析。 实验平台为:NVIDIA GTX950,sm5.0,maxwell架构。 2. Global Memory A memory "request" is an instruction which accesses memory, and a "transaction" is the movement of a unit of da more ...

CUDA Sanitizer Samples使用

1. Introduction CUDA 10.1推出了新的API:The Compute Sanitizer API,提供了更底层更丰富的Instrumentation API。 https://docs.nvidia.com/cuda/sanitizer-docs/SanitizerApiGuide/index.html 目前相关文档还比较简单,本文记录下官方Samp more ...

-->