diff --git a/analysis/crossover/d1_i1024_goodput.json b/analysis/crossover/d1_i1024_goodput.json new file mode 100644 index 0000000..ccf1ed4 --- /dev/null +++ b/analysis/crossover/d1_i1024_goodput.json @@ -0,0 +1,142 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.1385939740576, + "amplification": 1.0013425037685975, + "ttft": { + "count": 1167, + "mean": 0.08144469193556772, + "p50": 0.07862715201918036, + "p90": 0.08015060934703797, + "p99": 0.0875979653932154 + }, + "tpot": { + "count": 1167, + "mean": 0.005001699398049616, + "p50": 0.004988961030788246, + "p90": 0.005045765990923557, + "p99": 0.005062779263327164 + }, + "e2e": { + "count": 1167, + "mean": 0.3968209869372152, + "p50": 0.393534954986535, + "p90": 0.39730903680901974, + "p99": 0.40925762055674536 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.1604231200181, + "amplification": 1.0014153316291596, + "ttft": { + "count": 1167, + "mean": 0.09946277569807849, + "p50": 0.09600010397844017, + "p90": 0.10452785079833121, + "p99": 0.11205230774357905 + }, + "tpot": { + "count": 1167, + "mean": 0.005007447102661814, + "p50": 0.004987124730611131, + "p90": 0.005003212126977151, + "p99": 0.005478902989961502 + }, + "e2e": { + "count": 1167, + "mean": 0.415208436744531, + "p50": 0.41056320699863136, + "p90": 0.4200975856045261, + "p99": 0.44871115096379066 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.2032543020323, + "amplification": 1.0015582278907484, + "ttft": { + "count": 1167, + "mean": 0.10561635944505095, + "p50": 0.10468761203810573, + "p90": 0.11257308297790587, + "p99": 0.12065987563692024 + }, + "tpot": { + "count": 1167, + "mean": 0.005328901365752947, + "p50": 0.005144592110318915, + "p90": 0.005990574603515958, + "p99": 0.006688486758013448 + }, + "e2e": { + "count": 1167, + "mean": 0.4416300980896939, + "p50": 0.42991435900330544, + "p90": 0.4854830394731835, + "p99": 0.5404117306252005 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + }, + { + "ttft_slo_s": 5.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d1_i16384_goodput.json b/analysis/crossover/d1_i16384_goodput.json new file mode 100644 index 0000000..ce3467c --- /dev/null +++ b/analysis/crossover/d1_i16384_goodput.json @@ -0,0 +1,142 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 303.05708941399644, + "amplification": 1.0110793839624128, + "ttft": { + "count": 1167, + "mean": 1.674437926279444, + "p50": 1.5353219069947954, + "p90": 2.0787689138029237, + "p99": 3.039117059087727 + }, + "tpot": { + "count": 1167, + "mean": 0.035498316425319934, + "p50": 0.02951206674587743, + "p90": 0.085249871320677, + "p99": 0.15422643764865662 + }, + "e2e": { + "count": 1167, + "mean": 3.9111985703531236, + "p50": 3.392241114997887, + "p90": 7.760864628604043, + "p99": 11.30427318874542 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 1167, + "n_success": 1136, + "completion_rate": 0.9734361610968295, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 866.9596620649972, + "amplification": 2.8924089607535697, + "ttft": { + "count": 1136, + "mean": 65.09021699308856, + "p50": 66.22900710900285, + "p90": 112.5535424454938, + "p99": 124.55262411334482 + }, + "tpot": { + "count": 1136, + "mean": 0.005710658520121912, + "p50": 0.005725543936557461, + "p90": 0.005750613698356098, + "p99": 0.0058447879207267845 + }, + "e2e": { + "count": 1136, + "mean": 65.4504681098121, + "p50": 66.59053339700768, + "p90": 112.9150809329949, + "p99": 124.91415351489852 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 307.42712411200046, + "amplification": 1.0256589867656205, + "ttft": { + "count": 1167, + "mean": 3.6233640342625417, + "p50": 3.255483777000336, + "p90": 6.0935156565916255, + "p99": 7.349482456580735 + }, + "tpot": { + "count": 1167, + "mean": 0.006360297526341433, + "p50": 0.006324973206372104, + "p90": 0.007198417158741947, + "p99": 0.007942749238420567 + }, + "e2e": { + "count": 1167, + "mean": 4.024414356593621, + "p50": 3.6796783979953034, + "p90": 6.510242249601289, + "p99": 7.7530036393977895 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 0.6563838903170522, + "pd_advantage": 1.0, + "n_slo": 766 + }, + "4P+4D": { + "attainment": 0.0, + "pd_advantage": 0.0, + "n_slo": 0 + }, + "6P+2D": { + "attainment": 0.20565552699228792, + "pd_advantage": 0.3133159268929504, + "n_slo": 240 + } + } + }, + { + "ttft_slo_s": 5.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 0.7095115681233933, + "pd_advantage": 1.0, + "n_slo": 828 + }, + "4P+4D": { + "attainment": 0.012853470437017995, + "pd_advantage": 0.018115942028985508, + "n_slo": 15 + }, + "6P+2D": { + "attainment": 0.7746358183376179, + "pd_advantage": 1.0917874396135265, + "n_slo": 904 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d1_i2048_goodput.json b/analysis/crossover/d1_i2048_goodput.json new file mode 100644 index 0000000..0c2c1c9 --- /dev/null +++ b/analysis/crossover/d1_i2048_goodput.json @@ -0,0 +1,142 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.1927249849541, + "amplification": 1.0015230992770423, + "ttft": { + "count": 1167, + "mean": 0.1367582682356152, + "p50": 0.1337889520218596, + "p90": 0.13568343156948687, + "p99": 0.1417779766954481 + }, + "tpot": { + "count": 1167, + "mean": 0.005039774583944486, + "p50": 0.005025791809968059, + "p90": 0.005088228446667984, + "p99": 0.0051380019550329985 + }, + "e2e": { + "count": 1167, + "mean": 0.45452996390628697, + "p50": 0.45110413199290633, + "p90": 0.4555703255813569, + "p99": 0.4688122991356063 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.2166367470054, + "amplification": 1.0016028753010615, + "ttft": { + "count": 1167, + "mean": 0.1660798433322169, + "p50": 0.16653224604669958, + "p90": 0.17306958099361508, + "p99": 0.1832630861806683 + }, + "tpot": { + "count": 1167, + "mean": 0.005046875948133808, + "p50": 0.0050270736812510425, + "p90": 0.0050664691831029595, + "p99": 0.005532995437730161 + }, + "e2e": { + "count": 1167, + "mean": 0.48433690918382055, + "p50": 0.4845748710213229, + "p90": 0.4916891472181305, + "p99": 0.5235905526624989 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.2855537990108, + "amplification": 1.001832800991369, + "ttft": { + "count": 1167, + "mean": 0.17076528707394278, + "p50": 0.16959826194215566, + "p90": 0.17923957279417663, + "p99": 0.18792458378709853 + }, + "tpot": { + "count": 1167, + "mean": 0.005377765550956012, + "p50": 0.005177637602808693, + "p90": 0.006078562941697855, + "p99": 0.007001848420689976 + }, + "e2e": { + "count": 1167, + "mean": 0.5098518045703324, + "p50": 0.4961305959150195, + "p90": 0.5569328068522736, + "p99": 0.6314893902023319 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + }, + { + "ttft_slo_s": 5.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d1_i32768_goodput.json b/analysis/crossover/d1_i32768_goodput.json new file mode 100644 index 0000000..6d1de88 --- /dev/null +++ b/analysis/crossover/d1_i32768_goodput.json @@ -0,0 +1,142 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 1167, + "n_success": 951, + "completion_rate": 0.8149100257069408, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 567.1572082909988, + "amplification": 1.8921879104611408, + "ttft": { + "count": 951, + "mean": 156.08624654169503, + "p50": 159.80228465000982, + "p90": 263.44082942500245, + "p99": 267.3189407904938 + }, + "tpot": { + "count": 951, + "mean": 0.5120599246480225, + "p50": 0.5265210192539223, + "p90": 0.5403215261268621, + "p99": 0.5436686666190138 + }, + "e2e": { + "count": 951, + "mean": 188.3470215559188, + "p50": 192.9057134770119, + "p90": 294.68771972299146, + "p99": 300.2205298934932 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 1167, + "n_success": 596, + "completion_rate": 0.5107112253641817, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 789.8321366070013, + "amplification": 2.63509093833936, + "ttft": { + "count": 596, + "mean": 240.99040966441748, + "p50": 259.1066791820049, + "p90": 379.7789027979961, + "p99": 381.22047349565617 + }, + "tpot": { + "count": 596, + "mean": 0.006412497327210905, + "p50": 0.006444117785865692, + "p90": 0.0064974606745333095, + "p99": 0.006660929446938789 + }, + "e2e": { + "count": 596, + "mean": 241.39516468475196, + "p50": 259.5132920899996, + "p90": 380.1822811405, + "p99": 381.620277955458 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 1167, + "n_success": 712, + "completion_rate": 0.6101113967437874, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 880.7267912379903, + "amplification": 2.938339780290167, + "ttft": { + "count": 712, + "mean": 175.69983718378106, + "p50": 172.43730882649834, + "p90": 250.6456608123961, + "p99": 594.014642834873 + }, + "tpot": { + "count": 712, + "mean": 0.007946936024875445, + "p50": 0.007568808706382119, + "p90": 0.010293392149296345, + "p99": 0.011275891952114068 + }, + "e2e": { + "count": 712, + "mean": 176.20114515147316, + "p50": 172.91078094949626, + "p90": 251.09661155799986, + "p99": 594.4257701966026 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 0.0, + "pd_advantage": NaN, + "n_slo": 0 + }, + "4P+4D": { + "attainment": 0.0, + "pd_advantage": NaN, + "n_slo": 0 + }, + "6P+2D": { + "attainment": 0.0, + "pd_advantage": NaN, + "n_slo": 0 + } + } + }, + { + "ttft_slo_s": 5.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 0.0, + "pd_advantage": NaN, + "n_slo": 0 + }, + "4P+4D": { + "attainment": 0.0, + "pd_advantage": NaN, + "n_slo": 0 + }, + "6P+2D": { + "attainment": 0.0, + "pd_advantage": NaN, + "n_slo": 0 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d1_i4096_goodput.json b/analysis/crossover/d1_i4096_goodput.json new file mode 100644 index 0000000..cc68181 --- /dev/null +++ b/analysis/crossover/d1_i4096_goodput.json @@ -0,0 +1,142 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.32634208898526, + "amplification": 1.0019688816195438, + "ttft": { + "count": 1167, + "mean": 0.2628433253752162, + "p50": 0.2604120689211413, + "p90": 0.2637787788407877, + "p99": 0.2976114549371393 + }, + "tpot": { + "count": 1167, + "mean": 0.005143964614959416, + "p50": 0.005124552334318795, + "p90": 0.005180289564166395, + "p99": 0.0052467077378080115 + }, + "e2e": { + "count": 1167, + "mean": 0.5871811069348818, + "p50": 0.5839827890740708, + "p90": 0.5883447280153632, + "p99": 0.6408826243295329 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.3759389320621, + "amplification": 1.0021343499332585, + "ttft": { + "count": 1167, + "mean": 0.30861241175426407, + "p50": 0.3091614870354533, + "p90": 0.3227507559815422, + "p99": 0.3547600568598136 + }, + "tpot": { + "count": 1167, + "mean": 0.005148936446188915, + "p50": 0.0051316127147791645, + "p90": 0.005184003428393413, + "p99": 0.00547781713853871 + }, + "e2e": { + "count": 1167, + "mean": 0.6332931331915089, + "p50": 0.6365591660141945, + "p90": 0.6472898541716858, + "p99": 0.7053035433730102 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.4041277950164, + "amplification": 1.0022283955081221, + "ttft": { + "count": 1167, + "mean": 0.31527804771431056, + "p50": 0.31678270106203854, + "p90": 0.3284846659982577, + "p99": 0.3402980738645419 + }, + "tpot": { + "count": 1167, + "mean": 0.0055213440500518985, + "p50": 0.005325577683776381, + "p90": 0.006278165857056304, + "p99": 0.0070092806818761975 + }, + "e2e": { + "count": 1167, + "mean": 0.6634175265073216, + "p50": 0.6494167000055313, + "p90": 0.7135140666039661, + "p99": 0.7741130576422437 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + }, + { + "ttft_slo_s": 5.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d1_i8192_goodput.json b/analysis/crossover/d1_i8192_goodput.json new file mode 100644 index 0000000..da5ccd9 --- /dev/null +++ b/analysis/crossover/d1_i8192_goodput.json @@ -0,0 +1,142 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.66455180699995, + "amplification": 1.0030972395602922, + "ttft": { + "count": 1167, + "mean": 0.584800394000121, + "p50": 0.5817365200055065, + "p90": 0.5870239008043427, + "p99": 0.6088061455392736 + }, + "tpot": { + "count": 1167, + "mean": 0.005585180932058873, + "p50": 0.005308644777941813, + "p90": 0.005355837698406836, + "p99": 0.014590345752427337 + }, + "e2e": { + "count": 1167, + "mean": 0.9369382756572071, + "p50": 0.9158835929993074, + "p90": 0.9229304600012256, + "p99": 1.5052119748995754 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.7607197400066, + "amplification": 1.003418081467173, + "ttft": { + "count": 1167, + "mean": 0.7293765576349805, + "p50": 0.6887177099997643, + "p90": 0.8911576298065484, + "p99": 1.1879012519156076 + }, + "tpot": { + "count": 1167, + "mean": 0.005308951736224922, + "p50": 0.0053098901269203495, + "p90": 0.005347346425488857, + "p99": 0.005420954272433716 + }, + "e2e": { + "count": 1167, + "mean": 1.064155324243521, + "p50": 1.0238807429996086, + "p90": 1.22566919879755, + "p99": 1.521622942700049 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 1167, + "n_success": 1167, + "completion_rate": 1.0, + "offered_window_s": 299.736197, + "offered_qps": 3.8934236561358655, + "wall_clock_s": 300.8507765819959, + "amplification": 1.003718535142407, + "ttft": { + "count": 1167, + "mean": 0.7028102769056583, + "p50": 0.6950660040020011, + "p90": 0.7394948218076024, + "p99": 0.8658222487580485 + }, + "tpot": { + "count": 1167, + "mean": 0.005782890183689697, + "p50": 0.00558671395230617, + "p90": 0.006629064533303286, + "p99": 0.007366264003757681 + }, + "e2e": { + "count": 1167, + "mean": 1.0674261210719522, + "p50": 1.0612060459970962, + "p90": 1.1425091800017981, + "p99": 1.3045775910036173 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + }, + { + "ttft_slo_s": 5.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 1167 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d2_o1024_goodput.json b/analysis/crossover/d2_o1024_goodput.json new file mode 100644 index 0000000..040069b --- /dev/null +++ b/analysis/crossover/d2_o1024_goodput.json @@ -0,0 +1,121 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 3552, + "n_success": 1950, + "completion_rate": 0.5489864864864865, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 348.4953830049999, + "amplification": 1.1626534102882857, + "ttft": { + "count": 1950, + "mean": 0.8245253885559363, + "p50": 0.7988759850013594, + "p90": 1.5384256363991882, + "p99": 2.125257717882705 + }, + "tpot": { + "count": 1950, + "mean": 0.07444567704430907, + "p50": 0.08914986800879843, + "p90": 0.09127071481447005, + "p99": 0.09233926755616054 + }, + "e2e": { + "count": 1950, + "mean": 77.04034660455785, + "p50": 92.29079191399796, + "p90": 94.47993849659906, + "p99": 95.72745552870882 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 3552, + "n_success": 2754, + "completion_rate": 0.7753378378378378, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 744.3694221920014, + "amplification": 2.4833719166185753, + "ttft": { + "count": 2754, + "mean": 4.5006646864741695, + "p50": 2.329877773499902, + "p90": 10.863291689799375, + "p99": 21.572781211729307 + }, + "tpot": { + "count": 2754, + "mean": 0.046089308743682535, + "p50": 0.04704797274047173, + "p90": 0.04792202048768524, + "p99": 0.059544689888886115 + }, + "e2e": { + "count": 2754, + "mean": 51.68415100813728, + "p50": 50.91020956099965, + "p90": 59.22212425199977, + "p99": 68.42946432940865 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 3552, + "n_success": 1928, + "completion_rate": 0.5427927927927928, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 821.7403777359868, + "amplification": 2.7414975897474716, + "ttft": { + "count": 1928, + "mean": 39.07585104131927, + "p50": 42.6814165695032, + "p90": 63.28579387369681, + "p99": 73.84470144698193 + }, + "tpot": { + "count": 1928, + "mean": 0.04064862157373329, + "p50": 0.0398688508558163, + "p90": 0.04277554483881431, + "p99": 0.0695667276081441 + }, + "e2e": { + "count": 1928, + "mean": 80.66499786808757, + "p50": 84.05398454950046, + "p90": 105.42814423799427, + "p99": 113.52591980495636 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 0.10191441441441441, + "pd_advantage": 1.0, + "n_slo": 362 + }, + "4P+4D": { + "attainment": 0.3502252252252252, + "pd_advantage": 3.43646408839779, + "n_slo": 1244 + }, + "6P+2D": { + "attainment": 0.06447072072072071, + "pd_advantage": 0.6325966850828729, + "n_slo": 229 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d2_o128_goodput.json b/analysis/crossover/d2_o128_goodput.json new file mode 100644 index 0000000..cc0e8bf --- /dev/null +++ b/analysis/crossover/d2_o128_goodput.json @@ -0,0 +1,121 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 300.61600343801547, + "amplification": 1.0029177964157683, + "ttft": { + "count": 3552, + "mean": 0.139721406387908, + "p50": 0.13759525847854093, + "p90": 0.14188919204752892, + "p99": 0.17052793529117438 + }, + "tpot": { + "count": 3552, + "mean": 0.006496044329480822, + "p50": 0.006430442302898453, + "p90": 0.007889476366154117, + "p99": 0.009282101713493095 + }, + "e2e": { + "count": 3552, + "mean": 0.9651016481538636, + "p50": 0.9548319909954444, + "p90": 1.1440699087572284, + "p99": 1.3324073514551853 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 300.7410873459885, + "amplification": 1.0033351024670651, + "ttft": { + "count": 3552, + "mean": 0.18467717330343286, + "p50": 0.1806962049449794, + "p90": 0.1929074571467936, + "p99": 0.2592483600333798 + }, + "tpot": { + "count": 3552, + "mean": 0.006980159784640828, + "p50": 0.006945047342387123, + "p90": 0.008164690015837552, + "p99": 0.009163911323187739 + }, + "e2e": { + "count": 3552, + "mean": 1.0715517728354285, + "p50": 1.063076548918616, + "p90": 1.2275727374362762, + "p99": 1.4021264237130526 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 301.1243950970238, + "amplification": 1.004613897210595, + "ttft": { + "count": 3552, + "mean": 0.20078434001432569, + "p50": 0.19958186394069344, + "p90": 0.213167638995219, + "p99": 0.23225504373782313 + }, + "tpot": { + "count": 3552, + "mean": 0.010393430778126047, + "p50": 0.010396533917478015, + "p90": 0.012065167099743436, + "p99": 0.01323438493101344 + }, + "e2e": { + "count": 3552, + "mean": 1.5212831554822883, + "p50": 1.5218885459471494, + "p90": 1.7440477049094625, + "p99": 1.9191367691196497 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + }, + "4P+4D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d2_o2048_goodput.json b/analysis/crossover/d2_o2048_goodput.json new file mode 100644 index 0000000..abaa2dd --- /dev/null +++ b/analysis/crossover/d2_o2048_goodput.json @@ -0,0 +1,121 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 3552, + "n_success": 1050, + "completion_rate": 0.2956081081081081, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 414.92026689198974, + "amplification": 1.3842607013613617, + "ttft": { + "count": 1050, + "mean": 0.8393797435154972, + "p50": 0.8442945880015031, + "p90": 1.4299255040969001, + "p99": 2.1686189359705894 + }, + "tpot": { + "count": 1050, + "mean": 0.08418485046407832, + "p50": 0.08937374470713316, + "p90": 0.09085719287396188, + "p99": 0.09190563933350096 + }, + "e2e": { + "count": 1050, + "mean": 173.22149556513375, + "p50": 183.9983977669981, + "p90": 187.03014375649946, + "p99": 189.36978534828302 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 3552, + "n_success": 1320, + "completion_rate": 0.3716216216216216, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 802.1317602040072, + "amplification": 2.6760791447511205, + "ttft": { + "count": 1320, + "mean": 19.92388417242484, + "p50": 8.059029546493548, + "p90": 64.71132232169766, + "p99": 87.07121913193099 + }, + "tpot": { + "count": 1320, + "mean": 0.05007250707090057, + "p50": 0.0492711045202749, + "p90": 0.07142825628519621, + "p99": 0.08267229383702501 + }, + "e2e": { + "count": 1320, + "mean": 122.44309290737698, + "p50": 118.35192646600626, + "p90": 167.89536100080443, + "p99": 187.19021692074878 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 3552, + "n_success": 1041, + "completion_rate": 0.29307432432432434, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 879.8981197069952, + "amplification": 2.935523968100636, + "ttft": { + "count": 1041, + "mean": 86.06142147925078, + "p50": 92.45557322700915, + "p90": 153.47880471601093, + "p99": 159.16995789420034 + }, + "tpot": { + "count": 1041, + "mean": 0.04275836784091199, + "p50": 0.038143618996089604, + "p90": 0.06297858072350163, + "p99": 0.07100282797010407 + }, + "e2e": { + "count": 1041, + "mean": 173.5925440399473, + "p50": 199.81516771799943, + "p90": 230.71809448600106, + "p99": 234.9438766648003 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 0.009009009009009009, + "pd_advantage": 1.0, + "n_slo": 32 + }, + "4P+4D": { + "attainment": 0.11486486486486487, + "pd_advantage": 12.75, + "n_slo": 408 + }, + "6P+2D": { + "attainment": 0.04954954954954955, + "pd_advantage": 5.5, + "n_slo": 176 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d2_o256_goodput.json b/analysis/crossover/d2_o256_goodput.json new file mode 100644 index 0000000..cc9a3ce --- /dev/null +++ b/analysis/crossover/d2_o256_goodput.json @@ -0,0 +1,121 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 301.78380814404227, + "amplification": 1.0068138369093473, + "ttft": { + "count": 3552, + "mean": 0.14506312318632342, + "p50": 0.14291562204016373, + "p90": 0.1491016250802204, + "p99": 0.1832571337954128 + }, + "tpot": { + "count": 3552, + "mean": 0.0089611879488046, + "p50": 0.008925844482420122, + "p90": 0.010698060123752072, + "p99": 0.011754058378410762 + }, + "e2e": { + "count": 3552, + "mean": 2.430673889741114, + "p50": 2.419925262918696, + "p90": 2.874893436266575, + "p99": 3.1480205075151746 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 3552, + "n_success": 3551, + "completion_rate": 0.9997184684684685, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 744.8868488909211, + "amplification": 2.4850981601942745, + "ttft": { + "count": 3551, + "mean": 0.20500909556101396, + "p50": 0.20017725799698383, + "p90": 0.21613375598099083, + "p99": 0.29023518750909716 + }, + "tpot": { + "count": 3551, + "mean": 0.010307210080394247, + "p50": 0.010299421709450874, + "p90": 0.011793581666607482, + "p99": 0.012639003840969035 + }, + "e2e": { + "count": 3551, + "mean": 2.8339171693501317, + "p50": 2.8360355379991233, + "p90": 3.2198793930001557, + "p99": 3.438588996999897 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 303.4300506779691, + "amplification": 1.0123060459587976, + "ttft": { + "count": 3552, + "mean": 0.2333820717117756, + "p50": 0.23283391550648957, + "p90": 0.24394672318594532, + "p99": 0.2734717815916518 + }, + "tpot": { + "count": 3552, + "mean": 0.016453822599812207, + "p50": 0.016576926972415737, + "p90": 0.017214638463623238, + "p99": 0.01769411424845092 + }, + "e2e": { + "count": 3552, + "mean": 4.430368151474328, + "p50": 4.463736370031256, + "p90": 4.628522685484495, + "p99": 4.75812664218829 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + }, + "4P+4D": { + "attainment": 0.9997184684684685, + "pd_advantage": 0.9997184684684685, + "n_slo": 3551 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d2_o4096_goodput.json b/analysis/crossover/d2_o4096_goodput.json new file mode 100644 index 0000000..8d3e366 --- /dev/null +++ b/analysis/crossover/d2_o4096_goodput.json @@ -0,0 +1,121 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 3552, + "n_success": 545, + "completion_rate": 0.15343468468468469, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 505.4139580530027, + "amplification": 1.6861665622961597, + "ttft": { + "count": 545, + "mean": 4.137136383750316, + "p50": 0.5702517530007754, + "p90": 1.6976309113961179, + "p99": 56.1814190310361 + }, + "tpot": { + "count": 545, + "mean": 0.08390926873267023, + "p50": 0.08933810225128375, + "p90": 0.09449654152820693, + "p99": 0.10591519025133134 + }, + "e2e": { + "count": 545, + "mean": 347.7765141811284, + "p50": 366.3568219640001, + "p90": 388.1241692415934, + "p99": 435.2848098113155 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 3552, + "n_success": 771, + "completion_rate": 0.2170608108108108, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 850.1328976760124, + "amplification": 2.8362209684341706, + "ttft": { + "count": 771, + "mean": 63.210636654403324, + "p50": 1.1097561890055658, + "p90": 179.64081536799495, + "p99": 186.67013871119852 + }, + "tpot": { + "count": 771, + "mean": 0.05484690890217986, + "p50": 0.04795774376874187, + "p90": 0.08067800507863548, + "p99": 0.09099416300415113 + }, + "e2e": { + "count": 771, + "mean": 287.81779562259663, + "p50": 312.2160719559906, + "p90": 372.0004520520015, + "p99": 379.3279856524052 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 3552, + "n_success": 627, + "completion_rate": 0.17652027027027026, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 867.8833550199925, + "amplification": 2.8954402028102515, + "ttft": { + "count": 627, + "mean": 179.58769048342904, + "p50": 238.1998468660022, + "p90": 378.29023678940143, + "p99": 385.40577973942356 + }, + "tpot": { + "count": 627, + "mean": 0.04188420961205498, + "p50": 0.03654626756630041, + "p90": 0.06031132874202571, + "p99": 0.06738955674930582 + }, + "e2e": { + "count": 627, + "mean": 351.1066520824709, + "p50": 387.2650127700035, + "p90": 507.9008203571953, + "p99": 570.6463984230224 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 0.0, + "pd_advantage": NaN, + "n_slo": 0 + }, + "4P+4D": { + "attainment": 0.05855855855855856, + "pd_advantage": NaN, + "n_slo": 208 + }, + "6P+2D": { + "attainment": 0.036036036036036036, + "pd_advantage": NaN, + "n_slo": 128 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d2_o512_goodput.json b/analysis/crossover/d2_o512_goodput.json new file mode 100644 index 0000000..f7cc822 --- /dev/null +++ b/analysis/crossover/d2_o512_goodput.json @@ -0,0 +1,121 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 304.97662343096454, + "amplification": 1.0174657357946404, + "ttft": { + "count": 3552, + "mean": 0.16242270423816507, + "p50": 0.15836620499612764, + "p90": 0.17363918052287775, + "p99": 0.24847999344696287 + }, + "tpot": { + "count": 3552, + "mean": 0.013691483182659388, + "p50": 0.013865661168213087, + "p90": 0.015242900696529327, + "p99": 0.01626683903372128 + }, + "e2e": { + "count": 3552, + "mean": 7.160272567887971, + "p50": 7.247483663493767, + "p90": 7.962273431208451, + "p99": 8.480892732607899 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 3552, + "n_success": 3551, + "completion_rate": 0.9997184684684685, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 744.9637431279989, + "amplification": 2.4853546954349977, + "ttft": { + "count": 3551, + "mean": 0.2446379999283825, + "p50": 0.24067969399038702, + "p90": 0.2630795220611617, + "p99": 0.3426029055262916 + }, + "tpot": { + "count": 3551, + "mean": 0.016916919575073883, + "p50": 0.016998299133030737, + "p90": 0.01775875886689886, + "p99": 0.018166751548973206 + }, + "e2e": { + "count": 3551, + "mean": 8.89104466149889, + "p50": 8.933106195996515, + "p90": 9.333998591057025, + "p99": 9.536390463996213 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 3552, + "n_success": 3551, + "completion_rate": 0.9997184684684685, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 312.45468625507783, + "amplification": 1.0424141157985172, + "ttft": { + "count": 3551, + "mean": 0.36231219612768273, + "p50": 0.3462264990666881, + "p90": 0.4059687410481274, + "p99": 0.9837204645154998 + }, + "tpot": { + "count": 3551, + "mean": 0.03268022218101953, + "p50": 0.03333031399418835, + "p90": 0.03557429400772957, + "p99": 0.038558618127279086 + }, + "e2e": { + "count": 3551, + "mean": 17.068018403084057, + "p50": 17.392655145958997, + "p90": 18.56302695896011, + "p99": 20.159411454980727 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + }, + "4P+4D": { + "attainment": 0.9997184684684685, + "pd_advantage": 0.9997184684684685, + "n_slo": 3551 + }, + "6P+2D": { + "attainment": 0.9997184684684685, + "pd_advantage": 0.9997184684684685, + "n_slo": 3551 + } + } + } + ] +} \ No newline at end of file diff --git a/analysis/crossover/d2_o64_goodput.json b/analysis/crossover/d2_o64_goodput.json new file mode 100644 index 0000000..b2b6558 --- /dev/null +++ b/analysis/crossover/d2_o64_goodput.json @@ -0,0 +1,121 @@ +{ + "baseline": "8C-proxy", + "arms": { + "8C-proxy": { + "name": "8C-proxy", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 300.21845804993063, + "amplification": 1.001591501940313, + "ttft": { + "count": 3552, + "mean": 0.1369056966029782, + "p50": 0.13516780693316832, + "p90": 0.13835511771030723, + "p99": 0.15317223175661632 + }, + "tpot": { + "count": 3552, + "mean": 0.005430781936309906, + "p50": 0.005039893150780468, + "p90": 0.007063257358303028, + "p99": 0.0077793481296283135 + }, + "e2e": { + "count": 3552, + "mean": 0.4793568905444592, + "p50": 0.45412574551301077, + "p90": 0.5810393166844734, + "p99": 0.6301419002050533 + } + }, + "4P+4D": { + "name": "4P+4D", + "n_offered": 3552, + "n_success": 3551, + "completion_rate": 0.9997184684684685, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 735.1059510430787, + "amplification": 2.452467041410379, + "ttft": { + "count": 3551, + "mean": 0.17374673821534295, + "p50": 0.17102365801110864, + "p90": 0.18273873499128968, + "p99": 0.24688138795318082 + }, + "tpot": { + "count": 3551, + "mean": 0.005485491774206834, + "p50": 0.0053864502226046865, + "p90": 0.006091995366168992, + "p99": 0.007109403222178419 + }, + "e2e": { + "count": 3551, + "mean": 0.5196563635758822, + "p50": 0.5100997349945828, + "p90": 0.5655082209268585, + "p99": 0.6639982180204242 + } + }, + "6P+2D": { + "name": "6P+2D", + "n_offered": 3552, + "n_success": 3552, + "completion_rate": 1.0, + "offered_window_s": 299.74141899999995, + "offered_qps": 11.850214134070008, + "wall_clock_s": 300.38101644301787, + "amplification": 1.0021338307036503, + "ttft": { + "count": 3552, + "mean": 0.18293367427152893, + "p50": 0.1822461549891159, + "p90": 0.1938482352765277, + "p99": 0.21272844232735222 + }, + "tpot": { + "count": 3552, + "mean": 0.007192309629699456, + "p50": 0.007143509595484902, + "p90": 0.008732455453672816, + "p99": 0.009842920153335268 + }, + "e2e": { + "count": 3552, + "mean": 0.636424056327808, + "p50": 0.6324848984950222, + "p90": 0.7393875011475757, + "p99": 0.8261980937235056 + } + } + }, + "slo_grid": [ + { + "ttft_slo_s": 2.0, + "tpot_slo_s": 0.05, + "arms": { + "8C-proxy": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + }, + "4P+4D": { + "attainment": 0.9997184684684685, + "pd_advantage": 0.9997184684684685, + "n_slo": 3551 + }, + "6P+2D": { + "attainment": 1.0, + "pd_advantage": 1.0, + "n_slo": 3552 + } + } + } + ] +} \ No newline at end of file diff --git a/figs/crossover_pd_advantage.png b/figs/crossover_pd_advantage.png new file mode 100644 index 0000000..4ea06d5 Binary files /dev/null and b/figs/crossover_pd_advantage.png differ diff --git a/microbench/fresh_setup/gen_synthetic_trace.py b/microbench/fresh_setup/gen_synthetic_trace.py index ae8930e..e1b4d4b 100644 --- a/microbench/fresh_setup/gen_synthetic_trace.py +++ b/microbench/fresh_setup/gen_synthetic_trace.py @@ -161,11 +161,65 @@ def gen_multiturn( return rows +def gen_regular( + *, + session_qps: float, + duration_s: float, + turns: int, + prefix_len: int, + delta_len: int, + output_len: int, + inter_turn_gap_s: float, + seed: int, +) -> list[dict]: + """Maximally-regular multi-turn trace: every session identical, no skew. + + Each session has a FIXED reused prefix of `prefix_len` tokens (its own, + established on turn 1) and every turn appends a FIXED `delta_len` of fresh + tokens. So per turn: input = prefix_len + delta_len (fixed), reuse ratio = + prefix_len/(prefix_len+delta_len) (fixed), actual new-prefill = delta_len + (fixed). Constant-interval session arrivals, fixed inter-turn gap, fixed + turn count -> zero session-size skew, so session-affinity cannot hot-pin. + This isolates the *structural* PD cost (per-turn full-context KV transfer + + P/D capacity split) from the skew/hot-pin artifact. + """ + rows: list[dict] = [] + next_hash = HASH_BASE + chat_id = 1 + n_prefix = max(1, prefix_len // BLOCK_SIZE) + n_delta = max(1, delta_len // BLOCK_SIZE) + n_sessions = max(1, int(duration_s * session_qps)) + for s in range(n_sessions): + start = s / session_qps + sid = f"r{s}" + prefix_blocks = list(range(next_hash, next_hash + n_prefix)) + next_hash += n_prefix + prev = -1 + for k in range(1, turns + 1): + delta_blocks = list(range(next_hash, next_hash + n_delta)) + next_hash += n_delta + rows.append({ + "chat_id": chat_id, + "parent_chat_id": prev, + "timestamp": round(start + (k - 1) * inter_turn_gap_s, 6), + "input_length": prefix_len + delta_len, + "output_length": output_len, + "type": "synthetic_regular", + "turn": k, + "hash_ids": prefix_blocks + delta_blocks, + "session_id": sid, + }) + prev = chat_id + chat_id += 1 + rows.sort(key=lambda r: r["timestamp"]) + return rows + + def main() -> None: p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) p.add_argument("--out", type=Path, required=True, help="output trace JSONL") - p.add_argument("--mode", choices=["vanilla", "multiturn"], default="vanilla") + p.add_argument("--mode", choices=["vanilla", "multiturn", "regular"], default="vanilla") p.add_argument("--qps", type=float, help="vanilla: mean Poisson request rate; " "multiturn: mean Poisson SESSION rate") p.add_argument("--duration-s", type=float, default=600.0, help="trace span (s)") @@ -182,7 +236,14 @@ def main() -> None: p.add_argument("--new-user-tokens", type=int, default=256, help="multiturn: fresh user tokens added each subsequent turn") p.add_argument("--inter-turn-gap-s", type=float, default=1.6, - help="multiturn: mean think-time between turns") + help="multiturn: mean think-time; regular: FIXED think-time") + # regular knobs + p.add_argument("--prefix-len", type=int, default=16384, + help="regular: per-session fixed reused prefix length") + p.add_argument("--delta-len", type=int, default=512, + help="regular: fixed fresh new-prefill tokens per turn") + p.add_argument("--turns", type=int, default=8, + help="regular: fixed turns per session") args = p.parse_args() if args.mode == "vanilla": @@ -194,6 +255,20 @@ def main() -> None: cfg = {"mode": "vanilla", "qps": args.qps, "duration_s": args.duration_s, "input_len": args.input_len, "output_len": args.output_len, "seed": args.seed, "reuse": "none"} + elif args.mode == "regular": + assert args.qps, "regular needs --qps (session rate)" + rows = gen_regular( + session_qps=args.qps, duration_s=args.duration_s, turns=args.turns, + prefix_len=args.prefix_len, delta_len=args.delta_len, + output_len=args.output_len, inter_turn_gap_s=args.inter_turn_gap_s, + seed=args.seed, + ) + cfg = {"mode": "regular", "session_qps": args.qps, + "duration_s": args.duration_s, "turns": args.turns, + "prefix_len": args.prefix_len, "delta_len": args.delta_len, + "output_len": args.output_len, "inter_turn_gap_s": args.inter_turn_gap_s, + "reuse_ratio": args.prefix_len / (args.prefix_len + args.delta_len), + "seed": args.seed, "reuse": "fixed-intra-session"} else: assert args.qps, "multiturn needs --qps (session rate)" rows = gen_multiturn(