CANN/ops-blas STPTTR测试文档

CANN/ops-blas STPTTR测试文档 stpttr算子实现【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas概述BLAS stpttr算子实现。stpttr(Symmetric Triangular matrix, Packed format To Triangular matrix, Regular storage)算子将 LAPACK 压缩格式packed format中的对称三角矩阵展开为按列主序存储的常规二维矩阵。仅写入uplo指定的三角区域矩阵另一三角及未参与运算的元素保持原值不变。产品支持情况产品是否支持Ascend 950PR/Ascend 950DT✓Atlas A3 训练系列产品/Atlas A3 推理系列产品×Atlas A2 训练系列产品/Atlas A2 推理系列产品×目录结构介绍test/stpttr/ ├── CMakeLists.txt // 编译工程文件 ├── README.md // 说明文档 └── arch35/ ├── stpttr_test.cpp // 精度测试 ├── stpttr_golden.h // CPU golden 实现 ├── stpttr_testcases.csv // 精度测试用例表 └── stpttr_config.json // 算子测试配置指针类型、精度模式等算子描述算子功能将压缩格式三角矩阵AP中的元素按uplo展开到常规矩阵A的对应三角区域uplo ACLBLAS_LOWER复制到A的下三角含对角上三角不变uplo ACLBLAS_UPPER复制到A的上三角含对角下三角不变AP为列优先压缩存储长度为n * (n 1) / 2A为lda × n的列主序矩阵lda max(1, n)。n 0时直接返回成功不访问缓冲区。对应的接口为aclblasStatus_t aclblasStpttr( aclblasHandle_t handle, aclblasFillMode_t uplo, int n, const float *AP, float *A, int lda);参数stpttr 参数说明参数列表Param.Memoryin/out含义handleinaclbLAS 库上下文句柄。uploin三角存储方式ACLBLAS_UPPER(121)、ACLBLAS_LOWER(122)。nin方阵维数须 0为 0 时立即返回成功。APdevicein压缩格式输入type 数组长度 n*(n1)/2。Adevicein/out常规输出矩阵type 数组维度 lda × n非目标三角保持原值。ldainA 的主维长度须满足 lda max(1, n)。算子规格算子类型(OpType)stpttr算子输入nameshapedata typeformatAPn*(n1)/2floatpacked算子输出Alda * nfloatND核函数名stpttr_kernel算子实现Host 侧完成参数校验与 Tiling 计算按 Vector Core 数切分列块将 Tiling 数据拷贝至 Device 后通过stpttr_kernel_do启动 Kernel。Kernel 按列从 GM 上的压缩缓冲区AP分块搬入 UB再写回 GM 上常规矩阵A的对应三角列段lda n时列间存在 stride 间隔。调用实现使用内核调用符stpttr_kernel_do在aclblas关联的 stream 上异步执行Host 在返回前同步 stream。测试用例覆盖分组用例数覆盖场景L0 参数校验4未初始化 handle、n0、lda 过小、非法 uploL0 功能13n0/1/2/4/32/128/512LOWER/UPPERL1 规模与 lda18n8~1024、ldan8×12、16×32 等L1 特殊数值12全零、大数、负数、inf、nan、极值组合L1 参数校验8AP/A 空指针、非法 uplo、n0 与 lda 组合L1 往返与大规模4strttp→stpttr 往返32×32、n10240ST 采用 GTest 参数化 stpttr_testcases.csv/stpttr_config.json精度模式为EXACT仅比对有效三角区其余位置为 sentinel -999。编译运行在本样例根目录下执行如下步骤编译并执行算子。配置环境变量请根据当前环境上CANN开发套件包的安装方式选择对应配置环境变量的命令。默认路径root用户安装CANN软件包source /usr/local/Ascend/cann/set_env.sh默认路径非root用户安装CANN软件包source $HOME/Ascend/cann/set_env.sh指定路径install_path安装CANN软件包source ${install_path}/cann/set_env.sh样例执行bash build.sh --opsstpttr --socascend950 --run其中--soc为可选参数用于指定目标硬件平台与上文「产品支持情况」对应。按实际硬件选用产品--soc取值Ascend 950PR / Ascend 950DTascend950Atlas A3 训练系列产品 / Atlas A3 推理系列产品ascend910_93Atlas A2 训练系列产品 / Atlas A2 推理系列产品ascend910b执行结果如下说明精度对比成功。[PASS] stpttr_test【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考