|
#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; |
|
} |
|
|