shepmaster / cupid

Get information about the x86 and x86_64 processor
MIT License
34 stars 9 forks source link

add avx512 #16

Closed gnzlbg closed 6 years ago

shepmaster commented 6 years ago

Sigh. I had a manual from 2017, so no wonder I missed so much stuff.

gnzlbg commented 6 years ago

I can slim this down to the AVX512 intrinsics implemented in the spec.

The CPUID for the features that re not in the spec yet won't change. There are already CPUs offering these in the wild, clang/gcc and the kernels support them already, etc. What might change before they get int the spec is the official CPUID name (e.g. avx512vnni vs avx512_vnni). I hope that for consistency with all the others they kill the underscores (as the Intel kernel devs argue) but we'll see.

gnzlbg commented 6 years ago

Ok reading the entire kernel discussion it seems that the mixed notation is going to stay in the spec and the kernel... so the right names are avx512vbmi but avx512_vbmi2... sigh... I'll update this tomorrow to conform to the latest spec/kernel.

gnzlbg commented 6 years ago

So I've found the real reference for all these features, and updated the PR, from the commit msg:

The reference is the Intel Architecture Instruction Set Extensions and Future Features Programming Interface document (Tables 1-1. and 1-2.) https://bugzilla.kernel.org/attachment.cgi?id=258813

gnzlbg commented 6 years ago

@shepmaster Rust has recently gained support for these :)

Would it be possible to speed things up (and make a release afterwards) ? I hope I have addressed everything.

shepmaster commented 6 years ago

Would it be possible to speed things up (and make a release afterwards)

Oops, I lost this in my other notifications — released 0.5.0!

gnzlbg commented 6 years ago

Awesome thanks!