Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7906bed
[AMD] [WIP] [AGENTX] MiniMax-M3 Support on MI355X with MTP
AjithSirra Aug 4, 2026
4edbe0e
[AMD] [WIP] [AGENTX] MiniMax-M3 Support on MI355X with MTP - Modifyin…
AjithSirra Aug 4, 2026
635a5d6
[AMD] [WIP] [AGENTX] MiniMax-M3 Support on MI355X with MTP - Adding P…
AjithSirra Aug 4, 2026
f240481
[AMD] [WIP] [AGENTX] MiniMax-M3 Support on MI355X with MTP - Adding D…
AjithSirra Aug 4, 2026
cebeb27
feat(minimaxm3-fp4-mi355x-vllm-agentic-mtp): pin synthetic EAGLE3 acc…
functionstackx Aug 4, 2026
c2eaad7
[AMD] [WIP] [AGENTX] Minimax-M3 - Update minimaxm3_fp4_mi355x_mtp.sh
ajith-sirra-amd Aug 6, 2026
b4d315d
Merge branch 'main' into amd/agentx-minimax-m3-mtp
ajith-sirra-amd Aug 6, 2026
1b9dc12
[AMD] [WIP] [AGENTX] Minimax-M3 - Update amd-master.yaml
ajith-sirra-amd Aug 6, 2026
dd2e900
[AMD] [WIP] [AGENTX] Minimax-M3 - Update perf-changelog.yaml
ajith-sirra-amd Aug 6, 2026
c885ea5
Update docker image in amd-master.yaml
ajith-sirra-amd Aug 6, 2026
623f889
Reducing DRAM Utilization
ajith-sirra-amd Aug 6, 2026
8ecef58
Modifying Script for better Perf
AjithSirra Aug 6, 2026
0f1ba28
Modifying Script for better Perf
AjithSirra Aug 6, 2026
99037f6
Modifying Script for better Perf
AjithSirra Aug 6, 2026
d8abe45
Modifying Script for better Perf. Removing unsupported flags.
AjithSirra Aug 6, 2026
4f05e1d
Modifying Script for better Perf. Removing unsupported flags.
AjithSirra Aug 6, 2026
7f79ba2
Merge branch 'main' into amd/agentx-minimax-m3-mtp
ajith-sirra-amd Aug 11, 2026
904af40
Merge current main into MiniMax-M3 tuning branch
cquil11 Aug 11, 2026
a57ffd9
feat(amd): expand MI355X MiniMax-M3 AgentX MTP frontier
cquil11 Aug 11, 2026
84f8658
fix(perf): preserve MiniMax-M3 changelog history
cquil11 Aug 11, 2026
750bb0c
fix(amd): use supported MiniMax-M3 TP2 sparse attention
cquil11 Aug 11, 2026
e77a530
fix(agentx): use supported chat-template flag
cquil11 Aug 11, 2026
b201828
fix(amd): install LMCache MP runtime dependency
cquil11 Aug 11, 2026
991513b
Fix LMCache metrics dependency
cquil11 Aug 12, 2026
059bb1c
fix(amd): complete LMCache runtime and share server helpers
cquil11 Aug 12, 2026
8b28cbb
Merge remote-tracking branch 'origin/main' into codex/pr2487-minimax-…
cquil11 Aug 12, 2026
053c93a
Merge remote-tracking branch 'origin/main' into codex/pr2487-minimax-…
cquil11 Aug 12, 2026
a5a6e7d
Merge current main into MI355X MiniMax-M3 tuning
cquil11 Aug 12, 2026
f35ae77
Merge branch 'main' into amd/agentx-minimax-m3-mtp
cquil11 Aug 12, 2026
0b120ce
docs(perf): consolidate MiniMax-M3 changelog
cquil11 Aug 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 99 additions & 37 deletions benchmarks/benchmark_lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -343,81 +343,143 @@ check_env_vars() {
fi
}

