执行摘要
修复 DeepEP 构建时缺少 CUDA 驱动桩库链接
DeepEP 升级后引入了对 CUDA 驱动 API 的链接依赖,在 manylinux 无驱动环境下构建时因找不到 -lcuda 而失败。本 PR 直接通过查找工具包桩库并设置 LIBRARY_PATH 解决了链接问题。
本 PR 是必要的构建修复,值得精读以了解构建问题排查思路,但技术复杂度低,评审价值一般。
无 review 讨论。
DeepEP 升级后引入了对 CUDA 驱动 API 的链接依赖,在 manylinux 无驱动环境下构建时因找不到 -lcuda 而失败。本 PR 直接通过查找工具包桩库并设置 LIBRARY_PATH 解决了链接问题。
本 PR 是必要的构建修复,值得精读以了解构建问题排查思路,但技术复杂度低,评审价值一般。
无 review 讨论。
do_build 函数中,当构建 DeepEP 时,通过 find -H "$CUDA_HOME" -path "*/stubs/libcuda.so" -print -quit 查找工具包内的桩库。LIBRARY_PATH:提取桩库所在目录,并导出到环境变量 LIBRARY_PATH 中,使得链接器能找到 -lcuda。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
tools/ep_kernels/install_python_libraries.sh |
构建脚本 | modified | 3.86 |
tools/ep_kernels/install_python_libraries.sh
core-logic
构建 DeepEP 时增加查找 CUDA 驱动桩库并设置 LIBRARY_PATH 的逻辑。
# 在 do_build 函数中,DeepEP 分支新增以下逻辑
if [[ "$name" == "DeepEP" ]]; then
# DeepEP 需要在无驱动构建镜像中链接 CUDA 驱动 API,
# 但 manylinux 环境中 CUDA 驱动库不在默认搜索路径中。
# 此处查找 CUDA 工具包中的驱动桩库 libcuda.so,
# 并将其所在目录添加到 LIBRARY_PATH 中,
# 使得链接器可以找到 -lcuda。
local cuda_driver_stub
local cuda_driver_stub_dir
cuda_driver_stub=$(
find -H "$CUDA_HOME" -path "*/stubs/libcuda.so" -print -quit
)
if [[ -z "$cuda_driver_stub" ]]; then
echo "CUDA driver stub not found under $CUDA_HOME" >&2
exit 1
fi
cuda_driver_stub_dir=$(dirname "$cuda_driver_stub")
export LIBRARY_PATH="${cuda_driver_stub_dir}${LIBRARY_PATH:+:$LIBRARY_PATH}"
fi
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险极低。变更仅在构建 DeepEP 时生效,仅增加了环境变量设置,不影响已有构建路径。
影响范围局限于 DeepEP 组件的构建过程,解决了 manylinux 环境下构建失败的问题,对其他模块无影响。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论