File size: 974 Bytes
a34bca4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
39
40
41
42
43
44
"""
"""
# pyright: reportPrivateImportUsage=false

from importlib import metadata

from packaging import version


MULTI_BACKEND_VERSION = version.parse('0.46.0')


def is_old_bnb() -> bool:
    try:
        version_str = metadata.version('bitsandbytes')
    except ImportError: # pragma: no cover
        return False
    if (bnb_version := version.parse(version_str)) < version.parse('0.46.0'): # pragma: no cover
        message = f"ZeroGPU recommends bitsandbytes >= `{MULTI_BACKEND_VERSION}` "
        message += f"(`{bnb_version}` installed). Falling back to legacy support"
        print(message)
        return True
    return False


if is_old_bnb(): # pragma: no cover

    from . import bitsandbytes_legacy

    _patch = bitsandbytes_legacy.patch
    _unpatch = bitsandbytes_legacy.unpatch
    _move = bitsandbytes_legacy.move

else:

    _patch = lambda: None
    _unpatch = lambda: None
    _move = lambda: None


patch = _patch
unpatch = _unpatch
move = _move