forked from ggml-org/ggml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest0.c
42 lines (32 loc) · 1.22 KB
/
test0.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "ggml/ggml.h"
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char ** argv) {
struct ggml_init_params params = {
.mem_size = 128*1024*1024,
.mem_buffer = NULL,
.no_alloc = false,
};
struct ggml_context * ctx0 = ggml_init(params);
struct ggml_tensor * t1 = ggml_new_tensor_1d(ctx0, GGML_TYPE_F32, 10);
struct ggml_tensor * t2 = ggml_new_tensor_2d(ctx0, GGML_TYPE_I16, 10, 20);
struct ggml_tensor * t3 = ggml_new_tensor_3d(ctx0, GGML_TYPE_I32, 10, 20, 30);
GGML_ASSERT(ggml_n_dims(t1) == 1);
GGML_ASSERT(t1->ne[0] == 10);
GGML_ASSERT(t1->nb[1] == 10*sizeof(float));
GGML_ASSERT(ggml_n_dims(t2) == 2);
GGML_ASSERT(t2->ne[0] == 10);
GGML_ASSERT(t2->ne[1] == 20);
GGML_ASSERT(t2->nb[1] == 10*sizeof(int16_t));
GGML_ASSERT(t2->nb[2] == 10*20*sizeof(int16_t));
GGML_ASSERT(ggml_n_dims(t3) == 3);
GGML_ASSERT(t3->ne[0] == 10);
GGML_ASSERT(t3->ne[1] == 20);
GGML_ASSERT(t3->ne[2] == 30);
GGML_ASSERT(t3->nb[1] == 10*sizeof(int32_t));
GGML_ASSERT(t3->nb[2] == 10*20*sizeof(int32_t));
GGML_ASSERT(t3->nb[3] == 10*20*30*sizeof(int32_t));
ggml_print_objects(ctx0);
ggml_free(ctx0);
return 0;
}