Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions ds4.c
Original file line number Diff line number Diff line change
Expand Up @@ -11575,8 +11575,7 @@ static uint32_t metal_graph_stream_prefill_batch_selected_addr_auto_max(void) {
if (DS4_MODEL_VARIANT == DS4_VARIANT_PRO ||
DS4_MODEL_VARIANT == DS4_VARIANT_FLASH) return UINT32_MAX;
#endif
if (DS4_MODEL_VARIANT == DS4_VARIANT_PRO) return 800u;
if (DS4_MODEL_VARIANT == DS4_VARIANT_FLASH) return 760u;
/* Keep Metal selected-address batch prefill opt-in until it is vector-clean. */
return 0;
}

Expand Down
4 changes: 2 additions & 2 deletions ds4_metal.m
Original file line number Diff line number Diff line change
Expand Up @@ -8831,8 +8831,8 @@ static uint32_t ds4_gpu_stream_prefill_batch_selected_addr_auto_max(
return (uint32_t)v;
}
}
if (n_total_expert == 384) return 800u;
if (n_total_expert == 256) return 760u;
(void)n_total_expert;
/* Keep Metal selected-address batch prefill opt-in until it is vector-clean. */
return 0;
}

Expand Down
26 changes: 20 additions & 6 deletions tests/ds4_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,19 +60,15 @@ static void test_restore_env(const char *name, char *saved) {

typedef struct {
char *cold_decode;
char *batch_selected_addr;
} test_streaming_prefill_env;

static test_streaming_prefill_env test_force_canonical_streaming_prefill(void) {
test_streaming_prefill_env saved = {
.cold_decode =
test_save_env("DS4_METAL_DISABLE_STREAMING_COLD_DECODE_PREFILL"),
.batch_selected_addr =
test_save_env("DS4_METAL_DISABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR"),
};
if (test_env_bool("DS4_TEST_SSD_STREAMING")) {
setenv("DS4_METAL_DISABLE_STREAMING_COLD_DECODE_PREFILL", "1", 1);
setenv("DS4_METAL_DISABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR", "1", 1);
}
return saved;
}
Expand All @@ -81,8 +77,6 @@ static void test_restore_canonical_streaming_prefill(
test_streaming_prefill_env saved) {
test_restore_env("DS4_METAL_DISABLE_STREAMING_COLD_DECODE_PREFILL",
saved.cold_decode);
test_restore_env("DS4_METAL_DISABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR",
saved.batch_selected_addr);
}

static ds4_engine *test_open_engine(bool quality) {
Expand Down Expand Up @@ -996,20 +990,40 @@ static void test_metal_ssd_streaming_cache_pressure(void) {
test_save_env("DS4_METAL_DISABLE_STREAMING_STATIC_DECODE_MAP");
char *saved_one_stage =
test_save_env("DS4_METAL_MOE_ONE_STAGE_PROFILE");
char *saved_disable_selected_addr =
test_save_env("DS4_METAL_DISABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR");
char *saved_enable_selected_addr =
test_save_env("DS4_METAL_ENABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR");
char *saved_selected_addr_max =
test_save_env("DS4_METAL_STREAMING_PREFILL_BATCH_SELECTED_ADDR_MAX");
char *saved_selected_addr_min =
test_save_env("DS4_METAL_STREAMING_PREFILL_BATCH_SELECTED_ADDR_MIN");

setenv("DS4_TEST_SSD_STREAMING", "1", 1);
setenv("DS4_TEST_SSD_STREAMING_CACHE_GB", "16", 1);
unsetenv("DS4_TEST_SSD_STREAMING_CACHE_EXPERTS");
unsetenv("DS4_METAL_DISABLE_STREAMING_LAYER_BATCH");
unsetenv("DS4_METAL_DISABLE_STREAMING_STATIC_DECODE_MAP");
unsetenv("DS4_METAL_MOE_ONE_STAGE_PROFILE");
unsetenv("DS4_METAL_DISABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR");
unsetenv("DS4_METAL_ENABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR");
unsetenv("DS4_METAL_STREAMING_PREFILL_BATCH_SELECTED_ADDR_MAX");
unsetenv("DS4_METAL_STREAMING_PREFILL_BATCH_SELECTED_ADDR_MIN");

fprintf(stderr,
"ds4-test: Metal SSD streaming cache-pressure repro "
"(16GiB cache, layer-batched decode, short_code_completion)\n");
test_official_logprob_vectors_run("short_code_completion");

test_restore_env("DS4_METAL_MOE_ONE_STAGE_PROFILE", saved_one_stage);
test_restore_env("DS4_METAL_STREAMING_PREFILL_BATCH_SELECTED_ADDR_MIN",
saved_selected_addr_min);
test_restore_env("DS4_METAL_STREAMING_PREFILL_BATCH_SELECTED_ADDR_MAX",
saved_selected_addr_max);
test_restore_env("DS4_METAL_ENABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR",
saved_enable_selected_addr);
test_restore_env("DS4_METAL_DISABLE_STREAMING_PREFILL_BATCH_SELECTED_ADDR",
saved_disable_selected_addr);
test_restore_env("DS4_METAL_DISABLE_STREAMING_STATIC_DECODE_MAP",
saved_disable_static_decode);
test_restore_env("DS4_METAL_DISABLE_STREAMING_LAYER_BATCH",
Expand Down