thorium-mirror/docs/ABOUT_RELEASES.md

55 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2023-12-30 09:34:37 -03:00
# Explainer for Thorium releases
2023-12-30 10:20:51 -03:00
This document was created to explain __SSE__ and __AVX__, and to guide users on which
version of Thorium is appropriate to download for their machine.
2023-12-30 09:34:37 -03:00
Many users have been confused and posted issues across my repos on what option they should choose when downloading a release.
2023-12-30 10:20:51 -03:00
AVX what? SSE huh? What's the difference? Why does one work on my machine but the other doesn't ?
2023-12-30 09:34:37 -03:00
### About SIMD
2023-12-30 10:20:51 -03:00
[Since 1997](https://en.wikipedia.org/wiki/MMX_(instruction_set)), x86 CPUs have been updated with new instructions that they can execute.
Many of these increase performance because they are Single Instruction, Multiple Data ([SIMD](https://en.wikipedia.org/wiki/Single_instruction,_multiple_data)) instructions.
The first was called MMX (Multi-Media EXtensions). Then came SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVX-512, in that order.
2023-12-30 09:34:37 -03:00
2023-12-30 10:20:51 -03:00
More info on SIMD and how the optimizations work in Thorium can be found on the site > https://thorium.rocks/optimizations
However, they have to be built in (compiled in) to a program, and they are backwards, but not forwards compatible. Furthurmore, your CPU *must* support a given SIMD
2023-12-30 09:34:37 -03:00
level or else the browser will crash.
2023-12-30 10:20:51 -03:00
For example, a CPU that is capable of AVX is capable of all the SSE instructions, and so could run either an SSE3 or AVX release, but would get better
2023-12-30 09:34:37 -03:00
performance from the AVX release. However, this same CPU would *not* be able to run an AVX2 release.
2023-12-30 10:20:51 -03:00
Chromium/Chrome, and projects based on it, have required SSE3 as a minimum [since 2020](https://docs.google.com/document/d/1QUzL4MGNqX4wiLvukUwBf6FdCL35kCDoEJTm2wMkahw/edit#heading=h.7nki9mck5t64),
however, I try to make tailored/optimized releases, including:
2023-12-30 09:34:37 -03:00
2023-12-30 10:20:51 -03:00
32 bit SSE2 (restored!)
2023-12-30 09:34:37 -03:00
32 bit SSE3
2023-12-30 10:20:51 -03:00
64 bit SSE3
64 bit SSE4.1 (sometimes)
64 bit AVX
2023-12-30 09:34:37 -03:00
64 bit AVX2
2023-12-30 10:20:51 -03:00
(I stopped making SSE4.2 and AVX-512 builds)
2023-12-30 09:34:37 -03:00
2023-12-30 10:20:51 -03:00
- CPUs since 2001 including Pentium 4/Athlon and up can run the SSE2 releases.
2023-12-30 09:34:37 -03:00
2023-12-30 10:20:51 -03:00
- CPUs since 2005 including Pentium D/Opteron and up can run the SSE3 releases.
2023-12-30 09:34:37 -03:00
2023-12-30 10:20:51 -03:00
- CPUs since 2007 including Core 2 Duo/Phenom and up can run the SSE3 releases.
2023-12-30 09:34:37 -03:00
2023-12-30 10:20:51 -03:00
- CPUs since 2011 including 2nd Gen Core/Bulldozer and up can run the AVX releases.
2023-12-30 09:34:37 -03:00
2023-12-30 10:20:51 -03:00
- CPUs since 2016 including 6th Gen Core/Ryzen and up can run the AVX2 releases.
- Caveat: some lower end CPU's like Intel Atom/Celeron/Pentium or AMD Geode might not have AVX/AVX2.
2023-12-30 09:34:37 -03:00
### So which do I download ?
If you want to find out for sure what your CPU supports, you can use:
2023-12-30 10:20:51 -03:00
Windows > [CPU-Z](https://www.cpuid.com/softwares/cpu-z.html)
Linux > Use [my script](https://github.com/Alex313031/thorium/blob/main/check_simd.sh) from the repo
MacOS > Unneeded. Current Macs support AVX.