File size: 1,170 Bytes
20347e1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
45
46
47
48
49
50
[general]
name = "bitsandbytes_mps"
backends = ["metal"]

[torch]
minver = "2.9"
src = [
  "torch-ext/torch_binding.cpp",
  "torch-ext/torch_binding.h",
]

[general.hub]
repo-id = "kernels-community/bitsandbytes-mps"

[kernel.bitsandbytes_mps]

depends = ["torch"]
backend = "metal"

src = [
# Utility headers (from MLX)
"bitsandbytes_mps/bf16.h",
"bitsandbytes_mps/bf16_math.h",
"bitsandbytes_mps/complex.h",
"bitsandbytes_mps/defines.h",
"bitsandbytes_mps/utils.h",

# GEMM infrastructure (from MLX steel)
"bitsandbytes_mps/gemm/defines.h",
"bitsandbytes_mps/gemm/gemm.h",
"bitsandbytes_mps/gemm/loader.h",
"bitsandbytes_mps/gemm/mma.h",
"bitsandbytes_mps/gemm/params.h",
"bitsandbytes_mps/gemm/transforms.h",
"bitsandbytes_mps/gemm/utils.h",
"bitsandbytes_mps/gemm/utils/integral_constant.h",
"bitsandbytes_mps/gemm/utils/type_traits.h",

# Quantized matmul utilities (from MLX)
"bitsandbytes_mps/quantized_utils.h",

# BnB-specific: codebook types, kernel logic, Metal shaders, dispatch
"bitsandbytes_mps/bnb_types.h",
"bitsandbytes_mps/bnb_quantized.h",
"bitsandbytes_mps/bnb_quantized.metal",
"bitsandbytes_mps/bnb_quantized.mm",
]

include = ["bitsandbytes_mps"]