设置NVIDIA GPU的时钟频率

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

通过rclone加快本地与服务器的文件拷贝

在某些情况下,自己的机器直接scp或者rsync拷贝文件到服务器上,速度非常慢。可能的原因之一是服务器端限制了大部分这样的流量。但是在多数情况下,我们自己的机器直接上传/下载文件到google drive或者服务器上传/下载到google drive通常速度可以打满带宽。利用这个特性,就可以借助google drive作为中转,提高本地与服务器之间的文件拷贝。 配置google drive api 参考 more ...

监听HPC上提交的job状态

一般HPC集群都会有任务调度系统,比如PBS或者LSF。这些调度系统会默认内置job的开始和结束邮件通知,但是不好用,甚至管理员可能并没有提供相应的实现。由于消息通知对于我来说是一个比较普遍的需求,不只是在HPC job调度上,且之前购买了pushover的服务,于是写了一个简单的任务监听工具。 usage: notif 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 ...

AMD ROCm学习

rocm是amd推出的类NVIDIA CUDA的开源的开发平台。 架构的变化(todo) 与cuda对比 CUDA ROCm Description SM Compute Unit, CU One of many more ...

配置CLion使用gdb

因为CLion的debug界面非常好用,现在想用它来debug一个executable。项目环境比较特殊,project是一个library,编译会生成so文件。然后通过LD_PRELOAD=XX.so vetorAdd来执行测试的vectorAdd程序。但是debug时,主要是在这个library的源码。library的CMakeList.txt并不包含要测试的vectorAdd程序。 打开Run-->Edit Configurations-->侧边栏的+ -->Remote GDB Server,设置对应的参数如下: more ...

Spack基础

Spack 是一个跨平台的包管理器,可以用来安装和编译不同版本的软件,使得他们不与系统环境冲突并且多个版本可以共存。 1. 下载和安装 spack无需安装,下载完成后,直接调用/spack/bin/下的可执行文件即可。 git clone https://github.com/spack/spack.git export SPACK_ROOT more ...

cuda程序运行时间

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