From 35ef79c5f8065e903e69a4eb278397b06cb59bf1 Mon Sep 17 00:00:00 2001 From: dylanyunlon Date: Fri, 31 Jul 2026 18:35:01 +0800 Subject: [PATCH] =?UTF-8?q?[muh]=20scan:=20add=20bi100=5Flookback=5F1B=5Fo?= =?UTF-8?q?8=20=E2=80=94=20close=20SM100=20parity=20gap=20(7/7=20lookback?= =?UTF-8?q?=20branches)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CCCL SM100 scan lookback has 7 type-specialized branches: offset_size=4: 1B, 2B, 4B, 8B offset_size=8: 1B, 4B, 8B muh BI-V100 previously had 6 (missing o8_1B). This commit adds the o8_1B branch derived from SM100 ref: ipt_14.tpb_384.ns_228.dcid_7.l2w_775 → 1.107x BI-V100 delay: halved ns (L2 6MB vs 50MB): backon(114, 465) nominal_tile = 384*14*4 = 21504 ≤ 49152 ✓ Now: 7/7 lookback + 6/6 lookahead = 13/13 SM100 parity. --- muh/include/muh/tuning/tuning_scan.cuh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/muh/include/muh/tuning/tuning_scan.cuh b/muh/include/muh/tuning/tuning_scan.cuh index 41732aac..fb5a5a4f 100644 --- a/muh/include/muh/tuning/tuning_scan.cuh +++ b/muh/include/muh/tuning/tuning_scan.cuh @@ -138,6 +138,20 @@ struct bi100_lookback_8B_o8 { static constexpr CacheLoadModifier load_mod = LOAD_DEFAULT; }; +struct bi100_lookback_1B_o8 { + // CCCL SM100 ref: ipt_14.tpb_384.ns_228.dcid_7.l2w_775 → 1.107x + // BI-V100 derived: delay halved (L2 6MB vs 50MB), LOAD_CA matches SM100 + // nominal_tile = 384*14*4 = 21504 ≤ 49152 ✓ + static constexpr int threads = 384; + static constexpr int items = 14; + static constexpr LookbackDelayPolicy delay = { + LookbackDelayAlgorithm::exponential_backon, 114, 465}; + static constexpr BlockLoadAlgorithm load_algo = BLOCK_LOAD_WARP_TRANSPOSE; + static constexpr BlockStoreAlgorithm store_algo = BLOCK_STORE_WARP_TRANSPOSE; + static constexpr CacheLoadModifier load_mod = LOAD_CA; +}; + + // --- Lookahead tunings for BI-V100 --- struct bi100_lookahead_1B { @@ -233,6 +247,10 @@ struct policy_selector { } } else if (offset_size == 8) { switch (input_value_size) { + case 1: return {bi100_lookback_1B_o8::threads, bi100_lookback_1B_o8::items, + bi100_lookback_1B_o8::load_algo, bi100_lookback_1B_o8::load_mod, + bi100_lookback_1B_o8::store_algo, BLOCK_SCAN_WARP_SCANS, + bi100_lookback_1B_o8::delay}; case 4: return {bi100_lookback_4B_o8::threads, bi100_lookback_4B_o8::items, bi100_lookback_4B_o8::load_algo, bi100_lookback_4B_o8::load_mod, bi100_lookback_4B_o8::store_algo, BLOCK_SCAN_WARP_SCANS,