By: anon2 (anon.delete@this.anon.com), May 18, 2022 3:36 am
Room: Moderated Discussions
anonymou5 (no.delete@this.spam.com) on May 18, 2022 3:15 am wrote:
> Charlie Burnes (charlie.burnes.delete@this.no-spam.com) on May 17, 2022 3:22 pm wrote:
> > > Make the error message (when there is neither hardware, nor software emulation) obvious.
> > > "Call Intel for help. This is their problem. Get your money back. Chose a better CPU."
> >
> > I thought you were being serious until I read the last two lines.
>
> I wrote it in the context of "If you are writing software that you want to work on a lot
> of different systems 10 years from now [...]".
>
> In that context, AVX512 should be table stakes, software should target it, and a failure
> to implement it in hardware or provide slow-but-functional emulation should solely rest
> on the shoulders of that party, not the whole market. "Your Atom core has no AVX512? And
> Intel doesn't provide software emulation? Call Intel... [see above]".
>
> So yeah... forward-looking, not backward-looking, in a sense.
>
> > I agree that Intel made a horrible mess of their instruction set extensions.
>
> Vote with your wallet.
>
> > Intel forced the people who develop on x86 to be responsible for cleaning up the mess.
>
> Vote with your software. In the forward-looking context, that hard error message is fine.
>
> Stop coddling Intel. :)
Poor advice and silly error message and failure mode for any software you intend for others to use.
Coding a simple scalar reference is almost always a good idea to test optimized implementation against and port to other architectures, so you would have that code already and it's simple to fall back to it on CPUs that don't support a particular implementation. It might be quite a bit more more than 2-3x slower than AVX512 but you can still print a warning it's not optimized, the point is you don't error out and send your users the message that you are an incompetent clown who can't make working programs when everybody else manages to do so.
> Charlie Burnes (charlie.burnes.delete@this.no-spam.com) on May 17, 2022 3:22 pm wrote:
> > > Make the error message (when there is neither hardware, nor software emulation) obvious.
> > > "Call Intel for help. This is their problem. Get your money back. Chose a better CPU."
> >
> > I thought you were being serious until I read the last two lines.
>
> I wrote it in the context of "If you are writing software that you want to work on a lot
> of different systems 10 years from now [...]".
>
> In that context, AVX512 should be table stakes, software should target it, and a failure
> to implement it in hardware or provide slow-but-functional emulation should solely rest
> on the shoulders of that party, not the whole market. "Your Atom core has no AVX512? And
> Intel doesn't provide software emulation? Call Intel... [see above]".
>
> So yeah... forward-looking, not backward-looking, in a sense.
>
> > I agree that Intel made a horrible mess of their instruction set extensions.
>
> Vote with your wallet.
>
> > Intel forced the people who develop on x86 to be responsible for cleaning up the mess.
>
> Vote with your software. In the forward-looking context, that hard error message is fine.
>
> Stop coddling Intel. :)
Poor advice and silly error message and failure mode for any software you intend for others to use.
Coding a simple scalar reference is almost always a good idea to test optimized implementation against and port to other architectures, so you would have that code already and it's simple to fall back to it on CPUs that don't support a particular implementation. It might be quite a bit more more than 2-3x slower than AVX512 but you can still print a warning it's not optimized, the point is you don't error out and send your users the message that you are an incompetent clown who can't make working programs when everybody else manages to do so.