mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-10-19 05:23:55 +08:00
Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9a013d56f9 | |||
| 4674f5bbec | |||
| 662b29eb6b | |||
| d811c8ddde | |||
| e693544fd7 | |||
| f9c876ca2d | |||
| 046a3ead4e | |||
| 723ebf374e | |||
| b24f546a0f | |||
| 3163577bc9 | |||
| 84fda467b5 | |||
| 04a8fb81ab | |||
| 05099ae19c | |||
| e6d035b639 | |||
| 45bfd88e7e | |||
| 86f2e7b255 | |||
| eb7a6fc0f8 | |||
| 033ba0d973 | |||
| 32460cd5b1 | |||
| 0042016791 | |||
| f6e2fb1c33 | |||
| 43cbdc65cd | |||
| 5823cf4f84 | |||
| 023ef9419a | |||
| 374659bf43 | |||
| 07f755a4c7 | |||
| f4996a0529 | |||
| 2f6e2560ea | |||
| 0414843e2f | |||
| 5acb9d2c8e | |||
| 2bf8f88978 | |||
| e6e5b1c165 | |||
| b7d06aa440 | |||
| a9ccd8fedf | |||
| 6220734b2d | |||
| f3f7296776 | |||
| 9f3a2607ee | |||
| b4c3a19db1 | |||
| 04098893d9 | |||
| bc064e892f | |||
| be51bc793d | |||
| f7c65f7d6a | |||
| bd27f3b54f | |||
| d7c1827134 | |||
| 1344824746 | |||
| 75b5926f4f |
@@ -10,6 +10,7 @@ import builtins
|
||||
import contextlib
|
||||
import dataclasses
|
||||
import functools
|
||||
import gc
|
||||
import hashlib
|
||||
import io
|
||||
import itertools
|
||||
@@ -111,17 +112,21 @@ def read_parts(path: str) -> tuple[dict, dict]:
|
||||
return parts, _MetadataUnpickler(io.BytesIO(bytes(blob[slice(*header["extras"])]))).load()
|
||||
|
||||
|
||||
def _extended(path: str, extend) -> tuple[dict, dict, str]:
|
||||
def _extended(path: str, extend) -> tuple[dict, dict, str, dict]:
|
||||
parts, extras = read_parts(path)
|
||||
added = extend(parts, extras) if extend else {}
|
||||
return parts | added, extras, _parts_digest(added) if added else ""
|
||||
return parts | added, extras, _parts_digest(added) if added else "", {key: parts[key] for key in added if key in parts}
|
||||
|
||||
|
||||
def load_model(path: str, device_map: dict | None = None, verify: bool = True, cache: bool = True, extend=None) -> dict:
|
||||
parts, extras, extra = _extended(path, extend)
|
||||
parts, extras, extra, replaced = _extended(path, extend)
|
||||
if cache and (cached := _read_cache(path, parts, device_map, extra)) is not None:
|
||||
return extras | cached
|
||||
shared: dict = {}
|
||||
if verify and replaced:
|
||||
for header, blob in replaced.values():
|
||||
PlainJit(header, blob, device_map, verify, shared)
|
||||
gc.collect()
|
||||
jits = {key: PlainJit(header, blob, device_map, verify, shared) for key, (header, blob) in parts.items()}
|
||||
if cache:
|
||||
_write_cache(path, jits, device_map, extra)
|
||||
|
||||
@@ -10,6 +10,7 @@ from collections.abc import Callable
|
||||
import gc
|
||||
import os
|
||||
os.environ['GMMU'] = '0'
|
||||
os.environ.setdefault('AM_POWER_LIMIT', '0') # make this a toggle or something. this makes model 5ms faster per execution step
|
||||
from tinygrad.device import Device
|
||||
import numpy as np
|
||||
import threading
|
||||
|
||||
Reference in New Issue
Block a user