Example M4 MAX and 7950X3D timing for building lang/rust in my context

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sun, 16 Mar 2025 05:47:47 UTC
Overall result:

About the same build time for M4 MAX and the 7950X3D,
each targeting its own kind of context rather than the
same kind of context. This is despite the difference in
the number of FreeBSD "cpus" involved. M4 MAX then
7950X3D:

[00:22:12] [02] [00:22:07] Finished   lang/rust | rust-1.85.0_1: Success
[00:21:48] [21] [00:21:43] Finished   lang/rust | rust-1.85.0_1: Success


More detail needed to well interpret the above. . .


My normal aarch64 environment is unusual, in that the
configuration that I normally use targets cortex-a76
explicitly in the kernel that I normally boot, the
aarch64 poudriere jail worlds, and the ports being
built. That contributes to the below comparison. I've
not done such tailoring to the 7950X3D type of amd64
context. So a possibly "unfair" context variation in
that respect. (Not that cortex-a76 targeting always
makes things take less time: it does not.)

(I'll note that cortex-a76 targeting leads to
compatibility with each of: M4 MAX, Windows DevKit
2023, and RPi5B. The same boot media, using the same
kernel and such, works on all 3.)


A 14 virtual core FreeBSD in Parallels in a macOS
context with a M4 MAX (so: 14 FreeBSD aarch64 "cpus"
--of 16 cores in the M4 MAX):

[00:22:12] [02] [00:22:07] Finished   lang/rust | rust-1.85.0_1: Success

Maximum observed for each of the 3 load averages: 14.92, 11.28, 7.03
(My personal adjustment to top tracks that.) No active use of swap space.

NOTE: Parallels is using USB 3.2 Gen 2 to a U2 adapter that
      has an Optane attached that has the FreeBSD. The same
      hardware is used to boot and to operate the Microsoft
      DevKit 2023 and the RPi5B. The macOS file system/media
      does not have any of the FreeBSD materials in it.


A 7950X3D (16 SMT cores, so 32 FreeBSD amd64 "cpus"):

[00:21:48] [21] [00:21:43] Finished   lang/rust | rust-1.85.0_1: Success

Maximum observed for each of the 3 load averages: 32.81, 25.21, 15.31
(My personal adjustment to top tracks that.) No active use of swap space.

NOTE: PCIe Optane media.


Overall notes:

Note: The prerequisite packages had been built previously.
      No other builds or such competed significantly for
      resources. rust was listed in TMPFS_BLACKLIST .

Note: Same system source version and ports source version
      are what things are based on.

Note: macOS did not compress any memory. I had configured
      Parallels to provide 64 GiBytes of RAM to FreeBSD,
      of the 128 GiBytes in the M4 MAX in use. macOS seems
      to start compression when RAM use gets to something
      like 100 GiBytes overall for the macOS context.
      macOS got up to something like 89 GiBytes of RAM in
      use. (I've software that monitors such under macOS.)


Side notes:

The cortex-a76 code based Microsoft DevKit 2023 context
builds lang/rust in a few minutes over 2hrs.

Avoiding having FreeBSD push the use of its paging hard
seems to be important to avoiding OOM kills in an under-
Parallels usage context. (This is via other, earlier
experiments.)

===
Mark Millard
marklmi at yahoo.com