7  
查询码: 00000259
simpleP2P工具使用方法
专家 作者: 贾建方 于 2025年03月13日 ,于 2025年05月14日 编辑


一、基本用法:
CUDA_VISIBLE_DEVICES=0,1 ./simpleP2P
       #CUDA_VISIBLE_DEVICES={2个GPU ID,用逗号连接}


输出结果示例:

[./simpleP2P] - Starting...
Checking for multiple GPUs...
CUDA-capable device count: 2

Checking GPU(s) for support of peer to peer memory access...
> Peer access from Iluvatar BI-V150 (GPU0) -> Iluvatar BI-V150 (GPU1) : Yes
> Peer access from Iluvatar BI-V150 (GPU1) -> Iluvatar BI-V150 (GPU0) : Yes
Enabling peer access between GPU0 and GPU1...
Allocating buffers (64MB on GPU0, GPU1 and CPU Host)...
Creating event handles...
cudaMemcpyPeer / cudaMemcpy between GPU0 and GPU1: 26.17GB/s
Disabling peer access...
Shutting down...
Test passed

二、全量测试:
需要写脚本工具枚举全测所有GPU并输出日志。脚本示例如下:


#!/bin/bash
echo "SimpleP2P test..."
echo ""
chmod +x simpleP2P
start_num=`ixsmi | grep MHz | awk '{print $2}' | head -n 1`
end_num=`ixsmi | grep MHz | awk '{print $2}' | tail -n 1`
pairing=`echo | awk "{for(i=$start_num; i<=$end_num; i++) for(j=i+$start_num; j<=$end_num; j++) print i, j}" | awk '$1 != $2' | sed 's/ /,/'`

for i in $pairing;do
    gtog=`echo $i | sed 's/,/--/'`
    echo "--------------------------------------------------------------------------------------------"  >> simpleP2P_test.log
    echo "Start GPU $gtog test:"  >> simpleP2P_test.log
    echo ""  >> simpleP2P_test.log
    CUDA_VISIBLE_DEVICES=$i ./simpleP2P >> simpleP2P_test.log
done

for i in `cat simpleP2P_test.log | grep  "GPU " | awk '{print $3}'`;do
    result1=`cat simpleP2P_test.log | awk "/$i/{flag=1; next} /--------/{flag=0} flag" | grep cudaMemcpyPeer | awk '{print $NF}' | sed -n 1p`
    result2=`cat simpleP2P_test.log | awk "/$i/{flag=1; next} /--------/{flag=0} flag" | grep -w Test | awk '{print $NF}' | sed -n 1p`
    echo "simpleP2P test GPU $i: $result1 $result2"

done


上述示例脚本会导出测试log——simpleP2P_test.log,并在屏幕打印出测试简要信息,示例如下:

simpleP2P test GPU 0--1: 26.17GB/s passed
simpleP2P test GPU 0--2: 26.22GB/s passed
simpleP2P test GPU 0--3: 26.26GB/s passed
simpleP2P test GPU 0--4: 26.22GB/s passed
simpleP2P test GPU 0--5: 26.22GB/s passed
simpleP2P test GPU 0--6: 26.18GB/s passed
simpleP2P test GPU 0--7: 26.22GB/s passed
simpleP2P test GPU 0--8: 11.24GB/s passed
simpleP2P test GPU 0--9: 11.24GB/s passed
simpleP2P test GPU 0--10: 11.25GB/s passed
simpleP2P test GPU 0--11: 11.25GB/s passed
simpleP2P test GPU 0--12: 11.25GB/s passed
simpleP2P test GPU 0--13: 11.24GB/s passed
simpleP2P test GPU 0--14: 11.24GB/s passed
simpleP2P test GPU 0--15: 11.24GB/s passed
simpleP2P test GPU 1--2: 26.20GB/s passed
simpleP2P test GPU 1--3: 26.33GB/s passed
simpleP2P test GPU 1--4: 26.22GB/s passed
simpleP2P test GPU 1--5: 26.35GB/s passed
simpleP2P test GPU 1--6: 26.21GB/s passed
simpleP2P test GPU 1--7: 26.22GB/s passed
simpleP2P test GPU 1--8: 11.22GB/s passed
simpleP2P test GPU 1--9: 11.23GB/s passed
simpleP2P test GPU 1--10: 11.23GB/s passed
simpleP2P test GPU 1--11: 11.23GB/s passed
simpleP2P test GPU 1--12: 11.22GB/s passed
simpleP2P test GPU 1--13: 11.23GB/s passed
simpleP2P test GPU 1--14: 11.22GB/s passed
simpleP2P test GPU 1--15: 11.22GB/s passed
simpleP2P test GPU 2--3: 26.20GB/s passed
simpleP2P test GPU 2--4: 26.24GB/s passed
simpleP2P test GPU 2--5: 26.23GB/s passed
simpleP2P test GPU 2--6: 26.22GB/s passed
simpleP2P test GPU 2--7: 26.23GB/s passed
simpleP2P test GPU 2--8: 11.24GB/s passed
simpleP2P test GPU 2--9: 11.23GB/s passed
simpleP2P test GPU 2--10: 11.23GB/s passed
simpleP2P test GPU 2--11: 11.24GB/s passed
simpleP2P test GPU 2--12: 11.24GB/s passed
simpleP2P test GPU 2--13: 11.24GB/s passed
simpleP2P test GPU 2--14: 11.24GB/s passed
simpleP2P test GPU 2--15: 11.24GB/s passed
simpleP2P test GPU 3--4: 26.22GB/s passed

...


笔记



天数智芯知识库系统 -V 5.2.6 -wcp