Live data from Hacker News

Please do not require AVX support for your software

pavel.network

31–40 of 54 posts

Re: Please do not require AVX support for your software

#31
post #22

"Please do not require racing slicks for your formula one cars, some of us are still racing with wooden wagon wheels and can't afford to upgrade to Bridgestone rubber tyres." The listed excuses are all in the category: "We've been doing things wrong, sometimes for a decade or more, please don't make us change our erroneous ways!" First of all, if anyone is using any kind of cloud hosting, then there is no excuse. Zer…

Ok, so MongoDB adds requirement for AVX, and then you blame anyone having non-AVX hardware about laziness? Requiring to buy new hardware to run that software? When there could be possibility to use AVX where feature exists, and not use when it does not exist? Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11? It's li…

> Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11?

How are people even finding hardware without a TPM? my random ASUS laptop from 2020 had a TPM, and Apple has been adding (custom) TPMs to all their computers since 2016. It's honestly more impressive that there are so many people without TPMs to use.

Re: Please do not require AVX support for your software

#32

"Please do not require racing slicks for your formula one cars, some of us are still racing with wooden wagon wheels and can't afford to upgrade to Bridgestone rubber tyres." The listed excuses are all in the category: "We've been doing things wrong, sometimes for a decade or more, please don't make us change our erroneous ways!" First of all, if anyone is using any kind of cloud hosting, then there is no excuse. Zer…

It’s not only about old CPUs. Intel Atom still doesn’t support AVX. Atoms are quite common on industrial controllers. For example, Tensorflow crashes with an obscure error on Atom CPUs. If you don’t support AVX at least output an error message.

Re: Please do not require AVX support for your software

#33

"Please do not require racing slicks for your formula one cars, some of us are still racing with wooden wagon wheels and can't afford to upgrade to Bridgestone rubber tyres." The listed excuses are all in the category: "We've been doing things wrong, sometimes for a decade or more, please don't make us change our erroneous ways!" First of all, if anyone is using any kind of cloud hosting, then there is no excuse. Zer…

It’s not only about old CPUs. Intel Atom still doesn’t support AVX. Atoms are quite common on industrial controllers. For example, Tensorflow crashes with an obscure error on Atom CPUs. If you don’t support AVX at least output an error message.

Recent Atom CPUs (since Gracemont) do support AVX and AVX2.

Re: Please do not require AVX support for your software

#34
post #22

Earlier quoted context omitted.

Ok, so MongoDB adds requirement for AVX, and then you blame anyone having non-AVX hardware about laziness? Requiring to buy new hardware to run that software? When there could be possibility to use AVX where feature exists, and not use when it does not exist? Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11? It's li…

> Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11? How are people even finding hardware without a TPM? my random ASUS laptop from 2020 had a TPM, and Apple has been adding (custom) TPMs to all their computers since 2016. It's honestly more impressive that there are so many people without TPMs to use.

The desktop computer I've been using since 2015 doesn't have a TPM and is still plenty fast for my needs. And probably lots of machines a fair bit newer don't have them either. Hardware from 2020 is very new.

Luckily, I have no desire to run Windows 11.

Re: Please do not require AVX support for your software

#35
post #34

Earlier quoted context omitted.

> Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11? How are people even finding hardware without a TPM? my random ASUS laptop from 2020 had a TPM, and Apple has been adding (custom) TPMs to all their computers since 2016. It's honestly more impressive that there are so many people without TPMs to use.

The desktop computer I've been using since 2015 doesn't have a TPM and is still plenty fast for my needs. And probably lots of machines a fair bit newer don't have them either. Hardware from 2020 is very new. Luckily, I have no desire to run Windows 11.

> The desktop computer I've been using since 2015 doesn't have a TPM

Yeah but it's from 2015. Windows 11 is from, like, 2021. That's over 6 years before the OS started asking for something you don't have. I think this is why people cry laziness, because it does legitimately sound that way from an outside perspective.

Re: Please do not require AVX support for your software

#36
post #22

