mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-18 22:44:39 +08:00
Support Ascend deployment on X86 platform
This commit is contained in:
@@ -1,19 +1,33 @@
|
|||||||
if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
|
|
||||||
message(FATAL_ERROR "Huawei Ascend NPU is supported on Linux aarch64 platform for now.")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT ${ENABLE_LITE_BACKEND})
|
if(NOT ${ENABLE_LITE_BACKEND})
|
||||||
set(ENABLE_LITE_BACKEND ON)
|
set(ENABLE_LITE_BACKEND ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT BUILD_FASTDEPLOY_PYTHON)
|
if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
|
||||||
message(STATUS "Build FastDeploy Ascend C++ library.")
|
if (NOT BUILD_FASTDEPLOY_PYTHON)
|
||||||
if(NOT PADDLELITE_URL)
|
message(STATUS "Build FastDeploy Ascend C++ library on X86 platform.")
|
||||||
set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/test/lite-linux_arm64_huawei_ascend_npu_1121.tgz")
|
if(NOT PADDLELITE_URL)
|
||||||
endif()
|
set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/test/lite-linux_x86_huawei_ascend_npu_0105.tgz")
|
||||||
else ()
|
endif()
|
||||||
message(STATUS "Build FastDeploy Ascend Python library.")
|
else ()
|
||||||
if(NOT PADDLELITE_URL)
|
message(STATUS "Build FastDeploy Ascend Python library on X86 platform.")
|
||||||
set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/test/lite-linux_arm64_huawei_ascend_npu_python_1207.tgz")
|
if(NOT PADDLELITE_URL)
|
||||||
endif()
|
set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/test/lite-linux_x86_huawei_ascend_npu_python_0105.tgz")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
|
||||||
|
if (NOT BUILD_FASTDEPLOY_PYTHON)
|
||||||
|
message(STATUS "Build FastDeploy Ascend C++ library on aarch64 platform.")
|
||||||
|
if(NOT PADDLELITE_URL)
|
||||||
|
set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/test/lite-linux_arm64_huawei_ascend_npu_1121.tgz")
|
||||||
|
endif()
|
||||||
|
else ()
|
||||||
|
message(STATUS "Build FastDeploy Ascend Python library on aarch64 platform.")
|
||||||
|
if(NOT PADDLELITE_URL)
|
||||||
|
set(PADDLELITE_URL "https://bj.bcebos.com/fastdeploy/test/lite-linux_arm64_huawei_ascend_npu_python_1207.tgz")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
@@ -23,12 +23,15 @@ import sys
|
|||||||
def process_paddle_lite(paddle_lite_so_path):
|
def process_paddle_lite(paddle_lite_so_path):
|
||||||
if platform.system().lower() != "linux":
|
if platform.system().lower() != "linux":
|
||||||
return
|
return
|
||||||
rpaths = ["$ORIGIN"]
|
rpaths = ["$ORIGIN", "$ORIGIN/mklml/lib/"]
|
||||||
patchelf_exe = os.getenv("PATCHELF_EXE", "patchelf")
|
patchelf_exe = os.getenv("PATCHELF_EXE", "patchelf")
|
||||||
|
|
||||||
|
|
||||||
for paddle_lite_so_file in os.listdir(paddle_lite_so_path):
|
for paddle_lite_so_file in os.listdir(paddle_lite_so_path):
|
||||||
paddle_lite_so_file = os.path.join(paddle_lite_so_path,
|
paddle_lite_so_file = os.path.join(paddle_lite_so_path,
|
||||||
paddle_lite_so_file)
|
paddle_lite_so_file)
|
||||||
|
|
||||||
|
# Patch /paddlelite/lib/*.so
|
||||||
if '.so' in paddle_lite_so_file:
|
if '.so' in paddle_lite_so_file:
|
||||||
command = "{} --set-rpath '{}' {}".format(
|
command = "{} --set-rpath '{}' {}".format(
|
||||||
patchelf_exe, ":".join(rpaths), paddle_lite_so_file)
|
patchelf_exe, ":".join(rpaths), paddle_lite_so_file)
|
||||||
@@ -37,7 +40,25 @@ def process_paddle_lite(paddle_lite_so_path):
|
|||||||
assert os.system(
|
assert os.system(
|
||||||
command) == 0, "patchelf {} failed, the command: {}".format(
|
command) == 0, "patchelf {} failed, the command: {}".format(
|
||||||
paddle_lite_so_file, command)
|
paddle_lite_so_file, command)
|
||||||
|
|
||||||
|
# Patch /paddlelite/lib/mklml/lib/*.so
|
||||||
|
if 'mklml' in paddle_lite_so_file:
|
||||||
|
paddle_lite_mklml_lib_path = os.path.join(paddle_lite_so_path,
|
||||||
|
paddle_lite_so_file,'lib')
|
||||||
|
|
||||||
|
for paddle_lite_mklml_so_file in os.listdir(paddle_lite_mklml_lib_path):
|
||||||
|
paddle_lite_mklml_so_file = os.path.join(paddle_lite_mklml_lib_path,
|
||||||
|
paddle_lite_mklml_so_file)
|
||||||
|
|
||||||
|
if '.so' in paddle_lite_mklml_so_file:
|
||||||
|
command = "{} --set-rpath '{}' {}".format(
|
||||||
|
patchelf_exe, ":".join(rpaths), paddle_lite_mklml_so_file)
|
||||||
|
if platform.machine() != 'sw_64' and platform.machine(
|
||||||
|
) != 'mips64':
|
||||||
|
assert os.system(
|
||||||
|
command) == 0, "patchelf {} failed, the command: {}".format(
|
||||||
|
paddle_lite_mklml_so_file, command)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
process_paddle_lite(sys.argv[1])
|
process_paddle_lite(sys.argv[1])
|
||||||
|
Reference in New Issue
Block a user