Skip to content

Commit 3c9d70e

Browse files
excelle08meta-codesync[bot]
authored andcommitted
Bake RMSE-winning recipe into feedsim_dlrm + feedsim_autoscale_dlrm
Differential Revision: D115652574
1 parent 51fee75 commit 3c9d70e

1 file changed

Lines changed: 33 additions & 28 deletions

File tree

benchpress/config/jobs.yml

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,12 @@
513513
- 'io_mean=200'
514514
- 'workload=dlrm'
515515
- 'dlrm_model=models/dlrm_small.pt'
516-
- 'dlrm_batch_size=64'
516+
# RMSE-winning recipe (2026-08, supersedes t43 c7): minimizes all-metrics
517+
# RMSE vs prod multifeed_aggregator (uArch + instruction mix + hot-function)
518+
# on BGM & Grace, and preserves gen-over-gen ranking across all 6 LSSTs.
519+
# Pairs with the integer-domain feature-extractor helpers + memory-streaming
520+
# stride-sweep (N=16, code default) earlier in this stack.
521+
- 'dlrm_batch_size=32'
517522
- 'dlrm_threads=1'
518523
- 'dlrm_inferences=1'
519524
- 'client_side_features=0'
@@ -522,18 +527,18 @@
522527
- 'client_feature_seed=42'
523528
- 'client_num_dense=13'
524529
- 'client_num_sparse=26'
525-
- 'feature_complexity=5'
530+
- 'feature_complexity=8'
526531
- 'num_stories=400'
527-
- 'extractors_per_story=280'
532+
- 'extractors_per_story=240'
528533
- 'story_processors_per_story=2'
529-
- 'stories_per_processor_pass=100'
534+
- 'stories_per_processor_pass=150'
530535
- 'silesia_dir=silesia'
531536
- 'stories_per_request=10'
532537
- 'mock_tls=1'
533-
- 'mock_zstd_frac=0.75'
538+
- 'mock_zstd_frac=0.9'
534539
- 'mock_keepalive_interval_ms=200'
535-
- 'rpc_fanout_scale=0.05'
536-
- 'server_zstd=0'
540+
- 'rpc_fanout_scale=0.10'
541+
- 'server_zstd=1'
537542
- 'sla_p95_ms=700'
538543
# Driver pipeline depth (max outstanding requests per driver connection).
539544
# Default 1. Raise (e.g. 2) if the final phase saturates neither CPU nor SLA
@@ -607,11 +612,12 @@
607612
- 'io_mean=200'
608613
- 'workload=dlrm'
609614
- 'dlrm_model=models/dlrm_small.pt'
610-
# t43 c7: bs=64 is the balanced choice across both gen-over-gen
611-
# correlation (BGM/CPL = 4.25× → 2nd best of 12 cells) and prod
612-
# hot-function gap (CPL 4th, BGM 5th). bs=32 wins peak QPS alone but
613-
# breaks correlation (BGM stretches to 4.75× CPL).
614-
- 'dlrm_batch_size=64'
615+
# RMSE-winning recipe (2026-08, supersedes t43 c7): minimizes all-metrics
616+
# RMSE vs prod (uArch + instruction mix + hot-function) on BGM & Grace.
617+
# bs=32 (with the integer-domain extractor helpers + stride-sweep earlier in
618+
# this stack) raises SIMD toward prod and, at eps=240, preserves gen-over-gen
619+
# ranking across all 6 LSSTs (validated 2026-08-11).
620+
- 'dlrm_batch_size=32'
615621
- 'dlrm_threads=1'
616622
- 'dlrm_inferences=1'
617623
- 'client_side_features=0'
@@ -620,28 +626,27 @@
620626
- 'client_feature_seed=42'
621627
- 'client_num_dense=13'
622628
- 'client_num_sparse=26'
623-
- 'feature_complexity=5'
624-
# 400 x 280 = 112K extractor calls/req. Combined with the scaled-up
625-
# story-processor pipeline (below) this matches prod's FE:story CPU
626-
# ratio of ~1.3:1 (multifeed: FE 29%, story 22% on BGM Strobelight).
629+
- 'feature_complexity=8'
630+
# 400 x 240 = 96K extractor calls/req. eps=240 lands Ranking-FeatureExtraction
631+
# near prod on BGM (~22% vs 22.8%); the integer-domain helpers made each call
632+
# cheaper, so eps rose from 280 to hold the FE share after batch32/zstd/rpc grew.
627633
- 'num_stories=400'
628-
- 'extractors_per_story=280'
629-
# Story-processor pipeline scaled 8x from t32 first attempt (was
630-
# 1 pass/story * 25 stories/pass = 25 cmpns/story → 1.1% Ranking-Story
631-
# on BGM, vs prod 9.3%). Bumped to 2 passes * 100 stories = 200
632-
# comparisons/story, target ~9% Ranking-Story share.
634+
- 'extractors_per_story=240'
635+
# Story-processor pipeline: 2 passes * 150 stories = 300 comparisons/story,
636+
# target ~9-10% Ranking-Story share (≈ prod 9.3% on BGM).
633637
- 'story_processors_per_story=2'
634-
- 'stories_per_processor_pass=100'
638+
- 'stories_per_processor_pass=150'
635639
- 'silesia_dir=silesia'
636640
- 'stories_per_request=10'
637-
# t43 c7: TLS+keepalive on mock_services, 75% of channels compress,
638-
# rpc_fanout_scale=0.05 (~188 RPCs/session). Server-side ZSTD off
639-
# (mock-side ZSTD provides the prod-realistic Compression share).
641+
# TLS+keepalive on mock_services; mock_zstd_frac=0.9 + server_zstd=1 land
642+
# Compression ≈ prod (BGM ~10% vs 10.7%); rpc_fanout_scale=0.10 lands
643+
# RPC-AsyncIO ≈ prod (~15%). DRIVER_TLS stays off (default): it overshoots
644+
# Encryption without moving throughput.
640645
- 'mock_tls=1'
641-
- 'mock_zstd_frac=0.75'
646+
- 'mock_zstd_frac=0.9'
642647
- 'mock_keepalive_interval_ms=200'
643-
- 'rpc_fanout_scale=0.05'
644-
- 'server_zstd=0'
648+
- 'rpc_fanout_scale=0.10'
649+
- 'server_zstd=1'
645650
- 'sla_p95_ms=700'
646651
# Driver pipeline depth (max outstanding requests per driver connection).
647652
# Default 1. Raise (e.g. 2) if the final phase saturates neither CPU nor SLA

0 commit comments

Comments
 (0)