已关闭
[Bug-Report] install_deps.sh 在 Ubuntu 24.04 上无法检测到已安装的 BLAS/LAPACK #155
xutianze创建于  6月13日关闭于  6月13日
xutianze
xutianze成员
6月13日 创建

问题描述

在 Ubuntu 24.04 系统上执行 bash install_deps.sh 时,即使 libblas-devliblapack-dev 已安装,脚本仍报告 cblas.h not found,并重复执行 apt install,最终报错 "BLAS/LAPACK installation failed, please install manually"。

根因:Ubuntu 24.04 的 libblas-devcblas.h 安装在 multiarch 路径 /usr/include/x86_64-linux-gnu/cblas.h,但脚本只检查以下两个位置:

  • /usr/include/cblas.h
  • /usr/local/include/cblas.h

导致检测失败。

环境信息

  • 芯片型号:Ascend 950
  • CANN 版本:9.1.0
  • 操作系统:Ubuntu 24.04.3 LTS (Noble Numbat)
  • GCC 版本:13.3.0

重现步骤

  1. 在 Ubuntu 24.04 系统上,确保已安装 libblas-devliblapack-dev
  2. 执行 bash install_deps.sh
  3. 观察到 "cblas.h not found" 和 "BLAS/LAPACK installation failed" 错误

预期结果

脚本应能检测到 multiarch 路径下的 cblas.h,正确判断 BLAS/LAPACK 已安装,跳过重复安装。

日志 / 截图

==== Checking BLAS/LAPACK ====
cblas.h not found
Installing BLAS/LAPACK...
Executing command: sudo apt update
Executing command: sudo apt install -y libblas-dev liblapack-dev
BLAS/LAPACK installation failed, please install manually

实际 cblas.h 位置:

/usr/include/x86_64-linux-gnu/cblas.h

备注

修复方案:新增 find_cblas_header() 函数,通过 dpkg-architecture -qDEB_HOST_MULTIARCH 获取 multiarch 路径,在多个标准位置查找 cblas.h。修复后脚本正确检测到 /usr/include/x86_64-linux-gnu/cblas.h

likedislike
xutianzexutianze成员
6月13日 关联了pull request:fix: install_deps.sh 支持 multiarch 路径检测 cblas.h
CANN-robotCANN-robot成员
6月13日 关闭了 issue
CANN-robotCANN-robot成员
6月13日 添加了label:resolved