Skip to content

Commit 3c2156b

Browse files
authored
[Hardware][Apple-CPU] Enable native bfloat16 on Apple Silicon (M2 and later) (#24129)
Signed-off-by: ignaciosica <[email protected]>
1 parent 7e7db04 commit 3c2156b

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

vllm/platforms/cpu.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ class CpuPlatform(Platform):
7575
def supported_dtypes(self) -> list[torch.dtype]:
7676
if self.get_cpu_architecture() == CpuArchEnum.POWERPC:
7777
return [torch.bfloat16, torch.float32]
78-
elif sys.platform.startswith(
79-
"darwin") and self.get_cpu_architecture() == CpuArchEnum.ARM:
80-
# TODO: change this condition to check if the platform support bf16
81-
# instead of checking the OS. For instance M2 shall supports bf16
82-
# already. But we need to modify `cpu_extension.cmake` to activate
83-
# the feature in the build.
78+
elif (self.get_cpu_architecture() == CpuArchEnum.ARM
79+
and sys.platform.startswith("darwin")):
80+
if (subprocess.check_output(
81+
["sysctl -n hw.optional.arm.FEAT_BF16"],
82+
shell=True).strip() == b"1"):
83+
return [torch.bfloat16, torch.float16, torch.float32]
8484
return [torch.float16, torch.float32]
8585
# x86/aarch64 CPU has supported both bf16 and fp16 natively.
8686
return [torch.bfloat16, torch.float16, torch.float32]

0 commit comments

Comments
 (0)