| #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(t1->n_dims == 1); |
| GGML_ASSERT(t1->ne[0] == 10); |
| GGML_ASSERT(t1->nb[1] == 10*sizeof(float)); |
|
|
| GGML_ASSERT(t2->n_dims == 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(t3->n_dims == 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; |
| } |
|
|