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

问题描述

README 调用示例编译失败:aclblasScopy

环境信息

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

错误信息

-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - 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/aclblasScopy/build

[ 50%] Building CXX object CMakeFiles/opapi_test.dir/example.cpp.o
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasScopy/example.cpp: In function ‘int main()’:
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasScopy/example.cpp:20:26: error: invalid conversion from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘int’ [-fpermissive]
   20 |     aclblasScopy(handle, dX, dY, n, incx, incy);
      |                          ^~
      |                          |
      |                          uint8_t* {aka unsigned char*}
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasScopy/example.cpp:20:30: error: cannot convert ‘uint8_t*’ {aka ‘unsigned char*’} to ‘const float*’
   20 |     aclblasScopy(handle, dX, dY, n, incx, incy);
      |                              ^~
      |                              |
      |                              uint8_t* {aka unsigned char*}
In file included from /home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasScopy/example.cpp:2:
/usr/local/Ascend/cann-9.1.0/include/cann_ops_blas.h:155:49: note:   initializing argument 3 of ‘aclblasStatus_t aclblasScopy(aclblasHandle_t, int, const float*, int, float*, int)’
  155 |     aclblasHandle_t handle, int n, const float *x, int incx, float *y, int incy);
      |                                    ~~~~~~~~~~~~~^
/home/wangzitao/ops-blas-quality/logs/readme_checks/20260630_095704/aclblasScopy/example.cpp:22:5: error: ‘aclrtStreamSynchronize’ was not declared in this scope
   22 |     aclrtStreamSynchronize(nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~~
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/copy/README.mdaclblasScopy 的调用示例保存为 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 的描述
Riki
Riki成员
6月30日 评论:

定位中

likedislike
RikiRiki成员
6月30日 将 Twoliges 设为负责人
RikiRiki成员
6月30日 关联了pull request:fix(docs): 修复 aclblasScopy/aclblasRotEx README 调用示例,采用 RAII 资源管理
CANN-robotCANN-robot成员
6月30日 关闭了 issue
CANN-robotCANN-robot成员
6月30日 添加了label:resolved
RikiRiki成员
6月30日 关联了pull request:feat(workflow): 阶段4新增 README 质量门控