Removed prod for Python <= 3.7 compatibility.

This commit is contained in:
Tim Dettmers 2022-08-08 05:20:36 -07:00
parent 26efb154c8
commit 62441815bc
2 changed files with 9 additions and 7 deletions

View File

@ -1,10 +1,14 @@
from dataclasses import dataclass
import operator
import torch
import math
import bitsandbytes as bnb
import bitsandbytes.functional as F
from dataclasses import dataclass
from functools import reduce # Required in Python 3
def prod(iterable):
return reduce(operator.mul, iterable, 1)
tensor = torch.Tensor
"""
@ -12,8 +16,6 @@ tensor = torch.Tensor
This is particularly important for small models where outlier features
are less systematic and occur with low frequency.
"""
class GlobalOutlierPooler(object):
_instance = None
@ -201,7 +203,7 @@ class MatMul8bitLt(torch.autograd.Function):
def forward(ctx, A, B, out=None, state=MatmulLtState()):
# default to pytorch behavior if inputs are empty
ctx.is_empty = False
if math.prod(A.shape) == 0:
if prod(A.shape) == 0:
ctx.is_empty = True
ctx.A = A
ctx.B = B

View File

@ -18,7 +18,7 @@ def read(fname):
setup(
name=f"bitsandbytes",
version=f"0.31.4",
version=f"0.31.5",
author="Tim Dettmers",
author_email="dettmers@cs.washington.edu",
description="8-bit optimizers and matrix multiplication routines.",