3 ms·
Executable formats like ELF and PE already allow pretty much arbitrary tags - just define one that says "This executable uses instruction set extension X" and y
by kimixa 3y ago
Executable formats like ELF and PE already allow pretty much arbitrary tags - just define one that says "This executable uses instruction set extension X" and you don't even need the cost of a trap or modifying the file/filesystem metadata at runtime.
Sure, old apps might not then have that flag, but old apps aren't using avx512 either.
- vlovich123 3y agoI’m sure there are Avx512 apps that wouldn’t have this flag which poses a problem for Linux in terms of back compat.
- robot 3y agothis is already done by libraries and how new instructions are leveraged on cores that have them. During init a library checks availability of instructions and sets function pointers to relevant routines.
- kimixa 3y agoYeah, and you could set the process cpu masks at init time in your own code and do the equivalent. Hell, Intel could add that init step as a flag for their compiler. As mentioned elsewhere, I'm not sure this is hardware design being forced to adapt due to software implementation difficulties, so much as avx512 as a whole may not be worth the hardware area going forward. Even on the larger cores.
- nolist_policy 3y agoGreat then all processes will be running on the P-cores only, with the E-cores idling all day. Note that even simple things like memcpy, which every single program out there will use, will use AVX512!
- kimixa 3y agoGenerally it seems things that benefit from super wide simd also benefit from threading. If productivity apps want to leave performance on the table, so be it. But really I think the entire ecore/pcore split for avx512 is academic, as I'm not sure tying features and flexibility to wider registers makes sense even on pcores, as I'm not sure the hardware area cost is worth the benefit. I honestly wouldn't be surprised if newer architectures don't have the wider registers options on even their larger cores. You're chasing a pretty small market IMHO of people who have datasets large enough to benefit from large registers and wider alus, but not so large it's worth it to pass it over to an even more specialized accelerator. The benchmarks that tend to show 512-wide simd benefits may get even bigger benefits from running on a GPU.
- sylware 3y agoActually not, on "recent"/"not too old" x86_64 architecture, "rep movsX" instructions are now hardware accelerated for short and big memory blocks. Memcpy and other basic memory operations are getting their code generated directly by the compiler which shortcuts the OS runtime.