已关闭
[Readme-QA] ascend950 aclblasSspr2 调用示例编译失败 (2026-06-30) #239
wangzitao创建于  6月30日关闭于  6月30日
wangzitao
wangzitao成员
6月30日 创建

问题描述

README 调用示例编译失败:aclblasSspr2

环境信息

  • 硬件: Ascend 950PR/950DT
  • OS: Ubuntu x86_64
  • CANN: unknown (build 20260625000329957)
  • ops-blas commit: 4366edb74bff (master)
  • README: blas/spr2/README.md
  • 运行命令: 参考 编译与运行样例

错误信息

      from /home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasSspr2/example.cpp:1:
/usr/local/Ascend/cann-9.1.0/include/acl/acl_rt.h:1830:49: note:   initializing argument 1 of ‘aclError aclrtMalloc(void**, size_t, aclrtMemMallocPolicy)’
 1830 | ACL_FUNC_VISIBILITY aclError aclrtMalloc(void **devPtr,
      |                                          ~~~~~~~^~~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasSspr2/example.cpp:19:17: error: invalid conversion from ‘float**’ to ‘void**’ [-fpermissive]
   19 |     aclrtMalloc(&yDev, n * sizeof(float), ACL_MEM_MALLOC_HUGE_FIRST);
      |                 ^~~~~
      |                 |
      |                 float**
/usr/local/Ascend/cann-9.1.0/include/acl/acl_rt.h:1830:49: note:   initializing argument 1 of ‘aclError aclrtMalloc(void**, size_t, aclrtMemMallocPolicy)’
 1830 | ACL_FUNC_VISIBILITY aclError aclrtMalloc(void **devPtr,
      |                                          ~~~~~~~^~~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasSspr2/example.cpp:20:17: error: invalid conversion from ‘float**’ to ‘void**’ [-fpermissive]
   20 |     aclrtMalloc(&apDev, size, ACL_MEM_MALLOC_HUGE_FIRST);
      |                 ^~~~~~
      |                 |
      |                 float**
/usr/local/Ascend/cann-9.1.0/include/acl/acl_rt.h:1830:49: note:   initializing argument 1 of ‘aclError aclrtMalloc(void**, size_t, aclrtMemMallocPolicy)’
 1830 | ACL_FUNC_VISIBILITY aclError aclrtMalloc(void **devPtr,
      |                                          ~~~~~~~^~~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasSspr2/example.cpp:22:42: error: ‘xHost’ was not declared in this scope
   22 |     aclrtMemcpy(xDev, n * sizeof(float), xHost, n * sizeof(float), ACL_MEMCPY_HOST_TO_DEVICE);
      |                                          ^~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasSspr2/example.cpp:23:42: error: ‘yHost’ was not declared in this scope
   23 |     aclrtMemcpy(yDev, n * sizeof(float), yHost, n * sizeof(float), ACL_MEMCPY_HOST_TO_DEVICE);
      |                                          ^~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasSspr2/example.cpp:24:44: error: ‘aclblasHandle_t’ {aka ‘void*’} is not a pointer-to-object type
   24 |     aclrtMemsetAsync(apDev, size, 0, size, handle->stream);
      |                                            ^~~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasSspr2/example.cpp:28:28: error: ‘aclblasHandle_t’ {aka ‘void*’} is not a pointer-to-object type
   28 |     aclrtSynchronizeStream(handle->stream);
      |                            ^~~~~~
make[2]: *** [CMakeFiles/opapi_test.dir/build.make:76: CMakeFiles/opapi_test.dir/example.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/opapi_test.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

重现步骤

  1. source /usr/local/Ascend/ascend-toolkit/latest/set_env.sh
  2. cd ops-blas && bash build.sh --pkg --soc=ascend950
  3. ./build_out/cann-*.run --install --install-path=/usr/local/Ascend
  4. blas/spr2/README.mdaclblasSspr2 的调用示例保存为 example.cpp
  5. 使用 docs/zh/develop/compile_and_run_example.md 中的 CMakeLists.txt 编译并运行

预期结果

README 调用示例能正确编译并运行出结果。

likedislike
wangzitaowangzitao成员
6月30日 添加了label:bug-report
wangzitaowangzitao成员
6月30日 修改了issue 的描述
yuyuanfengyuyuanfeng成员
6月30日 将 yuyuanfeng 设为负责人
yuyuanfeng
yuyuanfeng成员
6月30日 评论:

已修复,提 PR #228 关联。基于 CANN 9.1.0 SDK 真实头文件 + 本仓 cann_ops_blas.h 编译验证(-Wall -Wextra)零警告通过;旧 master 版复现 issue 报错逐条吻合。PR: https://gitcode.com/cann/ops-blas/merge_requests/228

likedislike
yuyuanfengyuyuanfeng成员
6月30日 关联了pull request:fix(readme): 修复 spr2/stbsv 调用示例编译失败
yuyuanfengyuyuanfeng成员
6月30日 删除了关联的pull request:fix(readme): 修复 spr2/stbsv 调用示例编译失败
yuyuanfengyuyuanfeng成员
6月30日 关联了pull request:fix(readme): 修复 spr2/stbsv 调用示例编译失败
CANN-robotCANN-robot成员
6月30日 关闭了 issue
CANN-robotCANN-robot成员
6月30日 添加了label:resolved