Skip to content

Commit f1d9d80

Browse files
lib methods can now safely be assigned, no more cryptic errors on missing lib
1 parent fe6cd17 commit f1d9d80

File tree

1 file changed

+95
-96
lines changed

1 file changed

+95
-96
lines changed

bitsandbytes/functional.py

Lines changed: 95 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -19,102 +19,101 @@
1919

2020
name2qmap = {}
2121

22-
if lib and lib.compiled_with_cuda:
23-
"""C FUNCTIONS FOR OPTIMIZERS"""
24-
str2optimizer32bit = {
25-
"adam": (
26-
lib.cadam32bit_grad_fp32,
27-
lib.cadam32bit_grad_fp16,
28-
lib.cadam32bit_grad_bf16,
29-
),
30-
"momentum": (
31-
lib.cmomentum32bit_grad_32,
32-
lib.cmomentum32bit_grad_16,
33-
),
34-
"rmsprop": (
35-
lib.crmsprop32bit_grad_32,
36-
lib.crmsprop32bit_grad_16,
37-
),
38-
"lion": (
39-
lib.clion32bit_grad_fp32,
40-
lib.clion32bit_grad_fp16,
41-
lib.clion32bit_grad_bf16,
42-
),
43-
"adagrad": (
44-
lib.cadagrad32bit_grad_32,
45-
lib.cadagrad32bit_grad_16,
46-
),
47-
"lamb": (
48-
lib.cadam32bit_grad_fp32,
49-
lib.cadam32bit_grad_fp16,
50-
lib.cadam32bit_grad_bf16,
51-
),
52-
"ademamix": (
53-
lib.cademamix32bit_grad_fp32,
54-
lib.cademamix32bit_grad_fp16,
55-
lib.cademamix32bit_grad_bf16,
56-
),
57-
}
58-
59-
str2optimizer8bit = {
60-
"adam": (
61-
lib.cadam_static_8bit_grad_32,
62-
lib.cadam_static_8bit_grad_16,
63-
),
64-
"momentum": (
65-
lib.cmomentum_static_8bit_grad_32,
66-
lib.cmomentum_static_8bit_grad_16,
67-
),
68-
"rmsprop": (
69-
lib.crmsprop_static_8bit_grad_32,
70-
lib.crmsprop_static_8bit_grad_16,
71-
),
72-
"lion": (
73-
lib.clion_static_8bit_grad_32,
74-
lib.clion_static_8bit_grad_16,
75-
),
76-
"lamb": (
77-
lib.cadam_static_8bit_grad_32,
78-
lib.cadam_static_8bit_grad_16,
79-
),
80-
"lars": (
81-
lib.cmomentum_static_8bit_grad_32,
82-
lib.cmomentum_static_8bit_grad_16,
83-
),
84-
}
85-
86-
str2optimizer8bit_blockwise = {
87-
"adam": (
88-
lib.cadam_8bit_blockwise_grad_fp32,
89-
lib.cadam_8bit_blockwise_grad_fp16,
90-
lib.cadam_8bit_blockwise_grad_bf16,
91-
),
92-
"momentum": (
93-
lib.cmomentum_8bit_blockwise_grad_fp32,
94-
lib.cmomentum_8bit_blockwise_grad_fp16,
95-
lib.cmomentum_8bit_blockwise_grad_bf16,
96-
),
97-
"rmsprop": (
98-
lib.crmsprop_8bit_blockwise_grad_fp32,
99-
lib.crmsprop_8bit_blockwise_grad_fp16,
100-
lib.crmsprop_8bit_blockwise_grad_bf16,
101-
),
102-
"lion": (
103-
lib.clion_8bit_blockwise_grad_fp32,
104-
lib.clion_8bit_blockwise_grad_fp16,
105-
lib.clion_8bit_blockwise_grad_bf16,
106-
),
107-
"adagrad": (
108-
lib.cadagrad_8bit_blockwise_grad_fp32,
109-
lib.cadagrad_8bit_blockwise_grad_fp16,
110-
lib.cadagrad_8bit_blockwise_grad_bf16,
111-
),
112-
"ademamix": (
113-
lib.cademamix_8bit_blockwise_grad_fp32,
114-
lib.cademamix_8bit_blockwise_grad_fp16,
115-
lib.cademamix_8bit_blockwise_grad_bf16,
116-
),
117-
}
22+
"""C FUNCTIONS FOR OPTIMIZERS"""
23+
str2optimizer32bit = {
24+
"adam": (
25+
lib.cadam32bit_grad_fp32,
26+
lib.cadam32bit_grad_fp16,
27+
lib.cadam32bit_grad_bf16,
28+
),
29+
"momentum": (
30+
lib.cmomentum32bit_grad_32,
31+
lib.cmomentum32bit_grad_16,
32+
),
33+
"rmsprop": (
34+
lib.crmsprop32bit_grad_32,
35+
lib.crmsprop32bit_grad_16,
36+
),
37+
"lion": (
38+
lib.clion32bit_grad_fp32,
39+
lib.clion32bit_grad_fp16,
40+
lib.clion32bit_grad_bf16,
41+
),
42+
"adagrad": (
43+
lib.cadagrad32bit_grad_32,
44+
lib.cadagrad32bit_grad_16,
45+
),
46+
"lamb": (
47+
lib.cadam32bit_grad_fp32,
48+
lib.cadam32bit_grad_fp16,
49+
lib.cadam32bit_grad_bf16,
50+
),
51+
"ademamix": (
52+
lib.cademamix32bit_grad_fp32,
53+
lib.cademamix32bit_grad_fp16,
54+
lib.cademamix32bit_grad_bf16,
55+
),
56+
}
57+
58+
str2optimizer8bit = {
59+
"adam": (
60+
lib.cadam_static_8bit_grad_32,
61+
lib.cadam_static_8bit_grad_16,
62+
),
63+
"momentum": (
64+
lib.cmomentum_static_8bit_grad_32,
65+
lib.cmomentum_static_8bit_grad_16,
66+
),
67+
"rmsprop": (
68+
lib.crmsprop_static_8bit_grad_32,
69+
lib.crmsprop_static_8bit_grad_16,
70+
),
71+
"lion": (
72+
lib.clion_static_8bit_grad_32,
73+
lib.clion_static_8bit_grad_16,
74+
),
75+
"lamb": (
76+
lib.cadam_static_8bit_grad_32,
77+
lib.cadam_static_8bit_grad_16,
78+
),
79+
"lars": (
80+
lib.cmomentum_static_8bit_grad_32,
81+
lib.cmomentum_static_8bit_grad_16,
82+
),
83+
}
84+
85+
str2optimizer8bit_blockwise = {
86+
"adam": (
87+
lib.cadam_8bit_blockwise_grad_fp32,
88+
lib.cadam_8bit_blockwise_grad_fp16,
89+
lib.cadam_8bit_blockwise_grad_bf16,
90+
),
91+
"momentum": (
92+
lib.cmomentum_8bit_blockwise_grad_fp32,
93+
lib.cmomentum_8bit_blockwise_grad_fp16,
94+
lib.cmomentum_8bit_blockwise_grad_bf16,
95+
),
96+
"rmsprop": (
97+
lib.crmsprop_8bit_blockwise_grad_fp32,
98+
lib.crmsprop_8bit_blockwise_grad_fp16,
99+
lib.crmsprop_8bit_blockwise_grad_bf16,
100+
),
101+
"lion": (
102+
lib.clion_8bit_blockwise_grad_fp32,
103+
lib.clion_8bit_blockwise_grad_fp16,
104+
lib.clion_8bit_blockwise_grad_bf16,
105+
),
106+
"adagrad": (
107+
lib.cadagrad_8bit_blockwise_grad_fp32,
108+
lib.cadagrad_8bit_blockwise_grad_fp16,
109+
lib.cadagrad_8bit_blockwise_grad_bf16,
110+
),
111+
"ademamix": (
112+
lib.cademamix_8bit_blockwise_grad_fp32,
113+
lib.cademamix_8bit_blockwise_grad_fp16,
114+
lib.cademamix_8bit_blockwise_grad_bf16,
115+
),
116+
}
118117

119118

120119
class GlobalPageManager:

0 commit comments

Comments
 (0)