)]}'
{"os_traits/hw/cpu/x86/__init__.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"69a9d618aded112f598299e983b2cd0cd1368f4d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \u0027AVX512VL\u0027,  # vector length extensions"},{"line_number":41,"context_line":"    \u0027AVX512BW\u0027,  # byte + word"},{"line_number":42,"context_line":"    \u0027AVX512DQ\u0027,  # double word + quad word"},{"line_number":43,"context_line":"    \u0027AVX512VNNI\u0027,  # vector neural network instructions"},{"line_number":44,"context_line":"    # ref: https://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets"},{"line_number":45,"context_line":"    \u0027ABM\u0027,"},{"line_number":46,"context_line":"    \u0027BMI\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_51dc7817","line":43,"range":{"start_line":43,"start_character":5,"end_line":43,"end_character":15},"updated":"2019-07-26 12:12:34.000000000","message":"I think this should be AVX512_VNNI to match up with how it\u0027s spelled in the reference.\n\n(Note that this is not inconsistent with the ones before it, which are spelled without the underscore in the reference.)","commit_id":"77c39a10378da572ac6400d9575137aec971a210"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"491a23b669609fdca1b291a94fdd283dc80d71b0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \u0027AVX512VL\u0027,  # vector length extensions"},{"line_number":41,"context_line":"    \u0027AVX512BW\u0027,  # byte + word"},{"line_number":42,"context_line":"    \u0027AVX512DQ\u0027,  # double word + quad word"},{"line_number":43,"context_line":"    \u0027AVX512VNNI\u0027,  # vector neural network instructions"},{"line_number":44,"context_line":"    # ref: https://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets"},{"line_number":45,"context_line":"    \u0027ABM\u0027,"},{"line_number":46,"context_line":"    \u0027BMI\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_63a7670d","line":43,"range":{"start_line":43,"start_character":5,"end_line":43,"end_character":15},"in_reply_to":"7faddb67_313d3cdd","updated":"2019-07-26 13:04:16.000000000","message":"That\u0027s okay; not all of the CPU feature strings map exactly to their corresponding trait names. Where this is used by the libvirt driver there is a dict [1] rather than e.g. an algorithm to construct the trait name from the feature name.\n\nLooking at that dict, it\u0027s actually not at all clear where the existing names came from. IMO the underscore makes it more readable, so that\u0027s a win.\n\nBut given what you\u0027ve shown, I guess it\u0027s not worth blocking on.\n\n[1] https://opendev.org/openstack/nova/src/commit/d358df32f7a2a1125962e27f2425359c768f79c1/nova/virt/libvirt/utils.py#L49-L82","commit_id":"77c39a10378da572ac6400d9575137aec971a210"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"577755ecee160ae643347be2869c690af2461499","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \u0027AVX512VL\u0027,  # vector length extensions"},{"line_number":41,"context_line":"    \u0027AVX512BW\u0027,  # byte + word"},{"line_number":42,"context_line":"    \u0027AVX512DQ\u0027,  # double word + quad word"},{"line_number":43,"context_line":"    \u0027AVX512VNNI\u0027,  # vector neural network instructions"},{"line_number":44,"context_line":"    # ref: https://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets"},{"line_number":45,"context_line":"    \u0027ABM\u0027,"},{"line_number":46,"context_line":"    \u0027BMI\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_313d3cdd","line":43,"range":{"start_line":43,"start_character":5,"end_line":43,"end_character":15},"in_reply_to":"7faddb67_51dc7817","updated":"2019-07-26 12:47:56.000000000","message":"I *agree with you* after I checked the Intel instruction set (https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf) and examined the naming of Linux kernel.\n\nKernel:\n \n\"\"\"\ndavid@david-unc:~/work/linux/arch$ grep -ri \"vnni\"\nx86/include/asm/cpufeatures.h:#define X86_FEATURE_AVX512_VNNI           (16*32+11) /* Vector Neural Network Instructions */\nx86/include/asm/cpufeatures.h:#define X86_FEATURE_AVX512_4VNNIW (18*32+ 2) /* AVX-512 Neural Network Instructions */\nx86/kvm/cpuid.c:                F(VAES) | F(VPCLMULQDQ) | F(AVX512_VNNI) | F(AVX512_BITALG) |\nx86/kvm/cpuid.c:                F(AVX512_4VNNIW) | F(AVX512_4FMAPS) | F(SPEC_CTRL) |\nx86/kernel/cpu/cpuid-deps.c:    { X86_FEATURE_AVX512_VNNI,      X86_FEATURE_AVX512VL  },\nx86/kernel/cpu/cpuid-deps.c:    { X86_FEATURE_AVX512_4VNNIW,    X86_FEATURE_AVX512F   },\n\"\"\"\n\n*BUT* I still need to point out that QEMU and libvirt follow the name of \"avx512vnni\", which does not follow the naming of reference.\n\n\"\"\"\ndavid@david-unc:~/work/qemu$ grep -ri \"vnni\"\ntarget/i386/t2:            CPUID_7_0_ECX_AVX512VNNI,\ntarget/i386/hvf/x86_cpuid.c:            edx \u0026\u003d CPUID_7_0_EDX_AVX512_4VNNIW | CPUID_7_0_EDX_AVX512_4FMAPS;\ntarget/i386/cpu.c:            \"gfni\", \"vaes\", \"vpclmulqdq\", \"avx512vnni\",\ntarget/i386/cpu.c:            NULL, NULL, \"avx512-4vnniw\", \"avx512-4fmaps\",\ntarget/i386/cpu.c:            CPUID_7_0_ECX_AVX512VNNI,\ntarget/i386/cpu.c:            CPUID_7_0_ECX_AVX512VNNI | CPUID_7_0_ECX_AVX512BITALG |\ntarget/i386/cpu.c:            CPUID_7_0_ECX_AVX512VNNI | CPUID_7_0_ECX_AVX512BITALG |\ntarget/i386/cpu.c:            CPUID_7_0_EDX_AVX512_4VNNIW | CPUID_7_0_EDX_AVX512_4FMAPS,\ntarget/i386/cpu.h:#define CPUID_7_0_ECX_AVX512VNNI (1U \u003c\u003c 11)\ntarget/i386/cpu.h:#define CPUID_7_0_EDX_AVX512_4VNNIW (1U \u003c\u003c 2) /* AVX512 Neural Network Instructions */\nBinary file .git/objects/pack/pack-431a9ba6adaca798b7dee8f5695133ba562cff0f.pack matches\nt1:            CPUID_7_0_ECX_AVX512VNNI,\n\"\"\"","commit_id":"77c39a10378da572ac6400d9575137aec971a210"}]}
