mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2025-04-15 19:16:09 +00:00
gguf-py: enable reading non-native endian files (#12081)
Currently self.byte_order is never used. Actually use it to byteswap read data to allow reading big endian files on little endian systems and vice versa. Now it's possible to convert little-endian model into a big-endian model and back on a little-endian system.
This commit is contained in:
parent
53e4db1012
commit
3567ee3a94
@ -146,9 +146,11 @@ class GGUFReader:
|
||||
itemsize = int(np.empty([], dtype = dtype).itemsize)
|
||||
end_offs = offset + itemsize * count
|
||||
arr = self.data[offset:end_offs].view(dtype=dtype)[:count]
|
||||
if override_order is None:
|
||||
return arr
|
||||
return arr.view(arr.dtype.newbyteorder(override_order))
|
||||
if override_order is not None:
|
||||
return arr.view(arr.dtype.newbyteorder(override_order))
|
||||
if self.byte_order == 'S':
|
||||
return arr.view(arr.dtype.newbyteorder(self.byte_order))
|
||||
return arr
|
||||
|
||||
def _push_field(self, field: ReaderField, skip_sum: bool = False) -> int:
|
||||
if field.name in self.fields:
|
||||
|
Loading…
x
Reference in New Issue
Block a user