Skip to content

Commit cfadb70

Browse files
committed
metal : apply ggml_mem_ranges_t
ggml-ci
1 parent 508d065 commit cfadb70

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

ggml/src/ggml-metal/ggml-metal-common.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ struct ggml_mem_ranges {
2222
int debug = 0;
2323
};
2424

25-
struct ggml_mem_ranges * ggml_mem_ranges_init(int debug) {
25+
ggml_mem_ranges_t ggml_mem_ranges_init(int debug) {
2626
auto * res = new ggml_mem_ranges;
2727

2828
res->ranges.reserve(256);
@@ -31,15 +31,15 @@ struct ggml_mem_ranges * ggml_mem_ranges_init(int debug) {
3131
return res;
3232
}
3333

34-
void ggml_mem_ranges_free(ggml_mem_ranges * mrs) {
34+
void ggml_mem_ranges_free(ggml_mem_ranges_t mrs) {
3535
delete mrs;
3636
}
3737

38-
void ggml_mem_ranges_reset(ggml_mem_ranges * mrs) {
38+
void ggml_mem_ranges_reset(ggml_mem_ranges_t mrs) {
3939
mrs->ranges.clear();
4040
}
4141

42-
static bool ggml_mem_ranges_add(ggml_mem_ranges * mrs, ggml_mem_range mr) {
42+
static bool ggml_mem_ranges_add(ggml_mem_ranges_t mrs, ggml_mem_range mr) {
4343
mrs->ranges.push_back(mr);
4444

4545
return true;
@@ -87,7 +87,7 @@ static ggml_mem_range ggml_mem_range_from_tensor_dst(const ggml_tensor * tensor)
8787
return ggml_mem_range_from_tensor(tensor, MEM_RANGE_TYPE_DST);
8888
}
8989

90-
static bool ggml_mem_ranges_add_src(ggml_mem_ranges * mrs, const ggml_tensor * tensor) {
90+
static bool ggml_mem_ranges_add_src(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) {
9191
GGML_ASSERT(tensor);
9292

9393
ggml_mem_range mr = ggml_mem_range_from_tensor_src(tensor);
@@ -99,7 +99,7 @@ static bool ggml_mem_ranges_add_src(ggml_mem_ranges * mrs, const ggml_tensor * t
9999
return ggml_mem_ranges_add(mrs, mr);
100100
}
101101

102-
static bool ggml_mem_ranges_add_dst(ggml_mem_ranges * mrs, const ggml_tensor * tensor) {
102+
static bool ggml_mem_ranges_add_dst(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) {
103103
GGML_ASSERT(tensor);
104104

105105
ggml_mem_range mr = ggml_mem_range_from_tensor_dst(tensor);
@@ -111,7 +111,7 @@ static bool ggml_mem_ranges_add_dst(ggml_mem_ranges * mrs, const ggml_tensor * t
111111
return ggml_mem_ranges_add(mrs, mr);
112112
}
113113

114-
bool ggml_mem_ranges_add(ggml_mem_ranges * mrs, const ggml_tensor * tensor) {
114+
bool ggml_mem_ranges_add(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) {
115115
for (int i = 0; i < GGML_MAX_DIMS; i++) {
116116
if (tensor->src[i]) {
117117
ggml_mem_ranges_add_src(mrs, tensor->src[i]);
@@ -121,7 +121,7 @@ bool ggml_mem_ranges_add(ggml_mem_ranges * mrs, const ggml_tensor * tensor) {
121121
return ggml_mem_ranges_add_dst(mrs, tensor);
122122
}
123123

124-
static bool ggml_mem_ranges_check(const ggml_mem_ranges * mrs, ggml_mem_range mr) {
124+
static bool ggml_mem_ranges_check(ggml_mem_ranges_t mrs, ggml_mem_range mr) {
125125
for (size_t i = 0; i < mrs->ranges.size(); i++) {
126126
const auto & cmp = mrs->ranges[i];
127127

@@ -152,7 +152,7 @@ static bool ggml_mem_ranges_check(const ggml_mem_ranges * mrs, ggml_mem_range mr
152152
return true;
153153
}
154154

155-
static bool ggml_mem_ranges_check_src(const ggml_mem_ranges * mrs, const ggml_tensor * tensor) {
155+
static bool ggml_mem_ranges_check_src(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) {
156156
GGML_ASSERT(tensor);
157157

158158
ggml_mem_range mr = ggml_mem_range_from_tensor_src(tensor);
@@ -162,7 +162,7 @@ static bool ggml_mem_ranges_check_src(const ggml_mem_ranges * mrs, const ggml_te
162162
return res;
163163
}
164164

165-
static bool ggml_mem_ranges_check_dst(const ggml_mem_ranges * mrs, const ggml_tensor * tensor) {
165+
static bool ggml_mem_ranges_check_dst(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) {
166166
GGML_ASSERT(tensor);
167167

168168
ggml_mem_range mr = ggml_mem_range_from_tensor_dst(tensor);
@@ -172,7 +172,7 @@ static bool ggml_mem_ranges_check_dst(const ggml_mem_ranges * mrs, const ggml_te
172172
return res;
173173
}
174174

175-
bool ggml_mem_ranges_check(const ggml_mem_ranges * mrs, const ggml_tensor * tensor) {
175+
bool ggml_mem_ranges_check(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) {
176176
for (int i = 0; i < GGML_MAX_DIMS; i++) {
177177
if (tensor->src[i]) {
178178
if (!ggml_mem_ranges_check_src(mrs, tensor->src[i])) {
@@ -222,7 +222,7 @@ struct node_info {
222222

223223
static std::vector<int> ggml_metal_graph_optimize_reorder(const std::vector<node_info> & nodes) {
224224
// helper to add node src and dst ranges
225-
const auto & h_add = [](ggml_mem_ranges * mrs, const node_info & node) {
225+
const auto & h_add = [](ggml_mem_ranges_t mrs, const node_info & node) {
226226
for (int i = 0; i < GGML_MAX_SRC; i++) {
227227
if (node.node->src[i]) {
228228
if (!ggml_mem_ranges_add_src(mrs, node.node->src[i])) {
@@ -246,7 +246,7 @@ static std::vector<int> ggml_metal_graph_optimize_reorder(const std::vector<node
246246
};
247247

248248
// helper to check if a node can run concurrently with the existing set of nodes
249-
const auto & h_check = [](const ggml_mem_ranges * mrs, const node_info & node) {
249+
const auto & h_check = [](ggml_mem_ranges_t mrs, const node_info & node) {
250250
for (int i = 0; i < GGML_MAX_SRC; i++) {
251251
if (node.node->src[i]) {
252252
if (!ggml_mem_ranges_check_src(mrs, node.node->src[i])) {
@@ -301,10 +301,10 @@ static std::vector<int> ggml_metal_graph_optimize_reorder(const std::vector<node
301301
std::vector<bool> used(n, false);
302302

303303
// the memory ranges for the set of currently concurrent nodes
304-
ggml_mem_ranges * mrs0 = ggml_mem_ranges_init(0);
304+
ggml_mem_ranges_t mrs0 = ggml_mem_ranges_init(0);
305305

306306
// the memory ranges for the set of nodes that haven't been processed yet, when looking forward for a node to reorder
307-
ggml_mem_ranges * mrs1 = ggml_mem_ranges_init(0);
307+
ggml_mem_ranges_t mrs1 = ggml_mem_ranges_init(0);
308308

309309
for (int i0 = 0; i0 < n; i0++) {
310310
if (used[i0]) {

ggml/src/ggml-metal/ggml-metal-common.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,21 @@ enum ggml_mem_range_type {
2525
// can be added to the set without violating the constraints (i.e. if it can be executed concurrently with the
2626
// tasks already in the set)
2727
//
28-
struct ggml_mem_ranges;
28+
typedef struct ggml_mem_ranges * ggml_mem_ranges_t;
2929

30-
struct ggml_mem_ranges * ggml_mem_ranges_init(int debug);
31-
void ggml_mem_ranges_free(struct ggml_mem_ranges * mrs);
30+
ggml_mem_ranges_t ggml_mem_ranges_init(int debug);
31+
void ggml_mem_ranges_free(ggml_mem_ranges_t mrs);
3232

3333
// remove all ranges from the set
34-
void ggml_mem_ranges_reset(struct ggml_mem_ranges * mrs);
34+
void ggml_mem_ranges_reset(ggml_mem_ranges_t mrs);
3535

3636
// add src or dst ranges to track
37-
bool ggml_mem_ranges_add(struct ggml_mem_ranges * mrs, const struct ggml_tensor * tensor);
37+
bool ggml_mem_ranges_add(ggml_mem_ranges_t mrs, const struct ggml_tensor * tensor);
3838

3939
// return false if:
4040
// - new src range overlaps with any existing dst range
4141
// - new dst range overlaps with any existing range (src or dst)
42-
bool ggml_mem_ranges_check(const struct ggml_mem_ranges * mrs, const struct ggml_tensor * tensor);
42+
bool ggml_mem_ranges_check(ggml_mem_ranges_t mrs, const struct ggml_tensor * tensor);
4343

4444
// reorder the nodes in the graph to improve concurrency, while respecting fusion
4545
//

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ - (void) dealloc {
363363
id<MTLCommandBuffer> obj;
364364

365365
// used to enable concurrent execution of ops in the command buffers
366-
struct ggml_mem_ranges * mem_ranges;
366+
ggml_mem_ranges_t mem_ranges;
367367
};
368368

369369
struct ggml_backend_metal_context {
@@ -1577,7 +1577,7 @@ static bool ggml_metal_supports_op(const struct ggml_backend_metal_device_props
15771577

15781578
id<MTLComputeCommandEncoder> encoder;
15791579

1580-
struct ggml_mem_ranges * mem_ranges;
1580+
ggml_mem_ranges_t mem_ranges;
15811581
};
15821582

15831583
static bool ggml_metal_encode_concurrency_reset(struct ggml_metal_encode_context * ctx) {

0 commit comments

Comments
 (0)