Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions cmake/external/lapack.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,24 @@ set(LAPACK_LIB_DIR ${LAPACK_INSTALL_DIR}/lib)
# Note(zhouwei): lapack need fortran compiler which many machines don't have, so use precompiled library.
# use lapack tag v3.10.0 on 06/28/2021 https://github.com/Reference-LAPACK/lapack
if(LINUX)
set(LAPACK_FILE
"lapack_lnx_v3.10.0.20210628.tar.gz"
CACHE STRING "" FORCE)
set(LAPACK_URL
"https://paddlepaddledeps.bj.bcebos.com/${LAPACK_FILE}"
CACHE STRING "" FORCE)
set(LAPACK_URL_MD5 71f8cc8237a8571692f3e07f9a4f25f6)
set(GNU_RT_LIB_1 "${LAPACK_LIB_DIR}/libquadmath.so.0")
if(WITH_ARM)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 优先级:P1

问题: 这里仅判断 WITH_ARM 会漏掉 WITH_NV_JETSON=ON 的配置路径。CMakeLists.txtinclude(third_party) 之后才把 WITH_NV_JETSON 强制转换成 WITH_ARM=ON,所以用户只传 -DWITH_NV_JETSON=ON 时,lapack.cmake 已经进入 else() 并下载 x86 的 lapack_lnx_v3.10.0.20210628.tar.gz。这会让 Jetson/ARM wheel 继续打包错误架构的 LAPACK,和本 PR 的修复目标相反。

处理要求:请针对该评论修复并提交新的 commit。

Suggested change
if(WITH_ARM)
if(WITH_ARM OR WITH_NV_JETSON)

@SigureMo SigureMo Jul 20, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@risemeup1111 你说的,在「include(third_party) 之后才把 WITH_NV_JETSON 强制转换成 WITH_ARM=ON」,这个逻辑在哪啊?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

有,依据在这几处:

  • CMakeLists.txt:613-614 先执行 include(third_party)
  • cmake/third_party.cmake:400 在这个阶段就会 include(external/lapack)
  • CMakeLists.txt:662-665 才把 WITH_NV_JETSON 写回成 WITH_ARM=ON

所以 lapack.cmake 读取到的是当时的 WITH_ARM,而不是后面才转换出来的值。也就是说,-DWITH_NV_JETSON=ON 但没有显式带 -DWITH_ARM=ON 时,仍然会走到当前的 else() 分支。

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@risemeup1111 已确定 NV JETSON 不再支持,这个很早就编译不出来了,已经确定 NV JETSON 支持后续可以移除

cc @EmmonsCurse @risemeup1

@risemeup1 risemeup1 Jul 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

确实,确定 NV JETSON 不再支持,属于废弃代码

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

收到。如果 NV JETSON 已明确不在当前支持范围内,那这条不应作为本 PR 的阻塞项;我撤回前面这条建议,并关闭该线程。

set(LAPACK_FILE
"lapack_lnx_arm64_v3.10.0.20260720.tar.gz"
CACHE STRING "" FORCE)
set(LAPACK_URL
"https://paddlepaddledeps.cdn.bcebos.com/${LAPACK_FILE}"
CACHE STRING "" FORCE)
set(LAPACK_URL_MD5 c23e6389dc5309bd29111bf6836f4d55)
else()
set(LAPACK_FILE
"lapack_lnx_v3.10.0.20210628.tar.gz"
CACHE STRING "" FORCE)
set(LAPACK_URL
"https://paddlepaddledeps.bj.bcebos.com/${LAPACK_FILE}"
CACHE STRING "" FORCE)
set(LAPACK_URL_MD5 71f8cc8237a8571692f3e07f9a4f25f6)
set(GNU_RT_LIB_1 "${LAPACK_LIB_DIR}/libquadmath.so.0")
endif()
set(GFORTRAN_LIB "${LAPACK_LIB_DIR}/libgfortran.so.3")
set(BLAS_LIB "${LAPACK_LIB_DIR}/libblas.so.3")
set(LAPACK_LIB "${LAPACK_LIB_DIR}/liblapack.so.3")
Expand Down
8 changes: 5 additions & 3 deletions python/setup.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -1278,12 +1278,14 @@ shutil.copy('${WARPRNNT_LIBRARIES}', libs_path)
package_data['paddle.libs']+=[
os.path.basename('${LAPACK_LIB}'),
os.path.basename('${BLAS_LIB}'),
os.path.basename('${GFORTRAN_LIB}'),
os.path.basename('${GNU_RT_LIB_1}')]
os.path.basename('${GFORTRAN_LIB}')]
shutil.copy('${BLAS_LIB}', libs_path)
shutil.copy('${LAPACK_LIB}', libs_path)
shutil.copy('${GFORTRAN_LIB}', libs_path)
shutil.copy('${GNU_RT_LIB_1}', libs_path)
if len('${GNU_RT_LIB_1}') > 1:
package_data['paddle.libs'] += [
os.path.basename('${GNU_RT_LIB_1}')]
shutil.copy('${GNU_RT_LIB_1}', libs_path)
if('${WITH_MAGMA}' == 'ON'):
package_data['paddle.libs']+=[
os.path.basename('${MAGMA_LIB}')]
Expand Down
7 changes: 5 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -1643,12 +1643,15 @@ def get_package_data_and_package_dir():
os.path.basename(env_dict.get("LAPACK_LIB")),
os.path.basename(env_dict.get("BLAS_LIB")),
os.path.basename(env_dict.get("GFORTRAN_LIB")),
os.path.basename(env_dict.get("GNU_RT_LIB_1")),
]
shutil.copy(env_dict.get("BLAS_LIB"), libs_path)
shutil.copy(env_dict.get("LAPACK_LIB"), libs_path)
shutil.copy(env_dict.get("GFORTRAN_LIB"), libs_path)
shutil.copy(env_dict.get("GNU_RT_LIB_1"), libs_path)
if env_dict.get("GNU_RT_LIB_1"):
package_data['paddle.libs'] += [
os.path.basename(env_dict.get("GNU_RT_LIB_1"))
]
shutil.copy(env_dict.get("GNU_RT_LIB_1"), libs_path)
if env_dict.get("WITH_MAGMA") == 'ON':
package_data['paddle.libs'] += [
os.path.basename('MAGMA_LIB'),
Expand Down
Loading