评估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"
|
||||
COMPARE_LIMIT=64
|
||||
RUN_CHECKER=1
|
||||
QUANT="int16"
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
@@ -34,6 +35,7 @@ Options:
|
||||
--log-prefix PREFIX log dir prefix below logs/, default rlgym_go1_deploy
|
||||
--docker-image IMAGE D-Robotics CPU toolchain image
|
||||
--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
|
||||
EOF
|
||||
}
|
||||
@@ -50,6 +52,7 @@ while [[ $# -gt 0 ]]; do
|
||||
--log-prefix) LOG_PREFIX="$2"; shift 2 ;;
|
||||
--docker-image) DOCKER_IMAGE="$2"; shift 2 ;;
|
||||
--compare-limit) COMPARE_LIMIT="$2"; shift 2 ;;
|
||||
--quant) QUANT="$2"; shift 2 ;;
|
||||
--skip-checker) RUN_CHECKER=0; shift ;;
|
||||
-h|--help) usage; exit 0 ;;
|
||||
*) echo "Unknown argument: $1" >&2; usage >&2; exit 2 ;;
|
||||
@@ -60,6 +63,11 @@ if [[ -z "${FLAT_DIM}" ]]; then
|
||||
FLAT_DIM=$((45 * HISTORY_LEN))
|
||||
fi
|
||||
|
||||
case "${QUANT}" in
|
||||
int16|int8) ;;
|
||||
*) echo "--quant must be int16 or int8, got: ${QUANT}" >&2; exit 2 ;;
|
||||
esac
|
||||
|
||||
if [[ "${POLICY}" = /* ]]; then
|
||||
POLICY_ABS="${POLICY}"
|
||||
else
|
||||
@@ -81,8 +89,13 @@ if [[ -z "${NAME}" ]]; then
|
||||
fi
|
||||
|
||||
CAL_DIR="calibration_data_${ROUND}_gym_fast${SAMPLES}"
|
||||
OUTPUT_DIR="mapper_output_${ROUND}_gemm"
|
||||
OUTPUT_PREFIX="${NAME}_int16_gemm"
|
||||
if [[ "${QUANT}" = "int16" ]]; then
|
||||
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"
|
||||
|
||||
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] calibration : ${CAL_DIR} (${SAMPLES} samples, prefix ${LOG_PREFIX})"
|
||||
echo "[INFO] output : ${OUTPUT_DIR}/${OUTPUT_PREFIX}.bin"
|
||||
echo "[INFO] quant : ${QUANT}"
|
||||
|
||||
docker run --rm --platform linux/amd64 \
|
||||
-e POLICY_REL="${POLICY_REL}" \
|
||||
@@ -106,6 +120,7 @@ docker run --rm --platform linux/amd64 \
|
||||
-e YAML_FILE="${YAML_FILE}" \
|
||||
-e COMPARE_LIMIT="${COMPARE_LIMIT}" \
|
||||
-e RUN_CHECKER="${RUN_CHECKER}" \
|
||||
-e QUANT="${QUANT}" \
|
||||
-v "${REPO_ROOT}:/workspace/deploy_go1_pro" \
|
||||
"${DOCKER_IMAGE}" \
|
||||
bash -lc '
|
||||
@@ -151,6 +166,12 @@ docker run --rm --platform linux/amd64 \
|
||||
--flat-dim "${FLAT_DIM}" \
|
||||
--limit "${COMPARE_LIMIT}"
|
||||
|
||||
if [[ "${QUANT}" = "int16" ]]; then
|
||||
OPTIMIZATION_LINE=" optimization: \"set_all_nodes_int16\""
|
||||
else
|
||||
OPTIMIZATION_LINE=""
|
||||
fi
|
||||
|
||||
cat > "${YAML_FILE}" <<YAML
|
||||
model_parameters:
|
||||
onnx_model: "./${GEMM_ONNX}"
|
||||
@@ -172,7 +193,7 @@ calibration_parameters:
|
||||
cal_data_dir: "./${CAL_DIR}"
|
||||
cal_data_type: "float32"
|
||||
calibration_type: "default"
|
||||
optimization: "set_all_nodes_int16"
|
||||
${OPTIMIZATION_LINE}
|
||||
per_channel: true
|
||||
|
||||
compiler_parameters:
|
||||
|
||||
Reference in New Issue
Block a user