44 lines
2.3 KiB
Bash
44 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Copyright (c) 2025 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.
|
|
|
|
pr_whl_path=${PADDLE_ROOT}/build/pr_whl/
|
|
dev_whl_path=${PADDLE_ROOT}/build/python/dist/
|
|
approval_line=$(curl -H "Authorization: token ${GITHUB_API_TOKEN}" https://api.github.com/repos/PaddlePaddle/Paddle/pulls/${GIT_PR_ID}/reviews?per_page=10000)
|
|
|
|
# Install dev wheel
|
|
echo "::group::Generate dev_phi_kernels.json and pr_phi_kernels.json"
|
|
pip install --force-reinstall "${dev_whl_path}"/*.whl
|
|
python -c 'import paddle;import json;print(json.dumps(paddle.base.core._get_all_register_op_kernels("phi"), indent=4))' > dev_phi_kernels.json
|
|
# Install pr wheel
|
|
pip install --force-reinstall "${pr_whl_path}"/*.whl
|
|
python -c 'import paddle;import json;print(json.dumps(paddle.base.core._get_all_register_op_kernels("phi"), indent=4))' > pr_phi_kernels.json
|
|
echo "::endgroup::"
|
|
|
|
echo -e "\e[33mBegin to compare GPU kernels between dev and pr...\e[0m"
|
|
if ! python "${PADDLE_ROOT}/tools/gpu_kernel_compare.py" dev_phi_kernels.json pr_phi_kernels.json; then
|
|
APPROVALS=$(echo "${approval_line}"|python "${PADDLE_ROOT}"/tools/check_pr_approval.py 1 wanghuancoder)
|
|
if [[ "${APPROVALS}" == "FALSE" ]]; then
|
|
echo -e "\e[31m**************************************************************\e[0m"
|
|
echo -e "\e[31mPlease ensure the added GPU kernel supports big tensors, defined as those with a number of elements (numel) greater than 2^31 - 1. In the PR description, please describe how you tested this scenario and validated the data accuracy.\e[0m"
|
|
echo -e "\e[31mYou must have one RD (wanghuancoder) approval.\e[0m"
|
|
echo -e "\e[31m**************************************************************\e[0m"
|
|
exit 6
|
|
fi
|
|
fi
|
|
echo -e "\e[33mComparison completed.\e[0m"
|
|
|
|
echo -e "\e[32mGPU kernel approval check passed.\e[0m"
|