Skip to content

Commit d90184d

Browse files
committed
fix: detect hw.ncpu for FreeBSD
1 parent e7ed1af commit d90184d

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

src/common/cpuinfo/CpuInfo.cpp

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -435,9 +435,28 @@ CpuInfo CpuInfo::build()
435435
std::vector<CpuModel> cpus_model(1, midr_to_model(midr));
436436
CpuInfo info(isa, cpus_model);
437437
return info;
438-
#elif defined(__aarch64__) && (defined(__OpenBSD__) || defined(__FreeBSD__) || \
439-
defined(__APPLE__)) /* #elif(BARE_METAL) && defined(__aarch64__) */
440-
int ncpus = get_hw_capability("hw.perflevel0.logicalcpu");
438+
439+
#elif defined(__aarch64__) && (defined(__OpenBSD__) || defined(__FreeBSD__))
440+
/* #elif(BARE_METAL) && defined(__aarch64__) */
441+
int ncpus = get_hw_capability("hw.ncpu");
442+
CpuIsaInfo isainfo;
443+
std::vector<CpuModel> cpus_model(ncpus);
444+
isainfo.neon = get_hw_capability("hw.optional.neon");
445+
isainfo.fp16 = get_hw_capability("hw.optional.neon_fp16");
446+
isainfo.dot = get_hw_capability("hw.optional.arm.FEAT_DotProd");
447+
isainfo.bf16 = get_hw_capability("hw.optional.arm.FEAT_BF16");
448+
isainfo.i8mm = get_hw_capability("hw.optional.arm.FEAT_I8MM");
449+
isainfo.sme = get_hw_capability("hw.optional.arm.FEAT_SME");
450+
isainfo.sme_f32f32 = get_hw_capability("hw.optional.arm.SME_F32F32");
451+
isainfo.sme_b16f32 = get_hw_capability("hw.optional.arm.SME_B16F32");
452+
isainfo.sme_f16f32 = get_hw_capability("hw.optional.arm.SME_F16F32");
453+
isainfo.sme_i8i32 = get_hw_capability("hw.optional.arm.SME_I8I32");
454+
isainfo.sme2 = get_hw_capability("hw.optional.arm.FEAT_SME2");
455+
CpuInfo info(isainfo, cpus_model);
456+
return info;
457+
458+
#elif defined(__aarch64__) && defined(__APPLE__)
459+
int ncpus = get_hw_capability("hw.perflevel0.logicalcpu");
441460
CpuIsaInfo isainfo;
442461
std::vector<CpuModel> cpus_model(ncpus);
443462
isainfo.neon = get_hw_capability("hw.optional.neon");

0 commit comments

Comments
 (0)