logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

节点内 cuda GPU 之间 P2P IPC 通信的硬件机制参考

CPU 是协调者,通过 PCIe 配置空间管理 GPU,更新 IOMMU 页表;GPU 是具体执行者,执行 DMA 传输,处理内存访问请求;则扮演了交通枢纽,路由 PCIe 事务,执行地址转换;起到本地交换机的作用,在 GPU 间直接路由数据包;IOMMU起到了安全网关的作用,提供地址转换和内存保护;这种硬件协作使得即使在没有直接 P2P 连接的情况下,也能实现相对高效的 GPU 间数据传输,虽然

#p2p#网络协议
使用 hwloc 为运行 MPI 进程的 NUMA node 选择最近的 cuda GPU

(openmpi官方指导版本,有问题,待解)2路cpu,8A100卡。

文章图片
#HPC
在2023年,在Ubuntu 18中 安装tensorflow 1.14.0+cuda 10.0/10.2 + 对应版本的cudnn 7.6.5 +GTX 960/2080ti/QuadroP600

sudo apt install python3.7sudo rm /usr/bin/python3sudo ln /usr/bin/python3.7 /usr/bin/python3sudo apt install python3-pipsudo pip3 install Cython sudo pip3 install numpy==1.6.0 -i https://pypi.tuna.ts

文章图片
#linux#tensorflow
将 cuda kernel 编译成 ptx 和 rocm的hip asm

编译命令:%.ptx: %.cunvcc -arch=sm_70 -ptx $< -o $@生成的结果:编译命令:%.hip.s: %.hip$(HIPCC) $< -o $@ -S --offload-device-only生成的结果:存储为文本:3,hip asm 含义分析未完待续。。。

文章图片
#GPU
cuda 矩阵乘法,从最容易理解到算得最快(第一版源码)

C是行主序,A,B是列主序,一维化地存储在数组里,并copy到GPU的全局内存中。一. 设计一个最容易理解的矩阵乘法的CUDA实现一个实现,一说就能让人懂得代码实现,也是一项挺难的任务。尝试实现如下:设置grid是一维即gridDim.y=gridDim.z=1 默认值;gridDim.x=MP的个数,比如RTX 3060含30个MP(即SM),V100含80个MP;于是,在不同的平台里,分别,g

#线性代数#机器学习#深度学习
windows 中的 Nsight Systems 通过ssh 链接分析 Linux 中的cuda程序性能

安装 ssh-server安装较新版本的 cuda sdk下载cuda-samples github repo编辑修改 ssh 配置:删除相关注释,修改后如下:Port 22。

文章图片
#ssh
在 cuda 基础环境中安装完整的cupy

cd nccl/cd cupygit branchgit branch。

#python
cuda 矩阵乘法,从最容易理解到算得最快(第二版源码-tile机制+共享内存)

下面我们仅仅引入tiling方法,先分析一下能够减少多少次对全局存储区的访问。当M=N=K=4096时,用第一版的代码,忽略cache的缓存时,需要从全局存储区读取2*(4096^3)个float变量。

#线性代数#机器学习#算法
基于 cuda sdk 12.4.1安装cudnn8.9.7 步骤备忘——与cudnn9有差别

一个必要的步骤是写 blacklist,屏蔽 noveau 开源driver的开机自动加载,然后重启计算机后安装cuda sdk。

文章图片
#linux
    共 188 条
  • 1
  • 2
  • 3
  • 19
  • 请选择