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

cuda程序运行时间

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


在vpn下通过win10转发ssh

部分学校或公司的服务器需要先登录vpn才能登录,本文记录了在虚拟机的win10中登录vpn,host的Linux下ssh登录服务器的方法。 配置虚拟机里的win10 正常安装win10,并打开ubuntu子系统(或许也可以直接使用win10的ssh),然后sudo apt install openssh-server安装openssh server。编辑/etc/ssh/sshd_config里的端口配置,sudo service ssh start重启ssh。 安 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汇编PTX(二) SASS nvdisasm工具

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

GPU benchmark说明

Introduction 本文内容主要系摘录翻译自Ang Li的博士毕业论文。 1.Perfect Power Efficiency Revolution for Embedded Computing http://hpc.pnl.gov/PERFECT/ more ...

浮点数的二进制存储 2

之前的那篇转载浮点数的存储转载内容比较粗糙。今天又花了点时间试了个具体的例子。部分内容摘自参考。 以32bit浮点数 0.123456789的存储为例,通过在线进制转换获得其16进制表示为 3DFCD6E9 more ...