Skip to content

Commit 17cf93d

Browse files
committed
cont : add env GGML_METAL_GRAPH_OPTIMIZE_DISABLE
ggml-ci
1 parent 417df40 commit 17cf93d

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

ggml/src/ggml-metal/ggml-metal.m

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
bool use_fusion;
6565
bool use_concurrency;
6666
bool use_shared_buffers;
67+
bool use_graph_optimize;
6768

6869
int debug_graph;
6970
int debug_fusion;
@@ -88,6 +89,7 @@
8889
/*.use_fusion =*/ true,
8990
/*.use_concurrency =*/ true,
9091
/*.use_shared_buffers =*/ true,
92+
/*.use_graph_optimize =*/ true,
9193
/*.debug_graph =*/ 0,
9294
/*.debug_fusion =*/ 0,
9395
/*.fuse_cnt =*/ { 0 },
@@ -149,6 +151,12 @@
149151
ctx->use_shared_buffers = false;
150152
}
151153

154+
ctx->use_graph_optimize = true;
155+
156+
if (getenv("GGML_METAL_GRAPH_OPTIMIZE_DISABLE") != NULL) {
157+
ctx->use_graph_optimize = false;
158+
}
159+
152160
memset(ctx->fuse_cnt, 0, sizeof(ctx->fuse_cnt));
153161

154162
ctx->max_size = ctx->mtl_device.maxBufferLength;
@@ -1105,6 +1113,7 @@ @implementation GGMLMetalClass
11051113
GGML_LOG_INFO("%s: use fusion = %s\n", __func__, ctx_dev->use_fusion ? "true" : "false");
11061114
GGML_LOG_INFO("%s: use concurrency = %s\n", __func__, ctx_dev->use_concurrency ? "true" : "false");
11071115
GGML_LOG_INFO("%s: use shared buffers = %s\n", __func__, ctx_dev->use_shared_buffers ? "true" : "false");
1116+
GGML_LOG_INFO("%s: use graph optimize = %s\n", __func__, ctx_dev->use_graph_optimize ? "true" : "false");
11081117
GGML_LOG_INFO("%s: hasUnifiedMemory = %s\n", __func__, ctx_dev->mtl_device.hasUnifiedMemory ? "true" : "false");
11091118

11101119
ctx->capture_next_compute = false;
@@ -6726,11 +6735,13 @@ static enum ggml_status ggml_backend_metal_graph_compute(ggml_backend_t backend,
67266735
}
67276736

67286737
static void ggml_backend_metal_graph_optimize(ggml_backend_t backend, struct ggml_cgraph * cgraph) {
6729-
GGML_UNUSED(backend);
6738+
struct ggml_backend_metal_device_context * ctx_dev = backend->device->context;
67306739

67316740
//const int64_t t_start = ggml_time_us();
67326741

6733-
ggml_metal_graph_optimize(cgraph);
6742+
if (ctx_dev->use_graph_optimize) {
6743+
ggml_metal_graph_optimize(cgraph);
6744+
}
67346745

67356746
//printf("%s: initial graph optimize took %.3f ms\n", __func__, (ggml_time_us() - t_start) / 1000.0);
67366747
}

0 commit comments

Comments
 (0)