mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-09-01 01:27:50 +02:00
* rpc: avoid serializing buffers from other servers Only include remote buffer pointers when the buffer belongs to the RPC dispatcher receiving the graph. Add a two-server regression test for cross-server tensor serialization. Assisted-by: Codex * cont : add ref --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
44 lines
955 B
Bash
Executable File
44 lines
955 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
server=$1
|
|
client=$2
|
|
port_a=$((40000 + $$ % 10000))
|
|
port_b=$((port_a + 1))
|
|
endpoint_a="127.0.0.1:${port_a}"
|
|
endpoint_b="127.0.0.1:${port_b}"
|
|
test_dir=$(mktemp -d)
|
|
|
|
cleanup() {
|
|
kill "${pid_a:-}" "${pid_b:-}" 2>/dev/null || true
|
|
rm -rf "$test_dir"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
wait_for_port() {
|
|
local port=$1
|
|
for _ in {1..600}; do
|
|
if (exec 3<>"/dev/tcp/127.0.0.1/$port") 2>/dev/null; then
|
|
exec 3>&-
|
|
exec 3<&-
|
|
return 0
|
|
fi
|
|
sleep 0.05
|
|
done
|
|
return 1
|
|
}
|
|
|
|
"$server" --device CPU --host 127.0.0.1 --port "$port_a" >"$test_dir/server-a.log" 2>&1 &
|
|
pid_a=$!
|
|
"$server" --device CPU --host 127.0.0.1 --port "$port_b" >"$test_dir/server-b.log" 2>&1 &
|
|
pid_b=$!
|
|
wait_for_port "$port_a"
|
|
wait_for_port "$port_b"
|
|
|
|
"$client" "$endpoint_a" "$endpoint_b"
|
|
|
|
if grep -q "invalid data ptr" "$test_dir/server-b.log"; then
|
|
cat "$test_dir/server-b.log"
|
|
exit 1
|
|
fi
|