Unverified Commit 364629b8 authored by Jeffrey Morgan's avatar Jeffrey Morgan Committed by GitHub
Browse files

ml/backend/ggml: allocate memory with malloc when loading model (#9822)

parent 108fe021
...@@ -312,17 +312,19 @@ func New(r *os.File, params ml.BackendParams) (ml.Backend, error) { ...@@ -312,17 +312,19 @@ func New(r *os.File, params ml.BackendParams) (ml.Backend, error) {
return fmt.Errorf("unassigned tensor: %s", t.Name) return fmt.Errorf("unassigned tensor: %s", t.Name)
} }
bts := make([]byte, t.Size()) bts := C.malloc(C.size_t(t.Size()))
n, err := io.ReadFull(io.NewSectionReader(sr, int64(t.Offset), int64(t.Size())), bts) if bts == nil {
if err != nil { return errors.New("failed to allocate tensor buffer")
return err
} }
defer C.free(bts)
if n != len(bts) { buf := unsafe.Slice((*byte)(bts), t.Size())
return errors.New("short read") n, err := io.ReadFull(io.NewSectionReader(sr, int64(t.Offset), int64(t.Size())), buf)
if err != nil || n != len(buf) {
return errors.New("read failed")
} }
C.ggml_backend_tensor_set(tt, unsafe.Pointer(&bts[0]), 0, C.size_t(t.Size())) C.ggml_backend_tensor_set(tt, bts, 0, C.size_t(t.Size()))
return nil return nil
}) })
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment