3 ms·
That's not how things are done. Practically every library that has optimized implementations for stuff selects the implementation at runtime based on CPUID.
by blattimwind 7y ago
That's not how things are done. Practically every library that has optimized implementations for stuff selects the implementation at runtime based on CPUID.
- Avamander 7y agoExactly, assuming optimized implementations in libraries, that's not always the case and binaries compiled just exactly for the one CPU tend to perform better.
- Avamander 7y agoDon't know why the downvotes, do people think optimized implementations utilizing certain CPU features or combinations of them are somehow super common?
- blattimwind 7y agoPeople think that because it is correct. Any serious crypto library (libsodium, OpenSSL, crypto++, cryptlib, ...) that comes to mind uses this approach, codecs use it, your C standard library uses it etc.
- Avamander 7y agoBut there's many other libraries out there than just those though?
- blattimwind 7y ago"One advantage of AMD over Intel is AMD included SHA hardware acceleration on every Ryzen processor." What do you think is more common? People rolling their own SHA implementation or people calling <insert crypto library>'s SHA256()? The former will barely get any sort of optimization, regardless of compiler flags, the latter will automatically use the SHA extensions.
- Avamander 7y agoYou indeed have a point about SHA extensions and people predominantly using a good crypto library, I guess I should've been more verbose that I meant new extensions in-general being a bit underutilized.