评估int16

This commit is contained in:
cyy_mac
2026-07-28 19:09:25 +08:00
parent 071c576bfe
commit a729020c78

View File

@@ -15,6 +15,7 @@ LOG_PREFIX="rlgym_go1_deploy"
DOCKER_IMAGE="openexplorer/ai_toolchain_ubuntu_20_x5_cpu:v1.2.8" DOCKER_IMAGE="openexplorer/ai_toolchain_ubuntu_20_x5_cpu:v1.2.8"
COMPARE_LIMIT=64 COMPARE_LIMIT=64
RUN_CHECKER=1 RUN_CHECKER=1
QUANT="int16"
usage() { usage() {
cat <<'EOF' cat <<'EOF'
@@ -34,6 +35,7 @@ Options:
--log-prefix PREFIX log dir prefix below logs/, default rlgym_go1_deploy --log-prefix PREFIX log dir prefix below logs/, default rlgym_go1_deploy
--docker-image IMAGE D-Robotics CPU toolchain image --docker-image IMAGE D-Robotics CPU toolchain image
--compare-limit N float ONNX equivalence sample count, default 64 --compare-limit N float ONNX equivalence sample count, default 64
--quant int16|int8 int16 keeps current conservative path; int8 omits set_all_nodes_int16
--skip-checker skip hb_mapper checker before makertbin --skip-checker skip hb_mapper checker before makertbin
EOF EOF
} }
@@ -50,6 +52,7 @@ while [[ $# -gt 0 ]]; do
--log-prefix) LOG_PREFIX="$2"; shift 2 ;; --log-prefix) LOG_PREFIX="$2"; shift 2 ;;
--docker-image) DOCKER_IMAGE="$2"; shift 2 ;; --docker-image) DOCKER_IMAGE="$2"; shift 2 ;;
--compare-limit) COMPARE_LIMIT="$2"; shift 2 ;; --compare-limit) COMPARE_LIMIT="$2"; shift 2 ;;
--quant) QUANT="$2"; shift 2 ;;
--skip-checker) RUN_CHECKER=0; shift ;; --skip-checker) RUN_CHECKER=0; shift ;;
-h|--help) usage; exit 0 ;; -h|--help) usage; exit 0 ;;
*) echo "Unknown argument: $1" >&2; usage >&2; exit 2 ;; *) echo "Unknown argument: $1" >&2; usage >&2; exit 2 ;;
@@ -60,6 +63,11 @@ if [[ -z "${FLAT_DIM}" ]]; then
FLAT_DIM=$((45 * HISTORY_LEN)) FLAT_DIM=$((45 * HISTORY_LEN))
fi fi
case "${QUANT}" in
int16|int8) ;;
*) echo "--quant must be int16 or int8, got: ${QUANT}" >&2; exit 2 ;;
esac
if [[ "${POLICY}" = /* ]]; then if [[ "${POLICY}" = /* ]]; then
POLICY_ABS="${POLICY}" POLICY_ABS="${POLICY}"
else else
@@ -81,8 +89,13 @@ if [[ -z "${NAME}" ]]; then
fi fi
CAL_DIR="calibration_data_${ROUND}_gym_fast${SAMPLES}" CAL_DIR="calibration_data_${ROUND}_gym_fast${SAMPLES}"
if [[ "${QUANT}" = "int16" ]]; then
OUTPUT_DIR="mapper_output_${ROUND}_gemm" OUTPUT_DIR="mapper_output_${ROUND}_gemm"
OUTPUT_PREFIX="${NAME}_int16_gemm" OUTPUT_PREFIX="${NAME}_int16_gemm"
else
OUTPUT_DIR="mapper_output_${ROUND}_int8_gemm"
OUTPUT_PREFIX="${NAME}_int8_gemm"
fi
YAML_FILE="${OUTPUT_PREFIX}.yaml" YAML_FILE="${OUTPUT_PREFIX}.yaml"
echo "[INFO] repo : ${REPO_ROOT}" echo "[INFO] repo : ${REPO_ROOT}"
@@ -91,6 +104,7 @@ echo "[INFO] name/round : ${NAME} / ${ROUND}"
echo "[INFO] history/shape : ${HISTORY_LEN} / 1x1x1x${FLAT_DIM}" echo "[INFO] history/shape : ${HISTORY_LEN} / 1x1x1x${FLAT_DIM}"
echo "[INFO] calibration : ${CAL_DIR} (${SAMPLES} samples, prefix ${LOG_PREFIX})" echo "[INFO] calibration : ${CAL_DIR} (${SAMPLES} samples, prefix ${LOG_PREFIX})"
echo "[INFO] output : ${OUTPUT_DIR}/${OUTPUT_PREFIX}.bin" echo "[INFO] output : ${OUTPUT_DIR}/${OUTPUT_PREFIX}.bin"
echo "[INFO] quant : ${QUANT}"
docker run --rm --platform linux/amd64 \ docker run --rm --platform linux/amd64 \
-e POLICY_REL="${POLICY_REL}" \ -e POLICY_REL="${POLICY_REL}" \
@@ -106,6 +120,7 @@ docker run --rm --platform linux/amd64 \
-e YAML_FILE="${YAML_FILE}" \ -e YAML_FILE="${YAML_FILE}" \
-e COMPARE_LIMIT="${COMPARE_LIMIT}" \ -e COMPARE_LIMIT="${COMPARE_LIMIT}" \
-e RUN_CHECKER="${RUN_CHECKER}" \ -e RUN_CHECKER="${RUN_CHECKER}" \
-e QUANT="${QUANT}" \
-v "${REPO_ROOT}:/workspace/deploy_go1_pro" \ -v "${REPO_ROOT}:/workspace/deploy_go1_pro" \
"${DOCKER_IMAGE}" \ "${DOCKER_IMAGE}" \
bash -lc ' bash -lc '
@@ -151,6 +166,12 @@ docker run --rm --platform linux/amd64 \
--flat-dim "${FLAT_DIM}" \ --flat-dim "${FLAT_DIM}" \
--limit "${COMPARE_LIMIT}" --limit "${COMPARE_LIMIT}"
if [[ "${QUANT}" = "int16" ]]; then
OPTIMIZATION_LINE=" optimization: \"set_all_nodes_int16\""
else
OPTIMIZATION_LINE=""
fi
cat > "${YAML_FILE}" <<YAML cat > "${YAML_FILE}" <<YAML
model_parameters: model_parameters:
onnx_model: "./${GEMM_ONNX}" onnx_model: "./${GEMM_ONNX}"
@@ -172,7 +193,7 @@ calibration_parameters:
cal_data_dir: "./${CAL_DIR}" cal_data_dir: "./${CAL_DIR}"
cal_data_type: "float32" cal_data_type: "float32"
calibration_type: "default" calibration_type: "default"
optimization: "set_all_nodes_int16" ${OPTIMIZATION_LINE}
per_channel: true per_channel: true
compiler_parameters: compiler_parameters: