Defaulting to AVX for 64-bit architectures?
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.
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.
-
- Keeps coming back
- Posts: 786
- Joined: 2020-11-03, 06:47
- Location: Philippines
Re: Defaulting to AVX for 64-bit architectures?
I don't have any strong opinions on this. When I switched to Pale Moon fulltime my hardware is already supporting AVX2. So I don't mind if the minimum for 64-bit became AVX.
I'm not sure if leapfrogging Mozilla and Google on the minimum instruction set requirement is a good idea though. I know that Chrome now requires SSE3, and Firefox is still stuck in SSE2 I think. However there is precedent where Pale Moon was ahead in this front, back when good 'ol Firefox was still supporting ancient pre-SSE instruction sets and PM required SSE. In fact that was literally one of the reasons why Pale Moon became a thing in the first place if I got my history right.
So switching to AVX would be kinda like returning back to our roots!
I'm not sure if leapfrogging Mozilla and Google on the minimum instruction set requirement is a good idea though. I know that Chrome now requires SSE3, and Firefox is still stuck in SSE2 I think. However there is precedent where Pale Moon was ahead in this front, back when good 'ol Firefox was still supporting ancient pre-SSE instruction sets and PM required SSE. In fact that was literally one of the reasons why Pale Moon became a thing in the first place if I got my history right.
So switching to AVX would be kinda like returning back to our roots!
merry mimas
XUL add-ons developer. You can find a list of add-ons I manage at http://rw.rs/~job/software.html.
Mima avatar by 絵虎. Pixiv post: https://www.pixiv.net/en/artworks/15431817
-
- Lunatic
- Posts: 364
- Joined: 2023-06-28, 22:43
- Location: Australia
Re: Defaulting to AVX for 64-bit architectures?
I am happy to accept that my representation of a Pale Moon user missed the mark, and I appreciate the description of the effective and efficient use of your computer!Eduardolucas1 wrote: ↑2024-03-05, 04:04I do use them on my "old" computer, of which i happily spoke about in earlier pages, without hardware acceleration in anything as my gpu is broken on my OS due to bitrot. I use discord daily and chat daily on it. I see instagram shorts on it, use onedrive. I could use whatsapp on it (used when whatsapp was not hosting its own database and was compatible with pale moon), used tiktok, tinder. I even ordered uber rides and food, web shopping of all kinds. On a Pentium D with 4GB of ram. I watch 720p and 1080 video on it, even 720p60fps. I even used magdown to download torrents, its actually my preference when torrents load.
Mathematically that makes total sense.
Laptop 1: Windows 10 64-bit, i7 @ 2.80GHz, 16GB, NVIDIA GeForce MX450.
Laptop 2: Windows 10 32-bit, Atom Z3735F @ 1.33GHz, 2GB, Intel HD Graphics.
Laptop 2: Windows 10 32-bit, Atom Z3735F @ 1.33GHz, 2GB, Intel HD Graphics.
-
- Lunatic
- Posts: 364
- Joined: 2023-06-28, 22:43
- Location: Australia
Re: Defaulting to AVX for 64-bit architectures?
Indeed!jobbautista9 wrote: ↑2024-03-06, 01:30So switching to AVX would be kinda like returning back to our roots!
Courtesy of the Wayback Machine from 2009, Pale Moon uncompromisingly did not support any CPU ten and more years old.
Laptop 1: Windows 10 64-bit, i7 @ 2.80GHz, 16GB, NVIDIA GeForce MX450.
Laptop 2: Windows 10 32-bit, Atom Z3735F @ 1.33GHz, 2GB, Intel HD Graphics.
Laptop 2: Windows 10 32-bit, Atom Z3735F @ 1.33GHz, 2GB, Intel HD Graphics.
-
- Pale Moon guru
- Posts: 35650
- Joined: 2011-08-28, 17:27
- Location: Motala, SE
Re: Defaulting to AVX for 64-bit architectures?
First off, this would be reflecting the respondents here on the user base which I'm pretty sure is incorrect.CrimsonAkiha wrote: ↑2024-03-06, 00:09It would still be a bad idea to inflict these issues on an entire third of your user-base, don't you think?
I'm sorry, but in what way should I consider the situation where people don't actually contribute to upstream (and haven't done so, so far) as an incentive to go out of my way to cater to them? Because they "might do so in the future"? I don't really put value in empty promises, sorry.CrimsonAkiha wrote: ↑2024-03-06, 00:09possibly some of which might actually have the skills to actually fix the performance issues with the browser (or have already fixed them privately...), but are rapidly losing interest in contributing upstream
Aside from that, people with those skills can easily make their own builds to tackle those performance issues they might still have regardless, which would benefit everyone, if they care to start contributing. People who have been involved know that I am happy to make adjustments to targets and code to cater to people who have given back.
Yes it does, but not the message you might think. It sends the message that we are sticking to our original project vision to provide a browser that is efficient in its operation for its users. People have over the years attributed things to Pale Moon that were side-effects of that (light-weight, etc.) but one of the main reasons for it to come into existence has always been to use the capabilities of the hardware it runs on. And once again, that is a Pale Moon decision only; any forks or other applications can do whatever they please in that respect.CrimsonAkiha wrote: ↑2024-03-06, 00:09I don't expect switching the build flags to AVX/AVX2 to make anyone's life outright impossible, but it certainly sends a message to your users.
I'd already given that some thought and we could build in a feature detection bit to send along with a request for automatic updates to be logged as a statistic. Completely hands-free for the user and therefore with minimal skew to respondents and data.
You can put that tinfoil hat away. I was completely unaware of this.CrimsonAkiha wrote: ↑2024-03-06, 00:09It's also weird that everyone is making decisions like this right around the time I think Intel's patents on SSE2/SSE3 are expiring. Something in the air?
On top of that, we're not hardware manufacturers so I don't see how this would impact us at all.
And we've already passed that now. And I'm sorry but I do not take ultra-low-power totally-stripped Celerons into account when looking at generational progression of computing hardware.
"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
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite
-
- Hobby Astronomer
- Posts: 29
- Joined: 2024-02-05, 03:15
Re: Defaulting to AVX for 64-bit architectures?
If there were real objective differences to the use of a web browser on legacy 64-bit hardware, i would certainly agree. Not possibly the case as with the reports of many users here. And to consider all of those just a representation of the forum when even the companies behind firefox and chrome consider them a userbase sounds a lot questionable. But i will not dispute these things. It seems that the most adequate way to solve the problem is to drop out.
-
- Contributing developer
- Posts: 1537
- Joined: 2018-10-28, 19:56
- Location: Georgia
Re: Defaulting to AVX for 64-bit architectures?
Well, can you tell me what hardware you have exactly?Eduardolucas1 wrote: ↑2024-03-06, 15:46If there were real objective differences to the use of a web browser on legacy 64-bit hardware, i would certainly agree. Not possibly the case as with the reports of many users here. And to consider all of those just a representation of the forum when even the companies behind firefox and chrome consider them a userbase sounds a lot questionable. But i will not dispute these things. It seems that the most adequate way to solve the problem is to drop out.
I really would prefer that you not give up on the project just yet. There's still a very real possibility someone will produce SSE2 builds, and I don't think this is going to happen with the next release... it might well be a Pale Moon 34 thing considering the level of disruption it would cause to people on older hardware.
Also, I am the kind of person who can't reliably follow release schedules, but could also build a random unbranded build of Pale Moon quickly and upload it to a dropbox upon request if someone wants it and I see a private message in my box or something saying they can't use the official build because they're on an Athlon 64 or something. So that is, if someone tells me to do it and makes me feel bad they don't have a build to use, and I'm around, I can do it, but I'm not really disciplined/consistent enough that people can really count on me to build when the release window comes without being told every time. My lack of self-discipline when it comes to keeping up with release windows is the main reason I am not volunteering myself to be the main person doing SSE2 builds... I can barely keep up with doing Epyrus releases and SunOS builds as it is, especially with school.
I think this might be a good time to put out a community-wide call to see if we can find someone willing to provide the SSE2 builds when this happens, because the people on older hardware are already freaking out and threatening to leave without seeing what happens or whether we can all find a way to make this work.
"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
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
Don't set the minimal requirements too much or you will end with requiring top tier gaming PCs.. for a browser. Most commodity hardware for now do support SSE4, but not AVX.
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
x86 build is good for better compatibility with some plugins...Pentium4User wrote: ↑2024-03-03, 06:48What about providing SSE2/3 builds and AVX builds for amd64 and dropping x86?
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
Don't expect that many people will rush and upgrade their hardware to one that supports Win11 though. In unhacked state, there are some rough system requirements, for example, TPM.Pentium4User wrote: ↑2024-03-04, 09:48With Win 10 reaching EoL in 2025, the only reason are the plugins because Win 11 doesn't run on x86-only machines.
Although, many x64 CPUs without AVX are still in use and still sold.
-
- Hobby Astronomer
- Posts: 29
- Joined: 2024-02-05, 03:15
Re: Defaulting to AVX for 64-bit architectures?
I run a pentium D 935 with 4gb of ram on SunOS/Illumos. Honestly if you continue providing SSE2 builds for Illumos or someone would provide, it would be nice. I have no idea if the distribution i use will keep up distributing them. And honestly i would love to have my own machine to build by stuff someday but these machines are very expensive in my country.athenian200 wrote: ↑2024-03-06, 17:08Well, can you tell me what hardware you have exactly?Eduardolucas1 wrote: ↑2024-03-06, 15:46If there were real objective differences to the use of a web browser on legacy 64-bit hardware, i would certainly agree. Not possibly the case as with the reports of many users here. And to consider all of those just a representation of the forum when even the companies behind firefox and chrome consider them a userbase sounds a lot questionable. But i will not dispute these things. It seems that the most adequate way to solve the problem is to drop out.
I really would prefer that you not give up on the project just yet. There's still a very real possibility someone will produce SSE2 builds, and I don't think this is going to happen with the next release... it might well be a Pale Moon 34 thing considering the level of disruption it would cause to people on older hardware.
Also, I am the kind of person who can't reliably follow release schedules, but could also build a random unbranded build of Pale Moon quickly and upload it to a dropbox upon request if someone wants it and I see a private message in my box or something saying they can't use the official build because they're on an Athlon 64 or something. So that is, if someone tells me to do it and makes me feel bad they don't have a build to use, and I'm around, I can do it, but I'm not really disciplined/consistent enough that people can really count on me to build when the release window comes without being told every time. My lack of self-discipline when it comes to keeping up with release windows is the main reason I am not volunteering myself to be the main person doing SSE2 builds... I can barely keep up with doing Epyrus releases and SunOS builds as it is, especially with school.
I think this might be a good time to put out a community-wide call to see if we can find someone willing to provide the SSE2 builds when this happens, because the people on older hardware are already freaking out and threatening to leave without seeing what happens or whether we can all find a way to make this work.
-
- Moongazer
- Posts: 8
- Joined: 2021-04-03, 05:01
Re: Defaulting to AVX for 64-bit architectures?
To put the timeline into perspective, this would be like saying binaries provided in 2010 should still work on pre-MMX CPUs (CPUs with MMX originally released in 1997). In 2009, Pale Moon not only required MMX, but also SSE and SSE2. Maybe the uptake of AVX hasn't been as fast as MMX and SSE among processors, but it's still a large time gap.
In either case, no one's saying Pale Moon as a project will require AVX on x86-64 builds. Just the premade binaries on this site would, but other people can make and distribute binaries built without AVX for older/weaker hardware.
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
Well, a Core I7-860 still runs pretty good...
It could be at least 16 GB.
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
You know, rapid hardware evolution ended with reaching maximum frequency per core and introduction of multi-core processors. And AVX still have little use now except mining or some latest games.ChrisCat wrote: ↑2024-03-06, 19:12To put the timeline into perspective, this would be like saying binaries provided in 2010 should still work on pre-MMX CPUs (CPUs with MMX originally released in 1997). In 2009, Pale Moon not only required MMX, but also SSE and SSE2. Maybe the uptake of AVX hasn't been as fast as MMX and SSE among processors, but it's still a large time gap.
-
- Moongazer
- Posts: 8
- Joined: 2021-04-03, 05:01
Re: Defaulting to AVX for 64-bit architectures?
Not really. Since hitting the frequency ceiling and moving to multi-core processors, we've seen improvements with out of order execution, pipelining, speculative execution, etc. There have also been improvements to existing SSE infrastructure (e.g. in older CPUs, unaligned SSE loads were inherently slower than aligned loads, but on newer CPUs, unaligned loads are just as fast as aligned loads as long as it doesn't cross a cacheline boundary). Clock-for-clock, newer CPUs have still been getting better. However, we are nearing the end of where these improvements come for "free". We can't expect CPUs to improve existing workloads automatically like they have been (via faster clocks, altering how it executes instructions for better throughput, or optimizing individual "hot" instructions), so applications themselves need to work harder and use what these processors offer to get the most out of them. Incidentally, this also means how to optimize is going to differ between newer and older CPUs. Even without using newer extensions, optimizing to get more out of newer CPUs will actually reduce performance in older CPUs, and optimizing to get more out of older CPUs will reduce performance in newer CPUs. Since Pale Moon is "Optimized for modern processors", older processors are going to get the short end of the stick in that regard.
https://en.wikipedia.org/wiki/Advanced_ ... plications Plenty of non-game and non-mining software uses it.
Chrome and Firefox may not require AVX, but they also use different tactics for their performance, such as loading up on threads and using more memory. Since Pale Moon tries to be efficient and light on resources (relatively speaking), it needs to look for other ways to improve performance, such as utilizing instructions that can provide notable improvements in various calculations. Pale Moon can already use AVX (it's in the aforementioned list), it's just not enabled by default for the prebuilt binaries.
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
This one ended with Spectre/Meltdown disaster.
The improvements are indeed present, but they are rather minor. Increasing number of cores (and software threads using them) gives much more performance.There have also been improvements to existing SSE infrastructure (e.g. in older CPUs, unaligned SSE loads were inherently slower than aligned loads, but on newer CPUs, unaligned loads are just as fast as aligned loads as long as it doesn't cross a cacheline boundary). Clock-for-clock, newer CPUs have still been getting better. However, we are nearing the end of where these improvements come for "free". We can't expect CPUs to improve existing workloads automatically like they have been (via faster clocks, altering how it executes instructions for better throughput, or optimizing individual "hot" instructions), so applications themselves need to work harder and use what these processors offer to get the most out of them. Incidentally, this also means how to optimize is going to differ between newer and older CPUs. Even without using newer extensions, optimizing to get more out of newer CPUs will actually reduce performance in older CPUs, and optimizing to get more out of older CPUs will reduce performance in newer CPUs. Since Pale Moon is "Optimized for modern processors", older processors are going to get the short end of the stick in that regard.
Most of them are distributed computing (it's not much different from mining) or video codecs.ChrisCat wrote: ↑2024-03-06, 22:57https://en.wikipedia.org/wiki/Advanced_ ... plications Plenty of non-game and non-mining software uses it.
I doubt there will be substantional performance improvement until that JS engine will be rewritten from scratch.Chrome and Firefox may not require AVX, but they also use different tactics for their performance, such as loading up on threads and using more memory. Since Pale Moon tries to be efficient and light on resources (relatively speaking), it needs to look for other ways to improve performance, such as utilizing instructions that can provide notable improvements in various calculations. Pale Moon can already use AVX (it's in the aforementioned list), it's just not enabled by default for the prebuilt binaries.
-
- Contributing developer
- Posts: 1537
- Joined: 2018-10-28, 19:56
- Location: Georgia
Re: Defaulting to AVX for 64-bit architectures?
Not for Pale Moon it doesn't, Pale Moon primarily benefits from improvements in single-threaded performance, such as those offered by newer instruction sets and pipeline changes, not from so called "performance improvements" that rely entirely on throwing more cores at the problem and having more parallelism. Pale Moon is not a server-style workload that massively benefits from more cores. Are you really suggesting that ordinary programmers with no serious CompSci background, are supposed to focus on optimizing for these awful multi-core offerings with barely any single-thread performance improvements, that basically take a Computer Science degree specializing in optimization and parallelism to use properly? Then basically no one can be a programmer anymore unless they have 10+ years of school and work for a big organization like Google, because the level of parallelism you are asking us to leverage here is hard, and makes code unreadable and unpredictable.
Once again, there are not that many people in the world who could rewrite a JS engine from scratch. Why do you keep proposing all these unrealistic things to improve performance that it should be fairly obvious cannot be done, at least not by us?I doubt there will be substantional performance improvement until that JS engine will be rewritten from scratch.
"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
-
- Hobby Astronomer
- Posts: 29
- Joined: 2024-02-05, 03:15
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
The point is, it's just not worth losing backward compatibility by gaining minor performance. As for JS engine.. Sadly, I forced to use some Chromium for most modern "web-applications" like Youtube, Reddit, Facebook, and recompiling Pale Moon using AVX will definitely not solve this particular problem.athenian200 wrote: ↑2024-03-06, 23:36Once again, there are not that many people in the world who could rewrite a JS engine from scratch. Why do you keep proposing all these unrealistic things to improve performance that it should be fairly obvious cannot be done, at least not by us?
-
- Moon lover
- Posts: 95
- Joined: 2020-05-01, 13:16
Re: Defaulting to AVX for 64-bit architectures?
I know, but unfortunately, current engine looks rather doomed.Eduardolucas1 wrote: ↑2024-03-06, 23:41This would be an ungodly nightmare that do not wish any small team of humans on earth to experience.
-
- Hobby Astronomer
- Posts: 29
- Joined: 2024-02-05, 03:15
Re: Defaulting to AVX for 64-bit architectures?
I will preemptively say i`m not exactly going to say this in a way that has anything to do with the thread itself, but, would that not require a large team of multiple hard forks to work on? I could imagine the only way would be to get the people of seamonkey, of all PM forks, onboard, which is extremely hard, and even like that it would be still a very difficult task. As i said in this whole thread, the experience of a slow JS engine is not something i particularly notice on a netburst CPU, but, i do see differences tied to OS used, GUI behind the scenes, toolkit, et cetera, in multiple OSes i tested. My ryzen 5 3500u laptop sometimes is slower than my pentium D 935 by running windows 11 on some web pages instead of the pentium D advantage of running illumos. Could looking at these combinations not help on getting to know where is the bottleneck that slows down things on some computers?Massacre wrote: ↑2024-03-06, 23:47I know, but unfortunately, current engine looks rather doomed.Eduardolucas1 wrote: ↑2024-03-06, 23:41This would be an ungodly nightmare that do not wish any small team of humans on earth to experience.
I`m not saying pale moon may not have performance issues. It has made incredibly massive strides since pale moon 28 and 29 and those who were at the time know how rough it was. But it may not be as bad as some say. There are a lot of tricks that firefox and chromium do behind the scenes to get its insane multi-core performance, including a lot of processes and context switches wasting cpu cycles. I would rather use pale moon forever than to have a background task such as compression, a very large reordering of files in my directory tree local filesystem, or compilation being harmed by ungoogled chromium spamming up context switches and IPC overhead.
Last edited by Eduardolucas1 on 2024-03-07, 00:05, edited 2 times in total.