• VSCODE-stash

    stash功能 stash功能可以将当前工作区的修改保存起来,方便切换分支或进行其他操作后再恢复。 stash的内容会被保存在一个栈中,可以随时查看和恢复。 使用方法 打开vscode的git界面拓展功能界面,按上面的加号即可stash 在切换分支的时候,会自动弹出提示框让我们输入stash信息 然后可以切换到别的分支 切换回原分支后,如果想恢复之前的stash,进入git界面拓展功能界面...
  • CUDA内核函数执行环境标识符:global,device,host

    三种函数执行环境标识符 CUDA内核函数的执行环境有三种标识符:global, device, host host host在主机(CPU)上执行的普通函数 可以直接省略不写,不写就默认是host global global在设备(GPU)上执行,也就是我们常说的GPU内核函数 可以有参数,不能有返回值 CPU通过<<<>>>调用,可以由__host_...
  • CUDA内存结构

    写在前面 本来以为我已经懂了,但是在实践中发现,自己写的代码中同步时延占据了非常大的部分,所以打算再好好整理一下内存模型 参考了CUDA编程基础以及该作者的其他文章 GPU结构 每个线程在SP(Streaming Processor)中执行,每个SP有自己的寄存器和local memory 由多个SP和一块共享内存(Shared Memory)组成一个SM(Streaming Multi...
  • CUDA,CUDA runtime等概念辨析

    CUDA包含的核心组件 CUDA C/C++语言拓展(现在最新的还支持python了,nv真的强) CUDA工具链:nvcc,nsight等 CUDA driver API:底层驱动接口,直接操作GPU硬件 CUDA runtime 是CUDA架构中的软件中间层,是CUDA driver API的封装 比如提供了cudaMalloc/cudaMemcpy等函数 说白了就...
  • NVSHMEM配置

    环境说明 Debian 单机两卡两个NUMA节点 我大部分使用的是源码编译,一开始没有给我分配sudo权限,后来必须要安装一个驱动,因此后面具有了sudo权限 依赖项:GDRCopy 从源码安装12345`sudo apt install nvidia-dkms-<your-nvidia-driver-version>`make prefix=<install-to-th...
  • 结构体继承小知识点

    C中结构体的继承 起因是一段代码,我没看懂,简化一下是这样:1234567891011121314151617181920212223242526272829303132#include <stdio.h>struct Base { int x; int y;};struct Derived { struct Base base; int z...
  • 内存屏障

    内存屏障(Memory Barrier,或称作 Memory Fence)是用于控制处理器在多线程(或多核)环境中对内存访问的顺序的机制。它是一种同步原语,用于确保特定的内存操作(例如,读取和写入)按照预期的顺序执行。内存屏障在并发编程中非常重要,尤其是在多核处理器上,因为不同处理器的缓存可能导致数据的“乱序”执行和“不可见”问题。 为什么需要内存屏障?在现代计算机系统中,处理器和内存之间通...
  • NCCL代码阅读-06

    RunWorkColl 书接上文。RunWorkBatch走到了这里:1RunWorkColl<Fn, T, RedOp, Algo, Proto>().run(tid, subtn, work) 其中work是一个ncclDevWorkColl 然后按照模版实例化的参数(这边以LL128为例),进入了这个函数:123456template<typename T, type...
  • NCCL代码阅读-nccltest篇

    本篇内容简介 我们以AllReduce操作为例,来说明整个nccl-test的调用栈 我们的场景是单机,两卡,两个进程(一个进程管一个卡) 我们输入的shell命令主要如下:12mpirun --allow-run-as-root -n 2 ./build/all_reduce_perf -f 2 -b 1m -e 1m -C 1mpirun --allow-run-as-root -n 2...
  • pragma weak初遇

    第一次见到pragma weak的位置 我在看nccl-test代码的时候,在src下面有很多集合操作的源代码,项目结构是这样的:1234567891011121314151617181920212223242526272829303132333435363738394041424344.├── build│ ├── all_gather_perf│ ├── all_reduce_p...
1234