perf: Consider explicitly defining TARGET_CPU with +crc32 for ARM maxperf builds #1627

Open
opened 2026-04-08 11:36:11 +00:00 by stratself · 1 comment
Contributor

Following discussion in dev room, it seems like TARGET_CPU=armv8-a would be a good baseline target for maxperf builds (see GCC docs). Furthermore, there seems to be wide support for crc32 and simd instructions, so it could be nice to also add that in.

For reference, my RPi4B's /proc/cpuinfo is as below:

processor       : 3
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

If this is accepted, I guess the flag could be experimentally enabled first in the Docker build. My suggestions would be armv8-a+crc. I could try testing these maxperf variants, but sadly don't have the knowhows or infrastructure to build them yet.

Following [discussion in dev room](https://matrix.to/#/!ksTlboXVgcyWjv5GrlEeKyQuJ8ZCprnwQx2b6-BQ44Q/%24X0AgVHVtmwJOkaGMlxNH9ITyI9OXSadfTADGSokQsfU?via=continuwuity.org&via=explodie.org&via=matrix.org), it seems like `TARGET_CPU=armv8-a` would be a good baseline target for maxperf builds (see [GCC docs](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-march-2)). Furthermore, there seems to be wide support for crc32 and simd instructions, so it could be nice to also add that in. For reference, my RPi4B's `/proc/cpuinfo` is as below: ``` processor : 3 BogoMIPS : 108.00 Features : fp asimd evtstrm crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 ``` If this is accepted, I guess the flag could be experimentally enabled first in the [Docker build](https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/2124fcf3255d3a4daaf3e4f7f9f4049d9293b809/.forgejo/workflows/release-image.yml#L129). My suggestions would be `armv8-a+crc`. I could try testing these maxperf variants, but sadly don't have the knowhows or infrastructure to build them yet.
Owner

Change here would be adding the target CPU to
https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/.forgejo/workflows/release-image.yml#L129

Can be locally tested by setting the TARGET_CPU build arg on the docker image along with the RUST_PROFILE=release-max-perf arg

Change here would be adding the target CPU to https://forgejo.ellis.link/continuwuation/continuwuity/src/branch/main/.forgejo/workflows/release-image.yml#L129 Can be locally tested by setting the `TARGET_CPU` build arg on the docker image along with the `RUST_PROFILE=release-max-perf` arg
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity#1627
No description provided.