Defaulting to AVX for 64-bit architectures?

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.

What instruction set should be the minimum for Pale Moon going forward?

Poll ended at 2024-03-09, 15:33

Keep it as-is (SSE2 or later)
18
33%
AVX (Bulldozer/AMD FX/Intel Sandy Bridge)
19
35%
AVX2 (Excavator/Zen/Haswell/Core i3/5/7)
15
27%
Just show me the results
3
5%
 
Total votes: 55

User avatar
Eduardolucas1
Hobby Astronomer
Hobby Astronomer
Posts: 29
Joined: 2024-02-05, 03:15

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Eduardolucas1 » 2024-03-13, 15:17

LuftWafflePilot wrote:
2024-03-08, 17:28
My completely amateur opinion:
If you can't afford a PC newer than 13 years old (or what was the year first AVX-capable CPUs were released?) OR if you are a hippie who refuses to upgrade to a PC newer than 13 years old, you should go build your own damn PM with ancient junk support and leave the present be.

If the browser sticks with ancient technology, it will become ancient, and it's already a niche product as it is.
Sometimes there should be no polls, I think.
You`re not the one who solves the subjective question of what is a high-performance cpu or not. a lot of people believe 64-bit cpus with fast caches are. to each one their own.

User avatar
back2themoon
Moon Magic practitioner
Moon Magic practitioner
Posts: 2411
Joined: 2012-08-19, 20:32

Re: Defaulting to AVX for 64-bit architectures?

Unread post by back2themoon » 2024-03-13, 17:46

Non-AVX user here, but I guess it's time to move on. Didn't vote anyway (missed it).

User avatar
Echedelle
Apollo supporter
Apollo supporter
Posts: 30
Joined: 2022-09-11, 17:54

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Echedelle » 2024-03-16, 12:16

A bit late here, but I used Celeron J1900 and now moved to a Zhaoxin Z3-6450

Code: Select all

Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         40 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  4
  On-line CPU(s) list:   0-3
Vendor ID:               CentaurHauls
  Model name:            ZHAOXIN Z3-6540M@2.1+GHz
    CPU family:          7
    Model:               59
    Thread(s) per core:  1
    Core(s) per socket:  4
    Socket(s):           1
    Stepping:            0
    Frequency boost:     enabled
    CPU(s) scaling MHz:  55%
    CPU max MHz:         2600.0000
    CPU min MHz:         1200.0000
    BogoMIPS:            5189.81
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat ps
                         e36 clflush acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb r
                         dtscp lm constant_tsc arch_perfmon rep_good nopl nonstop_tsc cpuid a
                         perfmperf pni pclmulqdq monitor vmx smx est tm2 ssse3 cx16 xtpr pcid
                          sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rd
                         rand rng rng_en ace ace_en ace2 phe phe_en pmm pmm_en lahf_lm abm 3d
                         nowprefetch invpcid_single tpr_shadow vnmi ept vpid fsgsbase tsc_adj
                         ust bmi1 smep bmi2 invpcid rdseed adx xsaveopt dtherm ida umip arch_
                         capabilities
AVX is the only one properly supported and not AVX-2.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35653
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Moonchild » 2024-03-16, 12:32

EchedeyLR wrote:
2024-03-16, 12:16
Zhaoxin Z3-6450
Interesting, so even China's home-grown CPUs support AVX. Good to know :)
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Theresnothinghere
Moongazer
Moongazer
Posts: 9
Joined: 2023-08-03, 12:19

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Theresnothinghere » 2024-03-17, 13:21

Enforcing AVX would also exclude Windows Vista extended kernel (which I use on my 2 laptops)
On my 12th gen I5 desktop with Windows 8.0 I do use AVX2 builds but it took a year before I learned that they are an option.
So I think it's best to leave the default as is, but make the AVX builds visible on the main download page, because right now they are hidden in a forum post and barely anyone knows they exist.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35653
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Moonchild » 2024-03-17, 13:38

Theresnothinghere wrote:
2024-03-17, 13:21
Enforcing AVX would also exclude Windows Vista extended kernel (which I use on my 2 laptops)
We do not support Vista. Hacked kernel or not.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Theresnothinghere
Moongazer
Moongazer
Posts: 9
Joined: 2023-08-03, 12:19

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Theresnothinghere » 2024-03-17, 17:22

Moonchild wrote:
2024-03-17, 13:38
Theresnothinghere wrote:
2024-03-17, 13:21
Enforcing AVX would also exclude Windows Vista extended kernel (which I use on my 2 laptops)
We do not support Vista. Hacked kernel or not.
Ok, I get that, but It's cool when something works even on some niche "unsupported" configurations. Pale Moon users are a minority when it comes to web browser users, so few websites support it officially, but it's nice when it works anyway. Vista users are a minority when it comes to Windows users, but it's cool where a program works anyway (I would prefer to avoid using the beta-ish feeling New Moon there).
Same when it comes to using old CPUs

I would like to suggest something like this:
concept.png
This would also prevent people that don't know what CPU generations are from spamming the forum with "why it doesn't work" posts
You do not have the required permissions to view the files attached to this post.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35653
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Moonchild » 2024-03-17, 17:53

Theresnothinghere wrote:
2024-03-17, 17:22
This would also prevent people that don't know what CPU generations are from spamming the forum with "why it doesn't work" posts
"pre-2012 CPU" would still have those people come to the forum because "they bought it in 2015" or what not assuming it would work. I also don't want to cramp the download table. If people are unsure they can check the system requirements page linked at the top.

Don't get me wrong. I get it. You want to keep using old hardware or old OS-es. I don't think the argument that "it's cool that it still works" is a valid reason to kill performance for everyone else. "Running on old hardware" is not and has never been a project goal; quite the opposite. The project has in fact started by building optimized for later generations of processors than official Firefox supported, and we've slowly been drifting away from that.
Theresnothinghere wrote:
2024-03-17, 17:22
I would prefer to avoid using the beta-ish feeling New Moon there
You can use the 32-bit one instead if you want an official build. I may also continue to provide SSE2 builds myself as a courtesy but they will not be automatically updating in that case, just to not burden people on ancient hardware with having to build from source which they may not be able to. But I really feel mainline should not leave considerable performance on the table when every CPU that's reasonably modern can take advantage of AVX.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Drugwash
Fanatic
Fanatic
Posts: 218
Joined: 2016-01-28, 12:08
Location: Ploieşti, Romania

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Drugwash » 2024-03-18, 16:57

Samsung NP-R580 notebook, 2009 model, upgraded. Can't afford a loaf of bread, literally, not to mention a newer CPU or computer.
Here's its CPu capabilities. Can't see any AVX among the flags. So guess I'll have to bid you farewell in a few. :(

Code: Select all

dragos@Samsung-R580:~$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  2
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               37
Model name:          Intel(R) Core(TM) i5 CPU       M 460  @ 2.53GHz
Stepping:            5
CPU MHz:             2793.117
CPU max MHz:         2534,0000
CPU min MHz:         1199,0000
BogoMIPS:            5054.23
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            3072K
NUMA node0 CPU(s):   0-3
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt lahf_lm pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid dtherm ida arat flush_l1d

User avatar
Pentium4User
Board Warrior
Board Warrior
Posts: 1138
Joined: 2019-04-24, 09:38

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Pentium4User » 2024-03-18, 18:42

i5 1st gen doesn't have AVX as you noticed.

I think we definitely need SSE2 builds. I might volunteer to do them, but I need to learn more about building DEB/RPM and creating the repos.
The profile picture shows my Maico EC30 E ceiling fan.

User avatar
__NM64__
Lunatic
Lunatic
Posts: 366
Joined: 2013-10-17, 05:29
Location: Northeast Ohio

Re: Defaulting to AVX for 64-bit architectures?

Unread post by __NM64__ » 2024-03-18, 19:01

I did a search for "Pentium" in this thread and found a lack of people missing a very big thing:

LGA-socket Pentium processors derived from the full-fat Intel core architectures, such as the Pentium Gold G6400 from 2020, lack AVX support. LGA-socket Pentium processors did not include AVX support until those based on Intel's 12 gen core "Alder Lake" which were only released in 2022 (and use a new socket in Intel tradition of course).

I personally have a Haswell-based LGA-socket Pentium G3258 which, similarly being derived from the main desktop cores, is basically nothing more than an overclockable i3 with no hyperthreading... and no AVX (because Intel segmentation of course). Luckily it's old enough that I can drop in an AVX-capable Haswell Xeon for all of like 15-25 bucks, but that's obviously not an option for the many newer Pentium CPUs.

And, again, it's important to remember that Intel muddied the waters on Pentium branding when they retired the Atom branding, making anything called Pentium Silver be what used to be the Atom cores while making Pentium Gold be what is effectively an i3 with (usually) fewer threads and (until Alder Lake) no AVX.


It's also worth mentioning that the Linux builds are only available as 64bit, and it's obviously a thing to run Linux on older hardware which is very much what I've been doing with a perfectly-adequate "basic internet and email" family PC with a Phenom II on an AM3 board that does not support AM3+ CPUs (not that Piledriver was really an upgrade in single-threaded performance other than its support for SSSE3 and AVX).
Last edited by __NM64__ on 2024-03-18, 19:17, edited 1 time in total.

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1537
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Defaulting to AVX for 64-bit architectures?

Unread post by athenian200 » 2024-03-18, 19:15

__NM64__ wrote:
2024-03-18, 19:01
I did a search for "Pentium" in this thread and found a lack of people missing a very big thing:

LGA-socket Pentium processors derived from the full-fat Intel core architectures, such as the Pentium Gold G6400 from 2020, lack AVX support. LGA-socket Pentium processors did not include AVX support until those based on Intel's 12 gen core "Alder Lake" which were only released in 2022 (and use a new socket in Intel tradition of course).

I personally have a Haswell-based LGA-socket Pentium G3258 which, similarly being derived from the main desktop cores, is basically nothing more than an overclockable i3 with no hyperthreading... and no AVX (because Intel segmentation of course). Luckily it's old enough that I can drop in an AVX-capable Haswell Xeon for all of like 15-25 bucks, but that's obviously not an option for the many newer Pentium CPUs.

And, again, it's important to remember that Intel muddied the waters on Pentium branding when they retired the Atom branding, making anything called Pentium Silver be what used to be the Atom cores while making Pentium Gold be what is effectively an i3 with (usually) fewer threads and (until Alder Lake) no AVX.
Well, I don't know how Intel ever expects anyone to make use of newer instruction sets if they keep releasing crippled CPUs that still use an instruction set baseline from 2009 as if it were suitable for today's computing needs. We're at the point that major Linux distros are considering dropping support for v2 and moving to a v3 baseline, so all the people on that hardware are going to be lumped in with people running 2009-era CPUs, because there's no other reasonable way to differentiate them that doesn't hold back decades worth of advancements for another 10 years.

It's like, do we want people to be able to finally get the most out of of their Sandy and Ivy Bridge CPUs, or do we want to hold everything back because some people bought single-core Pentium CPUs with no AVX a couple years ago? This is unfortunately a lot more complicated than it should be, and we have to draw a line somewhere.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
__NM64__
Lunatic
Lunatic
Posts: 366
Joined: 2013-10-17, 05:29
Location: Northeast Ohio

Re: Defaulting to AVX for 64-bit architectures?

Unread post by __NM64__ » 2024-03-18, 19:20

athenian200 wrote:
2024-03-18, 19:15
We're at the point that major Linux distros are considering dropping support for v2 and moving to a v3 baseline
And when it gets discussed, at least on Phoronix, the issue of modern Pentiums is almost always brought up along with people mentioning that these levels were (supposedly?) intended to be auto-detectable or the like and not exclusive (hardware is my expertise, not software, so I really haven't much insight into this so don't take my words as gospel).
athenian200 wrote:
2024-03-18, 19:15
because some people bought single-core Pentium CPUs with no AVX a couple years ago?
All desktop LGA Pentium CPUs have been dual core since at least 2006, and they added hyper-threaded in early 2017 (the G4560 was a common budget gaming PC option at that time).

User avatar
Pentium4User
Board Warrior
Board Warrior
Posts: 1138
Joined: 2019-04-24, 09:38

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Pentium4User » 2024-03-18, 19:33

athenian200 wrote:
2024-03-18, 19:15
It's like, do we want people to be able to finally get the most out of of their Sandy and Ivy Bridge CPUs, or do we want to hold everything back because some people bought single-core Pentium CPUs with no AVX a couple years ago? This is unfortunately a lot more complicated than it should be, and we have to draw a line somewhere.
The problem is Intel here.
AMD doesn't cripple the instruction sets of their CPUs. Even the Athlon 220G has AVX2.

I can understand that the PM team doesn't want to support machines older than 10 years, but the really nasty thing is that Intel crippled their cheaper CPUs too and those are widely used in cheaper or smaller laptops, Mini-PCs and low-power machines.
We had such laptops in school made by HP.
The profile picture shows my Maico EC30 E ceiling fan.

User avatar
__NM64__
Lunatic
Lunatic
Posts: 366
Joined: 2013-10-17, 05:29
Location: Northeast Ohio

Re: Defaulting to AVX for 64-bit architectures?

Unread post by __NM64__ » 2024-03-18, 19:50

Pentium4User wrote:
2024-03-18, 19:33
AMD doesn't cripple the instruction sets of their CPUs. Even the Athlon 220G has AVX2.
Forget the Athlon 220G, even freakin Jaguar has AVX (AVX1, not 2). Those are the cores most well known for their use in the PlayStation 4 and Xbox One, but at least on desktop their per-GHz performance was "only" comparable to the Athlon 64 variants with the larger L2 cache (1MB vs 512KB) and was AMD's competitor for the later generations of Intel Atom that themselves had single threaded-performance similar to the Core2-derived Pentiums.

Pentium4User wrote:
2024-03-18, 19:33
the really nasty thing is that Intel crippled their cheaper CPUs too and those are widely used in cheaper or smaller laptops, Mini-PCs and low-power machines.
We had such laptops in school made by HP.
And of course, unlike gaming PCs and proper "workstation" PCs, such not-high-end hardware is almost certainly going to have primary use-cases involving a web browser.

A use case all the more likely to be appropriate for Linux rather than Windows, running once again into the issue of the AVX requirement on Linux builds being particularly problematic relative to Windows.

Consider that 4GB of RAM is plenty on a simple web-browsing Linux PC, but I would hesitate to use 4GB of RAM on Windows 10 let alone Windows 11, and now consider that so many laptops unfortunately have soldered RAM anymore which is likely to be all the more common on lower-end hardware made in the last decade (and that's before considering that zram is an option on Linux and a good chunk of the more low-end hardware with Atom-core derivatives try to "go wide" with having abundant CPU threads which is actually ideally suited to zram).
Last edited by __NM64__ on 2024-03-18, 20:25, edited 6 times in total.

User avatar
R3n_001
Moonbather
Moonbather
Posts: 66
Joined: 2019-05-25, 20:39

Re: Defaulting to AVX for 64-bit architectures?

Unread post by R3n_001 » 2024-03-18, 19:53

This is where the x86 build comes in. It will still be SSE2, and good enough for these lower end systems.

User avatar
__NM64__
Lunatic
Lunatic
Posts: 366
Joined: 2013-10-17, 05:29
Location: Northeast Ohio

Re: Defaulting to AVX for 64-bit architectures?

Unread post by __NM64__ » 2024-03-18, 19:54

R3n_001 wrote:
2024-03-18, 19:53
This is where the x86 build comes in. It will still be SSE2, and good enough for these lower end systems.
Linux doesn't have x86 builds...

(I'm guessing you posted at the same time as when I made my edit farther explaining how and why putting Linux onto older and/or lower-end hardware is "a thing")

User avatar
R3n_001
Moonbather
Moonbather
Posts: 66
Joined: 2019-05-25, 20:39

Re: Defaulting to AVX for 64-bit architectures?

Unread post by R3n_001 » 2024-03-18, 20:12

__NM64__ wrote:
2024-03-18, 19:54
Linux doesn't have x86 builds...
That's where Windows X- oh wait.

User avatar
Drugwash
Fanatic
Fanatic
Posts: 218
Joined: 2016-01-28, 12:08
Location: Ploieşti, Romania

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Drugwash » 2024-03-18, 20:23

__NM64__ wrote:
2024-03-18, 19:54
Linux doesn't have x86 builds...
Actually... it does. Still. Check out Q4OS Aquarius with Trinity desktop here.

It's based on Debian, so there's still Debian 32bit out there. For how long I don't know.

But I needed an alternative for a friend of mine which only has an ancient Athlon XP 2600+ machine with 3GB of DDR (2GB added by me) and who bought a modern printer that wouldn't work in his old XP, so I installed Q4OS in dual-boot and it works acceptably. Needed a light browser and found an unofficial rebranded Pale Moon that was built for non-SSE2 CPUs (like that Athlon).
He doesn't have an Internet connection but when I go there I might need certain info from the web (using my tethered phone) so it's good to have a light browser at hand.
Of course such SSE-only builds would be just too much, but apparently SSE2 systems are quite a few out there. So if anyone could take on the task of keeping such builds alive it would be great for many of us.

User avatar
Pentium4User
Board Warrior
Board Warrior
Posts: 1138
Joined: 2019-04-24, 09:38

Re: Defaulting to AVX for 64-bit architectures?

Unread post by Pentium4User » 2024-03-18, 20:28

R3n_001 wrote:
2024-03-18, 19:53
This is where the x86 build comes in. It will still be SSE2, and good enough for these lower end systems.
They exist for Windows (only needed for those people who rely on old NPAPI plugins that are x86 only).
The official Linux x86 builds were discontinued, what I understand because the amount of x86-only CPUs nowadays is very, very low compared to non-AVX CPUs, especially made by Intel.

There is a need for amd64 non-AVX builds. If nobody else wants to provide them, I might volunteer.
The profile picture shows my Maico EC30 E ceiling fan.