news 2026/5/9 19:58:12

CANN/PTO-ISA通信测试环境与运行指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/PTO-ISA通信测试环境与运行指南

测试环境与运行

【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa

CPU 仿真测试

适用范围

CPU 仿真支持以下同步通信指令的功能验证:

  • TPUT、TGET(P2P 传输)
  • TNOTIFY、TWAIT、TTEST(信号同步)
  • TGATHER、TSCATTER、TBROADCAST、TREDUCE(集合通信)

不支持:异步指令(TPUT_ASYNC/TGET_ASYNC)在 CPU 仿真下直接返回空 event。

运行方式

python3 tests/run_cpu.py --testcase <testcase_name> --gtest_filter '<filter>' # 示例 python3 tests/run_cpu.py --testcase tgather --gtest_filter 'TGatherTest.*'

CPU 仿真局限性

特性CPU 仿真NPU 硬件
功能正确性验证数据计算逻辑验证完整执行
远端地址模拟为本地指针真实硬件远端 DMA
信号同步模拟 AtomicAdd/Set硬件原子操作
pipe_barrier忽略真实流水线同步
多 rank单进程模拟MPI + 多 NPU
异步 DMA返回无效 eventSDMA/URMA 引擎

建议:CPU 仿真验证数据流和逻辑正确性,但最终必须在 NPU 硬件上验证同步和性能。


NPU 硬件测试

单指令 ST 测试

python3 tests/script/run_st.py -r npu -v a3 -t tput -g TPutTest.* # 运行所有通信 ST python3 tests/script/run_st.py -r npu -v a3 --comm

算子级测试

cd kernels/manual/a2a3/my_operator mkdir -p build && cd build cmake .. -DSOC_VERSION=Ascend910C -DRUN_MODE=npu make -j # 运行(8 rank) mpirun -np 8 ./my_operator

测试 Kernel 结构

template <typename T, int Rows, int Cols> __global__ AICORE void TPutTestKernel(__gm__ T *local_data, __gm__ T *remote_addr) { using ShapeDyn = Shape<DYNAMIC, DYNAMIC, DYNAMIC, DYNAMIC, DYNAMIC>; using StrideDyn = Stride<DYNAMIC, DYNAMIC, DYNAMIC, DYNAMIC, DYNAMIC>; using Global = GlobalTensor<T, ShapeDyn, StrideDyn, Layout::ND>; using TileT = Tile<TileType::Vec, T, Rows, Cols, BLayout::RowMajor, -1, -1>; ShapeDyn shape(1, 1, 1, Rows, Cols); StrideDyn stride(Rows * Cols, Rows * Cols, Rows * Cols, Cols, 1); Global srcG(local_data, shape, stride); Global dstG(remote_addr, shape, stride); TileT stagingTile(Rows, Cols); TASSIGN(stagingTile, 0x0); comm::TPUT(dstG, srcG, stagingTile); }

多 Rank 测试框架

MPI Wrapper

使用动态加载避免硬依赖:

class MpiWrapper { void *handle_; int (*MPI_Init_)(int*, char***); int (*MPI_Comm_rank_)(MPI_Comm, int*); public: MpiWrapper() { handle_ = dlopen("libmpi.so", RTLD_LAZY); MPI_Init_ = (decltype(MPI_Init_))dlsym(handle_, "MPI_Init"); } };

测试运行脚本模板

#!/bin/bash set -e source /usr/local/Ascend/ascend-toolkit/latest/set_env.sh mkdir -p build && cd build cmake .. -DSOC_VERSION=${SOC_VERSION:-Ascend910C} -DRUN_MODE=npu make -j$(nproc) cd .. NRANKS=${NRANKS:-8} export HCCL_BUFFSIZE=1024 mpirun -np $NRANKS \ --allow-run-as-root \ -x LD_LIBRARY_PATH \ -x ASCEND_HOME_PATH \ ./build/my_operator "$@"

Rank 0 收集结果

if (rank == 0) { bool pass = VerifyResult(actual, golden, count); int result = pass ? 0 : 1; MPI_Bcast(&result, 1, MPI_INT, 0, MPI_COMM_WORLD); printf("Overall: %s\n", pass ? "PASS" : "FAIL"); } else { int result; MPI_Bcast(&result, 1, MPI_INT, 0, MPI_COMM_WORLD); }

【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 19:53:46

AI辅助全栈开发:Next.js+FastAPI+Supabase模板与Cursor规则实践

1. 项目概述与核心价值 最近在折腾一个全栈项目&#xff0c;从零开始搭架子、配环境、写接口&#xff0c;一套流程下来&#xff0c;感觉至少一半的时间都花在了重复的“搬砖”活上&#xff1a;配置 Docker Compose、设置环境变量、集成认证、连接数据库、写 CRUD 模板……这些…

作者头像 李华
网站建设 2026/5/9 19:49:41

智能交通AI如何优化能效与减排:从数据感知到决策控制

1. 项目概述&#xff1a;当交通系统遇上AI&#xff0c;一场关于效率与绿色的革命 每天早晚高峰&#xff0c;看着导航地图上那一片刺眼的深红色&#xff0c;你是不是也和我一样&#xff0c;心里会涌起一股无力感&#xff1f;堵车&#xff0c;这个现代城市的顽疾&#xff0c;消耗…

作者头像 李华
网站建设 2026/5/9 19:45:42

GPT-4核心技术解析与企业级应用实践指南

1. GPT-4技术本质解析GPT-4作为当前最先进的大语言模型之一&#xff0c;其核心架构基于Transformer神经网络。与早期版本相比&#xff0c;它在模型规模、训练数据和算法优化上都有显著提升。具体表现为&#xff1a;参数量达到万亿级别&#xff08;具体数值未公开&#xff09;训…

作者头像 李华
网站建设 2026/5/9 19:45:17

GeoAI在制图学中的应用:方法、场景与伦理挑战

1. 项目概述&#xff1a;当制图学遇上GeoAI&#xff0c;一场静悄悄的革命如果你还在用传统GIS软件手动勾画边界、凭经验插值分析&#xff0c;或者对着海量遥感影像发愁&#xff0c;那可能已经落后了半个身位了。我干了十几年地理信息相关的工作&#xff0c;从早期的ArcView 3.x…

作者头像 李华
网站建设 2026/5/9 19:44:45

为内容生成业务选择合适的模型并控制 API 调用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为内容生成业务选择合适的模型并控制 API 调用成本 在内容运营和产品迭代中&#xff0c;文案撰写、摘要生成等任务日益频繁。直接使…

作者头像 李华