-
Notifications
You must be signed in to change notification settings - Fork 76
161 lines (137 loc) · 5.51 KB
/
run-e2e.yml
File metadata and controls
161 lines (137 loc) · 5.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# name: e2e-test
# on:
# workflow_call:
# pull_request:
# branches: [main]
# types: [opened, synchronize, reopened]
# push:
# branches: [main]
# concurrency:
# group: e2e-singlecard
# cancel-in-progress: false
# jobs:
# e2e:
# name: e2e-test-singlecard
# runs-on:
# - self-hosted
# - Linux
# - X64
# steps:
# - name: Checkout PR code
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - name: Verify PR workspace
# run: |
# echo "===== WORKSPACE ====="
# pwd
# ls -l
# echo "===== GIT INFO ====="
# git rev-parse HEAD
# git log -1 --oneline
# git status --porcelain
# - name: Start docker
# run: |
# bash ci/scripts/docker/start_docker.sh
# - name: Install enviroments
# env:
# PROXY_URL: ${{ secrets.PROXY_URL }}
# NO_PROXY_LIST: ${{ secrets.NO_PROXY_LIST }}
# run: |
# bash ci/scripts/env/install_env.sh
# - name: Start vLLM server
# run: |
# bash ci/scripts/server/start_vllm.sh
# - name: Wait for vLLM ready
# run: |
# bash ci/scripts/server/wait_vllm.sh
# - name: API Test
# run: |
# docker exec aiak-e2e-singlecard bash -lc '
# curl http://localhost:8356/v1/chat/completions \
# -H "Content-Type: application/json" \
# -d @- << "EOF"
# {
# "model": "Qwen3-8B",
# "messages": [
# { "role": "user", "content": "Who are you?" }
# ],
# "max_tokens": 200,
# "temperature": 0
# }
# EOF
# '
# - name: Accuracy testing
# run: |
# bash ci/scripts/tests/run_accuracy.sh
# - name: Performance testing
# run: |
# docker exec aiak-e2e-singlecard bash -lc '
# source ci/scripts/common/env.sh
# source ci/scripts/common/log.sh
# #!/bin/bash
# # ==========================================
# # 1. Define test dimensions
# # (can be easily extended, e.g., add "2048x2048")
# # ==========================================
# DIMENSIONS=("1024x1024")
# # ==========================================
# # 2. Define concurrency generation logic (densification strategy)
# # ============x==============================
# # Use array concatenation to combine different density ranges
# # Syntax: seq [start] [step] [end]
# CONCURRENCIES=(1)
# # ==========================================
# # 3. Automatically assemble test cases
# # ==========================================
# TEST_COMBINATIONS=() # Initialize empty array
# # 🔄 Modified: outer loop over batch size (concurrency), inner loop over dimensions
# for bs in "${CONCURRENCIES[@]}"; do # ← outer loop: concurrency
# for dim in "${DIMENSIONS[@]}"; do # ← inner loop: dimensions
# case_str="${bs}x${dim}"
# TEST_COMBINATIONS+=("$case_str")
# done
# done
# # ==========================================
# # 4. (Optional) Print generated cases for sanity check
# # ==========================================
# echo "Generated ${#TEST_COMBINATIONS[@]} test cases in total:"
# echo "${TEST_COMBINATIONS[@]}" # Uncomment if you want to print all cases
# # Progress counters
# TOTAL_TESTS=${#TEST_COMBINATIONS[@]}
# CURRENT_TEST=0
# # Iterate over all test combinations
# for COMBINATION in "${TEST_COMBINATIONS[@]}"; do
# # Parse parameters from combination string
# NUM_PROMPTS=$(echo $COMBINATION | cut -d'x' -f1)
# INPUT_LEN=$(echo $COMBINATION | cut -d'x' -f2)
# OUTPUT_LEN=$(echo $COMBINATION | cut -d'x' -f3)
# # Update progress
# CURRENT_TEST=$((CURRENT_TEST + 1))
# echo "=========================================================="
# echo "Test progress: $CURRENT_TEST / $TOTAL_TESTS"
# echo "Current configuration: concurrency=$NUM_PROMPTS, input_len=$INPUT_LEN, output_len=$OUTPUT_LEN"
# echo "=========================================================="
# #OUTPUT_FILE="$RESULT_DIR/p800_${NUM_PROMPTS}_${INPUT_LEN}_${OUTPUT_LEN}.log"
# # Run benchmark
# python3 -m vllm.entrypoints.cli.main bench serve \
# --host 127.0.0.1 \
# --port ${VLLM_PORT:-8356}\
# --backend vllm \
# --model ${SERVED_MODEL_NAME:-Qwen3-8B} \
# --dataset-name random \
# --num-prompts $NUM_PROMPTS \
# --random-input-len $INPUT_LEN \
# --random-output-len $OUTPUT_LEN \
# --tokenizer ${MODEL_PATH:-/ssd3/models/Qwen3-8B} \
# --ignore-eos
# done
# '
- name: Set permissions
if: always()
run: |
bash ci/scripts/docker/set_permissions.sh
- name: Cleanup docker
if: always()
run: |
bash ci/scripts/docker/stop_docker.sh