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

Eduardolucas1
Apollo supporter
Apollo supporter
Posts: 43
Joined: 2024-02-05, 03:15

Re: Defaulting to AVX for 64-bit architectures?

Post by Eduardolucas1 » 2024-03-02, 22:53

Moonchild wrote:
2024-03-02, 22:37
Eduardolucas1 wrote:
2024-03-02, 22:06
I`m one of the people who still actively run Pale Moon on SSE2 and 3 computers which are 64-bit. So i would see targeting an AVX-only requirement to be a little bit extreme when even the corporate browsers only require SSE3 (chromium) and SSE2 (Mozilla).
So how old are those SSE2 and 3 computers which are 64-bit? Wouldn't you think it'd be a little bit extreme if we keep targeting literally ancient hardware while leaving a lot of performance on the table for the other 95% (or maybe more) of the users?

I would not be against a default AVX switch by itself. But would be a compromise solution where there is possibility to offer SSE3 builds or to build to SSE3? It sounds like it would not be possible. This sounds like a concern for those who us who are on 64-bit computers which are perfectly capable to browse on without severe performance degradation. I mean, which kinds of CPUs don`t run well pale moon? i think those with SSE2 only are the most possible cases, usually 32-bit athlon 64 derived CPUs with small cores. Pentium 4 CPUs have big cores and big caches, even the 32-bit ones. Opterons do as well (I`m on a pentium D which i multi-tab browse daily as a daily driver)

User avatar
billmcct
Board Warrior
Board Warrior
Posts: 1070
Joined: 2012-09-04, 15:19
Location: Union City Georgia USA

Re: Defaulting to AVX for 64-bit architectures?

Post by billmcct » 2024-03-02, 23:05

Moonchild wrote:
2024-03-02, 22:37
All Intel Core i3/5/7 CPUs should support AVX, according to the information I have.

32-bit wouldn't be impacted. This is only for 64-bit versions.
According to "Intel Processor Identification Utility" and CPU-Z it doesn't support AVX.
I am aware that 32-bit is not impacted.
According to Intel the only processors that support AVX2 is "Intel i3/5/7/9" 14,xxx and 14,xxxx and higher.
--------------------------------------------------------------------------------------------------------------
Dell Precision 15 7550
Windows 10 Pro. 22H2 19045.5965
Xeon W-10885M
64 GB DDR4 ECC memory (128 GB max)
2 TB Samsung 9100 Pro main M2 SSD
1 TB Intel storage M2 SSD (very very slow)
500 GB Corsair T500 storage M2 SSD (6 TB max)
Intel onboard GPU 1080p
Quadro RTX 5000 Max-Q GPU 4K

Pale Moon 33.9.x x64 AVX2 build

The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

User avatar
fatboy
Astronaut
Astronaut
Posts: 574
Joined: 2017-12-19, 08:03
Location: Canada

Re: Defaulting to AVX for 64-bit architectures?

Post by fatboy » 2024-03-03, 00:21

I am all for performance, I have one laptop with an Intel 8th gen CPU, and my oldest machine has a Intel 3rd Gen CPU, when I run "lscpu" I get this under Flags:

Code: Select all

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 pclmulqdq dtes64 moni
                        tor ds_cpl est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c lahf_lm cpuid_fault 
                        epb pti ssbd ibrs ibpb stibp fsgsbase smep erms xsaveopt dtherm arat pln pts md_clear flush_l1d
Seems like AVX is supported, which is good news :D
Systemd Free - MX Linux, Antix Linux & Artix Linux

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

Re: Defaulting to AVX for 64-bit architectures?

Post by Moonchild » 2024-03-03, 00:32

billmcct wrote:
2024-03-02, 23:05
According to "Intel Processor Identification Utility" and CPU-Z it doesn't support AVX.
Can you take a screenshot of CPU-Z and post it? Because if it impacts a much wider range, then I'd like to know exactly what ranges I need to keep an eye on.
"There is no point in arguing with an idiot, because then you're both idiots." - Anonymous
"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
billmcct
Board Warrior
Board Warrior
Posts: 1070
Joined: 2012-09-04, 15:19
Location: Union City Georgia USA

Re: Defaulting to AVX for 64-bit architectures?

Post by billmcct » 2024-03-03, 00:41

Moonchild wrote:
2024-03-02, 22:37
All Intel Core i3/5/7 CPUs should support AVX, according to the information I have.
Your right partially, all second gen and up Intels support AVX, mine are first gen M350 and M370.

Intel® Core™ i3-2310E Processor released Q1' 2011 2 core

This is the first i3 second generation released.
--------------------------------------------------------------------------------------------------------------
Dell Precision 15 7550
Windows 10 Pro. 22H2 19045.5965
Xeon W-10885M
64 GB DDR4 ECC memory (128 GB max)
2 TB Samsung 9100 Pro main M2 SSD
1 TB Intel storage M2 SSD (very very slow)
500 GB Corsair T500 storage M2 SSD (6 TB max)
Intel onboard GPU 1080p
Quadro RTX 5000 Max-Q GPU 4K

Pale Moon 33.9.x x64 AVX2 build

The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

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

Re: Defaulting to AVX for 64-bit architectures?

Post by Moonchild » 2024-03-03, 00:47

First gen mobile from 2011. Okay. :|
"There is no point in arguing with an idiot, because then you're both idiots." - Anonymous
"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
Pentium4User
Board Warrior
Board Warrior
Posts: 1329
Joined: 2019-04-24, 09:38

Re: Defaulting to AVX for 64-bit architectures?

Post by Pentium4User » 2024-03-03, 06:48

What about providing SSE2/3 builds and AVX builds for amd64 and dropping x86?

The amount of 32 bit only CPUs use nowadays is much, much smaller than the amount of non-AVX CPUs.
There were some mobile Intel T2xxx and some Atom, but everything else was amd64, so 99% of computers use nowadays don't need the x86 builds.
The profile picture shows my Maico EC30 E ceiling fan.

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

Re: Defaulting to AVX for 64-bit architectures?

Post by athenian200 » 2024-03-03, 07:39

Pentium4User wrote:
2024-03-03, 06:48
What about providing SSE2/3 builds and AVX builds for amd64 and dropping x86?

The amount of 32 bit only CPUs use nowadays is much, much smaller than the amount of non-AVX CPUs.
There were some mobile Intel T2xxx and some Atom, but everything else was amd64, so 99% of computers use nowadays don't need the x86 builds.
We already dropped x86 for Linux, and we keep it around for Windows because of plugin compatibility. The big problem here, is that if we provide more than one configuration here, we would wind up with four Linux builds again... GTK2 SSE2, GTK2 AVX, GTK3 SSE2, and GTK3 AVX. I believe we polled the Linux users and asked if they wanted GTK2 or 32-bit support more at sone point in the past, and they picked GTK2. And I am pretty sure they would want GTK2 over SSE2 if they had to pick.

It looks like the community is pretty evenly split on this, too. There's about a third that want to just move to AVX2, a third that think AVX1 is a reasonable middle ground, and another third that don't want to move from SSE2 as the baseline.
"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
Pentium4User
Board Warrior
Board Warrior
Posts: 1329
Joined: 2019-04-24, 09:38

Re: Defaulting to AVX for 64-bit architectures?

Post by Pentium4User » 2024-03-03, 07:52

What about restricting that even futher?
E.g. providing amd64 Linux SSE2 and GTK3 AVX?
The profile picture shows my Maico EC30 E ceiling fan.

Lucio Chiappetti
Keeps coming back
Keeps coming back
Posts: 817
Joined: 2014-09-01, 15:11
Location: Milan Italy

Re: Defaulting to AVX for 64-bit architectures?

Post by Lucio Chiappetti » 2024-03-03, 09:33

Moonchild wrote:
2024-03-02, 22:37
Lucio Chiappetti wrote:
2024-03-02, 22:28
The poll lacks an answer: "I haven't (almost) the faintest idea what is all about" :D :oops:
"Just show me the results" :P
Seriously though if you want to know what your CPU supports, grab CPU-Z and have a look.
I doubt this CPU-Z will work on Linux, but I got this with inxi

Code: Select all

inxi -x -C 
CPU:
  Topology: 8-Core model: Intel Core i7-10700 bits: 64 type: MT MCP 
  arch: N/A L2 cache: 16.0 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 92796 
  Speed: 900 MHz min/max: 800/4800 MHz Core speeds (MHz): 1: 900 2: 900 
  3: 900 4: 900 5: 900 6: 900 7: 901 8: 900 9: 900 10: 900 11: 900 12: 900 
  13: 900 14: 900 15: 900 16: 900 
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)

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

Re: Defaulting to AVX for 64-bit architectures?

Post by athenian200 » 2024-03-03, 10:03

Lucio Chiappetti wrote:
2024-03-03, 09:33
I doubt this CPU-Z will work on Linux, but I got this with inxi

Code: Select all

inxi -x -C 
CPU:
  Topology: 8-Core model: Intel Core i7-10700 bits: 64 type: MT MCP 
  arch: N/A L2 cache: 16.0 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 92796 
  Speed: 900 MHz min/max: 800/4800 MHz Core speeds (MHz): 1: 900 2: 900 
  3: 900 4: 900 5: 900 6: 900 7: 901 8: 900 9: 900 10: 900 11: 900 12: 900 
  13: 900 14: 900 15: 900 16: 900 
Well, I can tell you that the i7-10700 is a Comet Lake CPU, and has support for AVX2... It's several generations newer than Haswell, which is the baseline for that. You probably got that from the readout, but I could have told you that just knowing what chip it is.
"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
Night Wing
Knows the dark side
Knows the dark side
Posts: 5536
Joined: 2011-10-03, 10:19
Location: Piney Woods of Southeast Texas, USA

Re: Defaulting to AVX for 64-bit architectures?

Post by Night Wing » 2024-03-03, 15:41

This topic thread is "way over my head" knowledge wise. But I want to chime in here and maybe what I am going to post might shed some light on some "old computers" so don't shoot the messenger. And I have not participated in the poll to cast a vote either.

Right now I am typing this post on my oldest laptop. It is a 14" HP Pavilion dv4-5113cl. It originally came with 64 bit Windows 7 Home Premium. It has an Intel i5 processor in it with a processor speed of 2.50 and 16 GB of memory.

Since I dumped Windows, this laptop has basically been running three linux distros which are: 64 bit Linux Mint, 64 bit MX Linux and 64 bit Debian using 64 bit linux Pale Moon in GTK2 builds from Travis (trava90). And linux Pale Moon is "NOT" installed in any of the three linux distros I presently use.

Below are this laptop's specs running 64 bit MX Linux 23.2 (Libretto) Xfce with 64 bit linux Pale Moon (33.0.1) so this should help the people who know way more than I do in this discussion.

Code: Select all

[CODE]System:
  Kernel: 6.1.0-18-amd64 [6.1.76-1] arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1.0-18-amd64 root=UUID=<filter> ro quiet splash
  Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm v: 4.18.0 vt: 7
    dm: LightDM v: 1.26.0 Distro: MX-23.2_x64 Libretto October 15  2023 base: Debian GNU/Linux 12
    (bookworm)
Machine:
  Type: Laptop System: Hewlett-Packard product: HP Pavilion dv4 Notebook PC
    v: 078C110014245110000620100 serial: <superuser required> Chassis: type: 10
    serial: <superuser required>
  Mobo: Hewlett-Packard model: 1836 v: 53.3A serial: <superuser required> UEFI-[Legacy]: Insyde
    v: F.15 date: 05/02/2012
CPU:
  Info: model: Intel Core i5-3210M bits: 64 type: MT MCP arch: Ivy Bridge gen: core 3 level: v2
    built: 2012-15 process: Intel 22nm family: 6 model-id: 0x3A (58) stepping: 9 microcode: 0x21
  Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache: L1: 128 KiB
    desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 1497 high: 1577 min/max: 1200/3100 scaling: driver: intel_cpufreq
    governor: ondemand cores: 1: 1574 2: 1577 3: 1460 4: 1378 bogomips: 19955
  Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: KVM: VMX unsupported
  Type: l1tf mitigation: PTE Inversion
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data status: Unknown: No mitigations
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB
    filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Vulnerable: No microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics vendor: Hewlett-Packard driver: i915 v: kernel
    arch: Gen-7 process: Intel 22nm built: 2012-13 ports: active: LVDS-1 empty: DP-1,HDMI-A-1,VGA-1
    bus-ID: 00:02.0 chip-ID: 8086:0166 class-ID: 0300
  Device-2: Suyin HP Truevision HD type: USB driver: uvcvideo bus-ID: 3-1.6:3 chip-ID: 064e:c334
    class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 1.21.1.7 compositor: xfwm v: 4.18.0 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99") s-diag: 414mm (16.31")
  Monitor-1: LVDS-1 model: ChiMei InnoLux 0x1475 built: 2011 res: 1366x768 hz: 60 dpi: 112
    gamma: 1.2 size: 309x174mm (12.17x6.85") diag: 355mm (14") ratio: 16:9 modes: 1366x768
  API: OpenGL v: 4.2 Mesa 22.3.6 renderer: Mesa Intel HD Graphics 4000 (IVB GT2)
    direct-render: Yes
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio vendor: Hewlett-Packard 7
    driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1e20 class-ID: 0403
  API: ALSA v: k6.1.0-18-amd64 status: kernel-api tools: alsamixer,amixer
  Server-1: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Centrino Wireless-N 2230 driver: iwlwifi v: kernel modules: wl pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:0887 class-ID: 0280
  IF: wlan0 state: up mac: <filter>
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Hewlett-Packard
    driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: 2000 bus-ID: 04:00.0
    chip-ID: 10ec:8168 class-ID: 0200
  IF: eth0 state: down mac: <filter>
RAID:
  Hardware-1: Intel 82801 Mobile SATA Controller [RAID mode] driver: ahci v: 3.0 port: 3060
    bus-ID: 00:1f.2 chip-ID: 8086:282a rev: N/A class-ID: 0104
Drives:
  Local Storage: total: 465.76 GiB used: 14.08 GiB (3.0%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 870 EVO 500GB size: 465.76 GiB
    block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 2B6Q
    scheme: MBR
Partition:
  ID-1: / raw-size: 465.76 GiB size: 457.38 GiB (98.20%) used: 14.08 GiB (3.1%) fs: ext4
    dev: /dev/sda1 maj-min: 8:1
Swap:
  Kernel: swappiness: 15 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: file size: 4 GiB used: 0 KiB (0.0%) priority: -2 file: /swap/swap
Sensors:
  System Temperatures: cpu: 46.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Repos:
  Packages: pm: dpkg pkgs: 2101 libs: 1063 tools: apt,apt-get,aptitude,nala,synaptic pm: rpm
    pkgs: 0 pm: flatpak pkgs: 0
  No active apt repos in: /etc/apt/sources.list
  Active apt repos in: /etc/apt/sources.list.d/debian-stable-updates.list
    1: deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/debian.list
    1: deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
    2: deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/mx.list
    1: deb http://mirrors.rit.edu/mxlinux/mx-packages/mx/repo/ bookworm main non-free
Info:
  Processes: 204 Uptime: 31m wakeups: 2 Memory: 15.52 GiB used: 1.79 GiB (11.5%) Init: SysVinit
  v: 3.06 runlevel: 5 default: graphical tool: systemctl Compilers: gcc: 12.2.0 alt: 12
  Client: shell wrapper v: 5.2.15-release inxi: 3.3.26
Boot Mode: BIOS (legacy, CSM, MBR)
I must say if this computer was no longer able to run 64 linux Pale Moon for the changes developers will finally decide on, then I would "not" dump this laptop since it runs any linux distro quickly and not given me any problems from the distros I have used in the past.

Since most of the linux distros I have experimented with usually have Firefox as their default browser, with no linux Pale Moon, then I would use 64 bit linux Waterfox as my default browser with linux Firefox as the backup browser.

And linux Waterfox will "NOT" be installed either in any linux distro I play around with on this 14" HP dv4-5113cl laptop.
Last edited by Night Wing on 2024-03-03, 15:56, edited 2 times in total.
MX Linux 23.6 (Libretto) Xfce w/Pale Moon, Waterfox, Firefox
Linux Debian 13.1 (Trixie) Xfce w/Pale Moon, Waterfox, Firefox

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

Re: Defaulting to AVX for 64-bit architectures?

Post by Pentium4User » 2024-03-03, 15:45

Your CPU supports AVX, but not AVX2.
The profile picture shows my Maico EC30 E ceiling fan.

User avatar
Night Wing
Knows the dark side
Knows the dark side
Posts: 5536
Joined: 2011-10-03, 10:19
Location: Piney Woods of Southeast Texas, USA

Re: Defaulting to AVX for 64-bit architectures?

Post by Night Wing » 2024-03-03, 16:00

Pentium4User wrote:
2024-03-03, 15:45
Your CPU supports AVX, but not AVX2.
I won't vote in the poll right now, but if my CPU does support AVX, then before this poll closes, I will cast my vote.
MX Linux 23.6 (Libretto) Xfce w/Pale Moon, Waterfox, Firefox
Linux Debian 13.1 (Trixie) Xfce w/Pale Moon, Waterfox, Firefox

User avatar
billmcct
Board Warrior
Board Warrior
Posts: 1070
Joined: 2012-09-04, 15:19
Location: Union City Georgia USA

Re: Defaulting to AVX for 64-bit architectures?

Post by billmcct » 2024-03-03, 17:34

According to this page:
https://ark.intel.com/content/www/us/en ... sions=3531

All 2nd generation and up to 14th gen "Core and Xeon and some Pentiums and some Celeron" support Avx.

All 4th generation and up to 14th gen "Core and Xeon and all Pentium Silver and Gold
and others with Prefixes "N" "U" and "G"
support AVX2. Such as "Intel Processor U200".

2nd gen started around Feb 2011.
4th gen started around May 2014.

The only thing supporting AVX512 are Intel Xeon server chips 2023 and 2024.

Any chip supporting AVX2 is backward compatible which means also including AVX.
--------------------------------------------------------------------------------------------------------------
Dell Precision 15 7550
Windows 10 Pro. 22H2 19045.5965
Xeon W-10885M
64 GB DDR4 ECC memory (128 GB max)
2 TB Samsung 9100 Pro main M2 SSD
1 TB Intel storage M2 SSD (very very slow)
500 GB Corsair T500 storage M2 SSD (6 TB max)
Intel onboard GPU 1080p
Quadro RTX 5000 Max-Q GPU 4K

Pale Moon 33.9.x x64 AVX2 build

The difference between the Impossible and the Possible lies in a man's Determination.
Tommy Lasorda

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

Re: Defaulting to AVX for 64-bit architectures?

Post by athenian200 » 2024-03-03, 18:24

Night Wing wrote:
2024-03-03, 15:41
This topic thread is "way over my head" knowledge wise. But I want to chime in here and maybe what I am going to post might shed some light on some "old computers" so don't shoot the messenger. And I have not participated in the poll to cast a vote either.

Right now I am typing this post on my oldest laptop. It is a 14" HP Pavilion dv4-5113cl. It originally came with 64 bit Windows 7 Home Premium. It has an Intel i5 processor in it with a processor speed of 2.50 and 16 GB of memory.
The CPU in your machine is Ivy Bridge, so you are in the same boat as me... you support AVX, but not AVX2. Remember my post, where I said that if MC moves to AVX2, that would mean I have to rebuild Pale Moon for my old machine every time he releases a new version?

Well, the version I would be building for my old PC should work on your laptop as well.
Off-topic:
Note: I'm painfully aware of all this, because I am still paying the price for not waiting for Haswell when I built this PC over a decade later. I wanted PCI-E 3.0 early, and some of the chipset features of Z77 appealed to me. Everyone warned me and told me to wait for Haswell, and I didn't because I assumed that by the time I needed to worry about the new instructions sets in Haswell being a major difference between Haswell and Ivy Bridge, I would have retired this machine. Well... here am I now, kicking myself for not waiting for Haswell because this machine is still running well enough that I can't justify getting rid of it. They were right, everyone who told me not to build this machine was right... it's aging like milk thanks to x86-64-v3 defining Haswell as the cutoff and me having one generation short of that. x86-64-v4 isn't something we have to worry about anytime soon because AVX-512 is something Intel walked back from in more recent CPUs.
"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
Basilisk-Dev
Astronaut
Astronaut
Posts: 512
Joined: 2022-03-23, 16:41
Location: Chamber of Secrets

Re: Defaulting to AVX for 64-bit architectures?

Post by Basilisk-Dev » 2024-03-03, 18:44

Ironic that you opened this topic considering I just opened a similar one for Basilisk before I saw this one.

I definitely understand that resources are limited and builds are time consuming, but my suggestion would be to consider offering both builds (this is what I intend to do with Basilisk).

Another thought that comes to mind, has there been any research to see if something older like some of the SSE/SSSE levels would offer similar performance?
Basilisk Project Owner

viewtopic.php?f=61&p=230756

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

Re: Defaulting to AVX for 64-bit architectures?

Post by Moonchild » 2024-03-03, 19:00

Basilisk-Dev wrote:
2024-03-03, 18:44
I definitely understand that resources are limited and builds are time consuming, but my suggestion would be to consider offering both builds (this is what I intend to do with Basilisk).
Nuck-TH is already offering AVX and AVX2 builds independently. The main issue is simply that developments in hardware don't stop and it'll be noticeable performance being left on the table by only targeting SSE2 (aside from those hand-crafted paths I mentioned earlier) and I want to move mainline to a newer instruction set if at all feasible.
I could certainly provide non-mainline Windows builds with a more limited instruction set in use for those that simply don't have the hardware, but those could also just run the 32-bit version, instead (which might also align better with typical use-cases for people on that kind of older hardware?).
Basilisk-Dev wrote:
2024-03-03, 18:44
has there been any research to see if something older like some of the SSE/SSSE levels would offer similar performance?
Yes, and at the time SSE3, SSSE3 and SSE4 didn't show much if any improvement (only tested on gcc, since MSVC does not offer targeting those levels explicitly)
"There is no point in arguing with an idiot, because then you're both idiots." - Anonymous
"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
athenian200
Contributing developer
Contributing developer
Posts: 1619
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Defaulting to AVX for 64-bit architectures?

Post by athenian200 » 2024-03-03, 19:16

Basilisk-Dev wrote:
2024-03-03, 18:44
Ironic that you opened this topic considering I just opened a similar one for Basilisk before I saw this one.

I definitely understand that resources are limited and builds are time consuming, but my suggestion would be to consider offering both builds (this is what I intend to do with Basilisk).
Wait, but you already support 32-bit builds for Linux, right?

Doesn't that mean you'll have to do, at minimum... 32-bit GTK2, 32-bit GTK3, 64-bit GTK2 SSE2, 64-bit GTK3 SSE2, 64-bit GTK2 AVX2, 64-bit GTK3 AVX2? So you're up to six different Linux builds now...

If you're comfortable with that, then perhaps Basilisk could target AVX2 and SSE2, while Pale Moon goes for the middle ground and just targets plain old AVX? That way, anyone who wants "bleeding edge" (by our standards anyway) AVX2 optimization can go to Basilisk, as can anyone who needs legacy support. It seems like you're a lot more comfortable doing multiple builds than we are. So we can just target AVX which is fairly mainstream, and you can support the two outliers.

It seems like perhaps we should also bring Nuck-TH in on this, see if he would be willing to trade places with MC on the SSE2 thing... then he would be doing contributed SSE2 and AVX2 builds of Pale Moon, while our official build would become the AVX build. He would still be doing two builds, just one of them would now be the legacy configuration we currently support.

It just kind of seems like multiple configurations are needed, but we can't realistically support them all officially... not really sure on any of this, just throwing ideas around to see how we could 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

User avatar
Basilisk-Dev
Astronaut
Astronaut
Posts: 512
Joined: 2022-03-23, 16:41
Location: Chamber of Secrets

Re: Defaulting to AVX for 64-bit architectures?

Post by Basilisk-Dev » 2024-03-03, 19:21

athenian200 wrote:
2024-03-03, 19:16
Wait, but you already support 32-bit builds for Linux, right?

Doesn't that mean you'll have to do, at minimum... 32-bit GTK2, 32-bit GTK3, 64-bit GTK2 SSE2, 64-bit GTK3 SSE2, 64-bit GTK2 AVX2, 64-bit GTK3 AVX2? So you're up to six different Linux builds now...
I am not releasing 32-bit builds for x86 Linux currently, but one day I will.

Right now the list is:
x86_64 GTK2
x86_64 GTK3
aarch64 GTK2
aarch64 GTK3

I plan to have:
x86-64-v3 GTK2
x86-64-v3 GTK3
x86 32-bit GTK2
x86 32-bit GTK3

Internally the build process is all automated. I run one script and it creates all builds for me. Building on my machine takes about 7 minutes plus 2-3 minutes for mach package and mach mar to run. I run a script, then come back in an hour and it's all completely built and ready to go.
Basilisk Project Owner

viewtopic.php?f=61&p=230756