# Wait for server to be ready by polling the health endpoint
# All parameters are required
# Parameters:
# --port: Server port
# --server-log: Path to server log file
# --server-pid: Server process ID (required)
# --sleep-interval: Sleep interval between health checks (optional, default: 5)
wait_for_server_ready() {
# Poll an HTTP endpoint while streaming the owning process log.
# Required: --endpoint, --log, --pid. A zero timeout waits indefinitely.
wait_for_ready() {
set +x
local port=""
local server_log=""
local server_pid=""
local endpoint=""
local process_log=""
local process_pid=""
local sleep_interval=5
local timeout=0

# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--port)
port="$2"
--endpoint)
endpoint="$2"
shift 2
;;
--server-log)
server_log="$2"
--log)
process_log="$2"
shift 2
;;
--server-pid)
server_pid="$2"
--pid)
process_pid="$2"
shift 2
;;
--sleep-interval)
sleep_interval="$2"
shift 2
;;
--timeout)
timeout="$2"
shift 2
;;
*)
echo "Unknown parameter: $1"
return 1
;;
esac
done

# Validate required parameters
if [[ -z "$port" ]]; then
echo "Error: --port is required"
if [[ -z "$endpoint" ]]; then
echo "Error: --endpoint is required"
return 1
fi
if [[ -z "$process_log" ]]; then
echo "Error: --log is required"
return 1
fi
if [[ -z "$server_log" ]]; then
echo "Error: --server-log is required"
if [[ -z "$process_pid" ]]; then
echo "Error: --pid is required"
return 1
fi
if [[ -z "$server_pid" ]]; then
echo "Error: --server-pid is required"
if [[ ! "$sleep_interval" =~ ^[1-9][0-9]*$ ]]; then
echo "Error: --sleep-interval must be a positive integer"
return 1
fi
if [[ ! "$timeout" =~ ^[0-9]+$ ]]; then
echo "Error: --timeout must be a non-negative integer"
return 1
fi

local deadline=0
if [[ "$timeout" -gt 0 ]]; then
deadline=$((SECONDS + timeout))
fi

# Wait for server log file to be created (container startup may delay this)
while [ ! -f "$server_log" ]; do
if ! kill -0 "$server_pid" 2>/dev/null; then
echo "Server died before creating log file. Exiting."
while [[ ! -f "$process_log" ]]; do
if ! kill -0 "$process_pid" 2>/dev/null; then
echo "Process died before creating $process_log." >&2
exit 1
fi
if [[ "$deadline" -gt 0 && "$SECONDS" -ge "$deadline" ]]; then
echo "Timed out waiting for $endpoint." >&2
exit 1
fi
sleep 1
done

# Show logs until server is ready
tail -f -n +1 "$server_log" &
local TAIL_PID=$!
until curl --output /dev/null --silent --fail http://0.0.0.0:$port/health; do
if ! kill -0 "$server_pid" 2>/dev/null; then
echo "Server died before becoming healthy. Exiting."
kill $TAIL_PID
tail -f -n +1 "$process_log" &
local tail_pid=$!
until curl --output /dev/null --silent --fail "$endpoint"; do
if ! kill -0 "$process_pid" 2>/dev/null; then
echo "Process died before $endpoint became ready." >&2
kill "$tail_pid" 2>/dev/null || true
exit 1
fi
if [[ "$deadline" -gt 0 && "$SECONDS" -ge "$deadline" ]]; then
echo "Timed out waiting for $endpoint." >&2
kill "$tail_pid" 2>/dev/null || true
exit 1
fi
sleep "$sleep_interval"
done
kill $TAIL_PID
kill "$tail_pid" 2>/dev/null || true
wait "$tail_pid" 2>/dev/null || true
}

wait_for_server_ready() {
local port=""
local server_log=""
local server_pid=""
local sleep_interval=5

while [[ $# -gt 0 ]]; do
case $1 in
--port) port="$2"; shift 2 ;;
--server-log) server_log="$2"; shift 2 ;;
--server-pid) server_pid="$2"; shift 2 ;;
--sleep-interval) sleep_interval="$2"; shift 2 ;;
*) echo "Unknown parameter: $1"; return 1 ;;
esac
done

if [[ -z "$port" || -z "$server_log" || -z "$server_pid" ]]; then
echo "Error: --port, --server-log, and --server-pid are required"
return 1
fi

wait_for_ready \
--endpoint "http://0.0.0.0:${port}/health" \
--log "$server_log" \
--pid "$server_pid" \
--sleep-interval "$sleep_interval"
}

# Persist an argv array in shell-replayable form.
write_command() {
local output_file="$1"
shift
printf '%q ' "$@" | tee "$output_file"
printf '\n' | tee -a "$output_file"
}

append_command() {
local output_file="$1"
shift
printf '%q ' "$@" >> "$output_file"
printf '\n' >> "$output_file"
}

# Run benchmark serving with standardized parameters
Expand Down
Loading