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

问题描述

README 调用示例编译失败:aclblasStbsv

环境信息

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

错误信息

res - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasStbsv/build

[ 50%] Building CXX object CMakeFiles/opapi_test.dir/example.cpp.o
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasStbsv/example.cpp: In function ‘int main()’:
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasStbsv/example.cpp:17:17: error: invalid conversion from ‘float**’ to ‘void**’ [-fpermissive]
   17 |     aclrtMalloc(&aDev, aBytes, ACL_MEM_MALLOC_HUGE_FIRST);
      |                 ^~~~~
      |                 |
      |                 float**
In file included from /usr/local/Ascend/cann-9.1.0/include/acl/acl.h:14,
                 from /home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasStbsv/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/aclblasStbsv/example.cpp:18:17: error: invalid conversion from ‘float**’ to ‘void**’ [-fpermissive]
   18 |     aclrtMalloc(&xDev, xBytes, 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/aclblasStbsv/example.cpp:20:31: error: ‘aHost’ was not declared in this scope
   20 |     aclrtMemcpy(aDev, aBytes, aHost, aBytes, ACL_MEMCPY_HOST_TO_DEVICE);
      |                               ^~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasStbsv/example.cpp:21:31: error: ‘xHost’ was not declared in this scope
   21 |     aclrtMemcpy(xDev, xBytes, xHost, xBytes, ACL_MEMCPY_HOST_TO_DEVICE);
      |                               ^~~~~
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasStbsv/example.cpp:26:28: error: ‘aclblasHandle_t’ {aka ‘void*’} is not a pointer-to-object type
   26 |     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/stbsv/README.mdaclblasStbsv 的调用示例保存为 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 调用示例编译失败
yuyuanfengyuyuanfeng成员
6月30日 删除了关联的pull request:fix(readme): 修复 spr2/stbsv 调用示例编译失败
CANN-robotCANN-robot成员
6月30日 关闭了 issue
CANN-robotCANN-robot成员
6月30日 添加了label:resolved