|
513 | 513 | - 'io_mean=200' |
514 | 514 | - 'workload=dlrm' |
515 | 515 | - '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' |
517 | 522 | - 'dlrm_threads=1' |
518 | 523 | - 'dlrm_inferences=1' |
519 | 524 | - 'client_side_features=0' |
|
522 | 527 | - 'client_feature_seed=42' |
523 | 528 | - 'client_num_dense=13' |
524 | 529 | - 'client_num_sparse=26' |
525 | | - - 'feature_complexity=5' |
| 530 | + - 'feature_complexity=8' |
526 | 531 | - 'num_stories=400' |
527 | | - - 'extractors_per_story=280' |
| 532 | + - 'extractors_per_story=240' |
528 | 533 | - 'story_processors_per_story=2' |
529 | | - - 'stories_per_processor_pass=100' |
| 534 | + - 'stories_per_processor_pass=150' |
530 | 535 | - 'silesia_dir=silesia' |
531 | 536 | - 'stories_per_request=10' |
532 | 537 | - 'mock_tls=1' |
533 | | - - 'mock_zstd_frac=0.75' |
| 538 | + - 'mock_zstd_frac=0.9' |
534 | 539 | - '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' |
537 | 542 | - 'sla_p95_ms=700' |
538 | 543 | # Driver pipeline depth (max outstanding requests per driver connection). |
539 | 544 | # Default 1. Raise (e.g. 2) if the final phase saturates neither CPU nor SLA |
|
607 | 612 | - 'io_mean=200' |
608 | 613 | - 'workload=dlrm' |
609 | 614 | - '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' |
615 | 621 | - 'dlrm_threads=1' |
616 | 622 | - 'dlrm_inferences=1' |
617 | 623 | - 'client_side_features=0' |
|
620 | 626 | - 'client_feature_seed=42' |
621 | 627 | - 'client_num_dense=13' |
622 | 628 | - '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. |
627 | 633 | - '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). |
633 | 637 | - 'story_processors_per_story=2' |
634 | | - - 'stories_per_processor_pass=100' |
| 638 | + - 'stories_per_processor_pass=150' |
635 | 639 | - 'silesia_dir=silesia' |
636 | 640 | - '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. |
640 | 645 | - 'mock_tls=1' |
641 | | - - 'mock_zstd_frac=0.75' |
| 646 | + - 'mock_zstd_frac=0.9' |
642 | 647 | - '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' |
645 | 650 | - 'sla_p95_ms=700' |
646 | 651 | # Driver pipeline depth (max outstanding requests per driver connection). |
647 | 652 | # Default 1. Raise (e.g. 2) if the final phase saturates neither CPU nor SLA |
|
0 commit comments