mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-31 03:46:40 +08:00
[feature]add fd whl version info (#2698)
This commit is contained in:
17
build.sh
17
build.sh
@@ -176,6 +176,21 @@ function build_and_install() {
|
|||||||
cd ..
|
cd ..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function version_info() {
|
||||||
|
output_file="fastdeploy/version.txt"
|
||||||
|
fastdeploy_git_commit_id=$(git rev-parse HEAD)
|
||||||
|
paddle_version=$(${python} -c "import paddle; print(paddle.__version__)")
|
||||||
|
paddle_git_commit_id=$(${python} -c "import paddle; print(paddle.version.show())" | grep -Po "(?<=commit: )[\da-f]+")
|
||||||
|
cuda_version=$(nvcc -V | grep -Po "(?<=release )[\d.]+(?=, V)")
|
||||||
|
cxx_version=$(g++ --version | head -n 1 | grep -Po "(?<=\) )[\d.]+")
|
||||||
|
|
||||||
|
echo "fastdeploy GIT COMMIT ID: $fastdeploy_git_commit_id" > $output_file
|
||||||
|
echo "Paddle version: $paddle_version" >> $output_file
|
||||||
|
echo "Paddle GIT COMMIT ID: $paddle_git_commit_id" >> $output_file
|
||||||
|
echo "CUDA version: $cuda_version" >> $output_file
|
||||||
|
echo "CXX compiler version: $cxx_version" >> $output_file
|
||||||
|
}
|
||||||
|
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
rm -rf $BUILD_DIR $EGG_DIR
|
rm -rf $BUILD_DIR $EGG_DIR
|
||||||
if [ `${python} -m pip list | grep fastdeploy | wc -l` -gt 0 ]; then
|
if [ `${python} -m pip list | grep fastdeploy | wc -l` -gt 0 ]; then
|
||||||
@@ -207,6 +222,7 @@ if [ "$BUILD_WHEEL" -eq 1 ]; then
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
init
|
init
|
||||||
|
version_info
|
||||||
build_and_install_ops
|
build_and_install_ops
|
||||||
build_and_install
|
build_and_install
|
||||||
cleanup
|
cleanup
|
||||||
@@ -237,6 +253,7 @@ if [ "$BUILD_WHEEL" -eq 1 ]; then
|
|||||||
else
|
else
|
||||||
init
|
init
|
||||||
build_and_install_ops
|
build_and_install_ops
|
||||||
|
version_info
|
||||||
rm -rf $BUILD_DIR $EGG_DIR $DIST_DIR
|
rm -rf $BUILD_DIR $EGG_DIR $DIST_DIR
|
||||||
rm -rf $OPS_SRC_DIR/$BUILD_DIR $OPS_SRC_DIR/$EGG_DIR
|
rm -rf $OPS_SRC_DIR/$BUILD_DIR $OPS_SRC_DIR/$EGG_DIR
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import sys
|
|||||||
os.environ["GLOG_minloglevel"] = "2"
|
os.environ["GLOG_minloglevel"] = "2"
|
||||||
# suppress log from aistudio
|
# suppress log from aistudio
|
||||||
os.environ["AISTUDIO_LOG"] = "critical"
|
os.environ["AISTUDIO_LOG"] = "critical"
|
||||||
|
from fastdeploy.utils import version
|
||||||
from fastdeploy.engine.sampling_params import SamplingParams
|
from fastdeploy.engine.sampling_params import SamplingParams
|
||||||
from fastdeploy.entrypoints.llm import LLM
|
from fastdeploy.entrypoints.llm import LLM
|
||||||
|
|
||||||
|
|||||||
@@ -562,6 +562,19 @@ def is_list_of(
|
|||||||
|
|
||||||
assert_never(check)
|
assert_never(check)
|
||||||
|
|
||||||
|
def version():
|
||||||
|
"""
|
||||||
|
Prints the contents of the version.txt file located in the parent directory of this script.
|
||||||
|
"""
|
||||||
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
version_file_path = os.path.join(current_dir, 'version.txt')
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(version_file_path, 'r') as f:
|
||||||
|
content = f.read()
|
||||||
|
print(content)
|
||||||
|
except FileNotFoundError:
|
||||||
|
llm_logger.error("[version.txt] Not Found!")
|
||||||
|
|
||||||
llm_logger = get_logger("fastdeploy", "fastdeploy.log")
|
llm_logger = get_logger("fastdeploy", "fastdeploy.log")
|
||||||
data_processor_logger = get_logger("data_processor", "data_processor.log")
|
data_processor_logger = get_logger("data_processor", "data_processor.log")
|
||||||
|
|||||||
@@ -1,200 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
PYTHON_VERSION=python
|
|
||||||
PYTHON_VERSION=${1:-$PYTHON_VERSION}
|
|
||||||
export python=$PYTHON_VERSION
|
|
||||||
FD_CPU_USE_BF16="false"
|
|
||||||
FD_CPU_USE_BF16=${2:-$FD_CPU_USE_BF16}
|
|
||||||
WITH_CPU="false"
|
|
||||||
|
|
||||||
# paddle distributed use to set archs
|
|
||||||
unset PADDLE_CUDA_ARCH_LIST
|
|
||||||
|
|
||||||
# directory config
|
|
||||||
DIST_DIR="dist"
|
|
||||||
BUILD_DIR="build"
|
|
||||||
EGG_DIR="fastdeploy.egg-info"
|
|
||||||
|
|
||||||
# custom_ops directory config
|
|
||||||
OPS_SRC_DIR="custom_ops"
|
|
||||||
OPS_BUILD_DIR="build"
|
|
||||||
OPS_EGG_DIR="efficitentllm_ops.egg-info"
|
|
||||||
OPS_TMP_DIR_BASE="tmp_base"
|
|
||||||
OPS_TMP_DIR="tmp"
|
|
||||||
OPS_TMP_DIR_CPU="tmp_cpu"
|
|
||||||
|
|
||||||
TEST_DIR="tests"
|
|
||||||
|
|
||||||
# command line log config
|
|
||||||
RED='\033[0;31m'
|
|
||||||
BLUE='\033[0;34m'
|
|
||||||
GREEN='\033[1;32m'
|
|
||||||
BOLD='\033[1m'
|
|
||||||
NONE='\033[0m'
|
|
||||||
|
|
||||||
|
|
||||||
function python_version_check() {
|
|
||||||
PY_MAIN_VERSION=`${python} -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1}'`
|
|
||||||
PY_SUB_VERSION=`${python} -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $2}'`
|
|
||||||
echo -e "find python version ${PY_MAIN_VERSION}.${PY_SUB_VERSION}"
|
|
||||||
if [ $PY_MAIN_VERSION -ne "3" -o $PY_SUB_VERSION -lt "9" ]; then
|
|
||||||
echo -e "${RED}FAIL:${NONE} please use Python >= 3.9 !"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
echo -e "${BLUE}[init]${NONE} removing building directory..."
|
|
||||||
rm -rf $DIST_DIR $BUILD_DIR $EGG_DIR
|
|
||||||
if [ `${python} -m pip list | grep fastdeploy | wc -l` -gt 0 ]; then
|
|
||||||
echo -e "${BLUE}[init]${NONE} uninstalling fastdeploy..."
|
|
||||||
${python} -m pip uninstall -y fastdeploy
|
|
||||||
fi
|
|
||||||
${python} -m pip install setuptools_scm
|
|
||||||
echo -e "${BLUE}[init]${NONE} installing requirements..."
|
|
||||||
${python} -m pip install --force-reinstall --pre paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/nightly/cu123/
|
|
||||||
${python} -m pip install --upgrade --force-reinstall -r requirements.txt --ignore-installed PyYAML
|
|
||||||
echo -e "${BLUE}[init]${NONE} ${GREEN}init success\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function copy_ops(){
|
|
||||||
OPS_VERSION="0.0.0"
|
|
||||||
PY_MAIN_VERSION=`${python} -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1}'`
|
|
||||||
PY_SUB_VERSION=`${python} -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $2}'`
|
|
||||||
PY_VERSION="py${PY_MAIN_VERSION}.${PY_SUB_VERSION}"
|
|
||||||
SYSTEM_VERSION=`${python} -c "import platform; print(platform.system().lower())"`
|
|
||||||
PROCESSOR_VERSION=`${python} -c "import platform; print(platform.processor())"`
|
|
||||||
WHEEL_BASE_NAME="fastdeploy_base_ops-${OPS_VERSION}-${PY_VERSION}-${SYSTEM_VERSION}-${PROCESSOR_VERSION}.egg"
|
|
||||||
WHEEL_NAME="fastdeploy_ops-${OPS_VERSION}-${PY_VERSION}-${SYSTEM_VERSION}-${PROCESSOR_VERSION}.egg"
|
|
||||||
echo -e "OPS are for BASE"
|
|
||||||
mkdir -p ../fastdeploy/model_executor/ops/base
|
|
||||||
cp -r ./${OPS_TMP_DIR_BASE}/${WHEEL_BASE_NAME}/* ../fastdeploy/model_executor/ops/base
|
|
||||||
echo -e "OPS are for CUDA"
|
|
||||||
cp -r ./${OPS_TMP_DIR}/${WHEEL_NAME}/* ../fastdeploy/model_executor/ops/gpu
|
|
||||||
if [ "$WITH_CPU" == "true" ]; then
|
|
||||||
WHEEL_CPU_NAME="fastdeploy_cpu_ops-${OPS_VERSION}-${PY_VERSION}-${SYSTEM_VERSION}-${PROCESSOR_VERSION}.egg"
|
|
||||||
echo -e "OPS are for CPU"
|
|
||||||
cd ../../../../
|
|
||||||
cp -r ./${OPS_TMP_DIR_CPU}/${WHEEL_CPU_NAME}/* ../fastdeploy/model_executor/ops/cpu
|
|
||||||
fi
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
function build_and_install_ops() {
|
|
||||||
cd $OPS_SRC_DIR
|
|
||||||
export no_proxy=bcebos.com,paddlepaddle.org.cn,${no_proxy}
|
|
||||||
echo -e "${BLUE}[build]${NONE} build and install fastdeploy_custom_ops..."
|
|
||||||
echo -e "${BLUE}[build]${NONE} build and install fastdeploy_base_ops..."
|
|
||||||
${python} setup_ops_base.py install --install-lib ${OPS_TMP_DIR_BASE}
|
|
||||||
find ${OPS_TMP_DIR_BASE} -type f -name "*.o" -exec rm -f {} \;
|
|
||||||
echo -e "${BLUE}[build]${NONE} build and install fastdeploy_custom_ops gpu ops..."
|
|
||||||
FD_BUILDING_ARCS="[80, 90]" ${python} setup_ops.py install --install-lib ${OPS_TMP_DIR}
|
|
||||||
find ${OPS_TMP_DIR} -type f -name "*.o" -exec rm -f {} \;
|
|
||||||
if [ "$WITH_CPU" == "true" ]; then
|
|
||||||
echo -e "${BLUE}[build]${NONE} build and install fastdeploy_custom_ops cpu ops..."
|
|
||||||
if [ "$FD_CPU_USE_BF16" == "true" ]; then
|
|
||||||
FD_CPU_USE_BF16=True ${python} setup_ops_cpu.py install --install-lib ${OPS_TMP_DIR_CPU}
|
|
||||||
find ${OPS_TMP_DIR_CPU} -type f -name "*.o" -exec rm -f {} \;
|
|
||||||
elif [ "$FD_CPU_USE_BF16" == "false" ]; then
|
|
||||||
${python} setup_ops_cpu.py install --install-lib ${OPS_TMP_DIR_CPU}
|
|
||||||
find ${OPS_TMP_DIR_CPU} -type f -name "*.o" -exec rm -f {} \;
|
|
||||||
else
|
|
||||||
echo "Error: Invalid parameter '$FD_CPU_USE_BF16'. Please use true or false."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "${RED}[FAIL]${NONE} build fastdeploy_custom_ops wheel failed !"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo -e "${BLUE}[build]${NONE} ${GREEN}build fastdeploy_custom_ops wheel success\n"
|
|
||||||
|
|
||||||
copy_ops
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
}
|
|
||||||
|
|
||||||
function build_and_install() {
|
|
||||||
echo -e "${BLUE}[build]${NONE} building fastdeploy wheel..."
|
|
||||||
${python} setup.py bdist_wheel --python-tag=py3
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "${RED}[FAIL]${NONE} build fastdeploy wheel failed !"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo -e "${BLUE}[build]${NONE} ${GREEN}build fastdeploy wheel success\n"
|
|
||||||
|
|
||||||
echo -e "${BLUE}[install]${NONE} installing fastdeploy..."
|
|
||||||
cd $DIST_DIR
|
|
||||||
find . -name "fastdeploy*.whl" | xargs ${python} -m pip install
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
cd ..
|
|
||||||
echo -e "${RED}[FAIL]${NONE} install fastdeploy wheel failed !"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo -e "${BLUE}[install]${NONE} ${GREEN}fastdeploy install success\n"
|
|
||||||
cd ..
|
|
||||||
}
|
|
||||||
|
|
||||||
function cleanup() {
|
|
||||||
rm -rf $BUILD_DIR $EGG_DIR
|
|
||||||
${python} -m pip uninstall -y fastdeploy
|
|
||||||
|
|
||||||
rm -rf $OPS_SRC_DIR/$BUILD_DIR $OPS_SRC_DIR/$EGG_DIR
|
|
||||||
}
|
|
||||||
|
|
||||||
function abort() {
|
|
||||||
echo -e "${RED}[FAIL]${NONE} build wheel failed !
|
|
||||||
please check your code" 1>&2
|
|
||||||
|
|
||||||
cur_dir=`basename "$pwd"`
|
|
||||||
|
|
||||||
rm -rf $BUILD_DIR $EGG_DIR $DIST_DIR
|
|
||||||
${python} -m pip uninstall -y fastdeploy
|
|
||||||
|
|
||||||
rm -rf $OPS_SRC_DIR/$BUILD_DIR $OPS_SRC_DIR/$EGG_DIR
|
|
||||||
}
|
|
||||||
|
|
||||||
python_version_check
|
|
||||||
|
|
||||||
trap 'abort' 0
|
|
||||||
set -e
|
|
||||||
|
|
||||||
init
|
|
||||||
build_and_install_ops
|
|
||||||
build_and_install
|
|
||||||
cleanup
|
|
||||||
|
|
||||||
# get Paddle version
|
|
||||||
PADDLE_VERSION=`${python} -c "import paddle; print(paddle.version.full_version)"`
|
|
||||||
PADDLE_COMMIT=`${python} -c "import paddle; print(paddle.version.commit)"`
|
|
||||||
|
|
||||||
# get fastdeploy version
|
|
||||||
FASTDEPLOY_BRANCH=`git rev-parse --abbrev-ref HEAD`
|
|
||||||
FASTDEPLOY_COMMIT=`git rev-parse --short HEAD`
|
|
||||||
|
|
||||||
# get Python version
|
|
||||||
PYTHON_VERSION=`${python} -c "import platform; print(platform.python_version())"`
|
|
||||||
|
|
||||||
echo -e "\n${GREEN}fastdeploy wheel compiled and checked success !${NONE}
|
|
||||||
${BLUE}Python version:${NONE} $PYTHON_VERSION
|
|
||||||
${BLUE}Paddle version:${NONE} $PADDLE_VERSION ($PADDLE_COMMIT)
|
|
||||||
${BLUE}fastdeploy branch:${NONE} $FASTDEPLOY_BRANCH ($FASTDEPLOY_COMMIT)\n"
|
|
||||||
|
|
||||||
echo -e "${GREEN}wheel saved under${NONE} ${RED}${BOLD}./dist${NONE}"
|
|
||||||
|
|
||||||
trap : 0
|
|
||||||
3
setup.py
3
setup.py
@@ -189,7 +189,8 @@ setup(
|
|||||||
"model_executor/ops/xpu/libs/*",
|
"model_executor/ops/xpu/libs/*",
|
||||||
"model_executor/ops/npu/*", "model_executor/ops/base/*",
|
"model_executor/ops/npu/*", "model_executor/ops/base/*",
|
||||||
"model_executor/models/*", "model_executor/layers/*",
|
"model_executor/models/*", "model_executor/layers/*",
|
||||||
"input/mm_processor/utils/*"
|
"input/mm_processor/utils/*",
|
||||||
|
"version.txt"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
install_requires=load_requirements(),
|
install_requires=load_requirements(),
|
||||||
|
|||||||
Reference in New Issue
Block a user