Earlier quoted context omitted.

Ok, so MongoDB adds requirement for AVX, and then you blame anyone having non-AVX hardware about laziness? Requiring to buy new hardware to run that software? When there could be possibility to use AVX where feature exists, and not use when it does not exist? Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11? It's li…

> Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11? How are people even finding hardware without a TPM? my random ASUS laptop from 2020 had a TPM, and Apple has been adding (custom) TPMs to all their computers since 2016. It's honestly more impressive that there are so many people without TPMs to use.

I don't find it surprising at all. Many of my clients and other individuals I know are still using PCs from 2014 or before.

Hardware from that era is still very capable, especially for basic office or home usage.

Even if those computers originally ran Windows 7, or 8, or 8.1, pretty much all of the ones I'm familiar with have been upgraded to Windows 10 since then. They could probably run Windows 11 just fine, too, if it weren't for these new requirements that don't really seem all that necessary.

Being able to use Windows 11 just isn't a compelling enough reason for these kind of people and organizations to buy new hardware, and to go through the hassle of replacing PCs that are otherwise working fine and have been for nearly a decade or longer.

Re: Please do not require AVX support for your software

#38
post #18

I dont much like this article since SIMD is not “niche” as the author says, even if people aren’t aware of it. It’s hard to pick up a single piece of software and say that “yes my overall workload overall will improve” by turning it on, but if you are aware of it, it will speed up most non-branching loop operations via auto-vectorisation. Having had to work on software that did runtime dispatch for SIMD - there is a…

“Runtime dispatch” does not require that the CPU feature be queried on each call. There are designs that can do a single query on launch and set up the environment so that future calls do not incur any additional penalty.

Re: Please do not require AVX support for your software

#39

Earlier quoted context omitted.

> Similarly, Win11 adds new requirements for TPM 2.0 etc, so all not having that are blamed about laziness, and required to buy new hardware to run Win11? How are people even finding hardware without a TPM? my random ASUS laptop from 2020 had a TPM, and Apple has been adding (custom) TPMs to all their computers since 2016. It's honestly more impressive that there are so many people without TPMs to use.

I don't find it surprising at all. Many of my clients and other individuals I know are still using PCs from 2014 or before. Hardware from that era is still very capable, especially for basic office or home usage. Even if those computers originally ran Windows 7, or 8, or 8.1, pretty much all of the ones I'm familiar with have been upgraded to Windows 10 since then. They could probably run Windows 11 just fine, too, i…

I feel like I just don't understand, as someone who has to upgrade hardware every few years just because it breaks.

My PC laptop's keyboard is broken, the bottom panel is snapped off, one of the hinge covers is missing, the ethernet port is broken off the motherboard, the charging cable is soldered in place (because the barrel jack kept breaking), the USB-C port is iffy, the fans keep failing, and it took all that to make me get a new desktop. But that happened in the span of about two years of using the machine in bed. I can't imagine trying to make that machine last any longer, it's a lost cause.

> Hardware from that era is still very capable, especially for basic office or home usage.

Are people used to waiting for their computers to do things? I can't use slow computers because I heavily depend on multitasking and task switching, but seeing some of the things people put up with—like Firefox taking 15 minutes to load—makes me wonder if everyone else is just okay with having a slow computer.

Re: Please do not require AVX support for your software

#40
post #20

Earlier quoted context omitted.

Yes, here is the article about the techniques: https://maksimkita.com/blog/cpu-dispatch-in-clickhouse.html

It’s considerably more onerous than just compiling to a single/multiple microarchitecture(s) though. Plus when you do this, you need to split out this code to be conditionally compiled so that you can support other architectures like ARM.

Here is an example on how to do this using github.com/google/highway: https://gcc.godbolt.org/z/zP7MYe9Yf

You write the code only once and do not have to worry about any #pragma/conditional compilation. Just copy-paste about a dozen lines of boilerplate, link with the Highway library, and done.

Disclosure: I am the main author; happy to discuss.

Post reply on HN