add GGML_PAD
This commit is contained in:
parent
156d99abde
commit
7949dcaaf7
2 changed files with 5 additions and 5 deletions
9
ggml.c
9
ggml.c
|
@ -4383,7 +4383,8 @@ struct ggml_context * ggml_init(struct ggml_init_params params) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const size_t mem_size = (params.mem_size + GGML_MEM_ALIGN - 1) & ~(GGML_MEM_ALIGN - 1);
|
// REVIEW: this was probably a bug - the size was always padded even if the user provided the buffer
|
||||||
|
const size_t mem_size = params.mem_buffer ? params.mem_size : GGML_PAD(params.mem_size, GGML_MEM_ALIGN);
|
||||||
|
|
||||||
*ctx = (struct ggml_context) {
|
*ctx = (struct ggml_context) {
|
||||||
/*.mem_size =*/ mem_size,
|
/*.mem_size =*/ mem_size,
|
||||||
|
@ -4519,10 +4520,8 @@ static struct ggml_object * ggml_new_object(struct ggml_context * ctx, enum ggml
|
||||||
const size_t cur_size = obj_cur == NULL ? 0 : obj_cur->size;
|
const size_t cur_size = obj_cur == NULL ? 0 : obj_cur->size;
|
||||||
const size_t cur_end = cur_offs + cur_size;
|
const size_t cur_end = cur_offs + cur_size;
|
||||||
|
|
||||||
size_t size_needed = size;
|
|
||||||
|
|
||||||
// align to GGML_MEM_ALIGN
|
// align to GGML_MEM_ALIGN
|
||||||
size_needed = ((size_needed + GGML_MEM_ALIGN - 1)/GGML_MEM_ALIGN)*GGML_MEM_ALIGN;
|
size_t size_needed = GGML_PAD(size, GGML_MEM_ALIGN);
|
||||||
|
|
||||||
char * const mem_buffer = ctx->mem_buffer;
|
char * const mem_buffer = ctx->mem_buffer;
|
||||||
struct ggml_object * const obj_new = (struct ggml_object *)(mem_buffer + cur_end);
|
struct ggml_object * const obj_new = (struct ggml_object *)(mem_buffer + cur_end);
|
||||||
|
@ -15858,7 +15857,7 @@ struct ggml_cgraph * ggml_build_forward_ctx(struct ggml_context * ctx, struct gg
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ggml_graph_overhead(void) {
|
size_t ggml_graph_overhead(void) {
|
||||||
return GGML_OBJECT_SIZE + ((GGML_GRAPH_SIZE + GGML_MEM_ALIGN - 1)/GGML_MEM_ALIGN)*GGML_MEM_ALIGN;
|
return GGML_OBJECT_SIZE + GGML_PAD(GGML_GRAPH_SIZE, GGML_MEM_ALIGN);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
1
ggml.h
1
ggml.h
|
@ -208,6 +208,7 @@
|
||||||
|
|
||||||
#define GGML_UNUSED(x) (void)(x)
|
#define GGML_UNUSED(x) (void)(x)
|
||||||
|
|
||||||
|
#define GGML_PAD(x, n) (((x) + (n) - 1) & ~((n) - 1))
|
||||||
|
|
||||||
#define GGML_ASSERT(x) \
|
#define GGML_ASSERT(x) \
|
||||||
do { \
|
do { \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue