test0.zig 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const std = @import("std");
  2. const c = @cImport({
  3. @cInclude("ggml/ggml.h");
  4. });
  5. pub fn main() !void {
  6. const params = .{
  7. .mem_size = 128*1024*1024,
  8. .mem_buffer = null,
  9. .no_alloc = false,
  10. };
  11. const ctx0 = c.ggml_init(params);
  12. defer c.ggml_free(ctx0);
  13. const t1 = c.ggml_new_tensor_1d(ctx0, c.GGML_TYPE_F32, 10);
  14. const t2 = c.ggml_new_tensor_2d(ctx0, c.GGML_TYPE_I16, 10, 20);
  15. const t3 = c.ggml_new_tensor_3d(ctx0, c.GGML_TYPE_I32, 10, 20, 30);
  16. try std.testing.expect(t1.*.n_dims == 1);
  17. try std.testing.expect(t1.*.ne[0] == 10);
  18. try std.testing.expect(t1.*.nb[1] == 10*@sizeOf(f32));
  19. try std.testing.expect(t2.*.n_dims == 2);
  20. try std.testing.expect(t2.*.ne[0] == 10);
  21. try std.testing.expect(t2.*.ne[1] == 20);
  22. try std.testing.expect(t2.*.nb[1] == 10*@sizeOf(i16));
  23. try std.testing.expect(t2.*.nb[2] == 10*20*@sizeOf(i16));
  24. try std.testing.expect(t3.*.n_dims == 3);
  25. try std.testing.expect(t3.*.ne[0] == 10);
  26. try std.testing.expect(t3.*.ne[1] == 20);
  27. try std.testing.expect(t3.*.ne[2] == 30);
  28. try std.testing.expect(t3.*.nb[1] == 10*@sizeOf(i32));
  29. try std.testing.expect(t3.*.nb[2] == 10*20*@sizeOf(i32));
  30. try std.testing.expect(t3.*.nb[3] == 10*20*30*@sizeOf(i32));
  31. c.ggml_print_objects(ctx0);
  32. _ = try std.io.getStdIn().reader().readByte();
  33. }