评估int16
This commit is contained in:
@@ -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}"
|
||||||
OUTPUT_DIR="mapper_output_${ROUND}_gemm"
|
if [[ "${QUANT}" = "int16" ]]; then
|
||||||
OUTPUT_PREFIX="${NAME}_int16_gemm"
|
OUTPUT_DIR="mapper_output_${ROUND}_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:
|
||||||
|
|||||||
Reference in New Issue
Block a user