Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1502078

[PATCH v2] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features.

From Piotr Luc <piotr.luc@intel.com>
Newsgroups linux.kernel
Subject [PATCH v2] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features.
Date 2016-10-17 17:10 +0200
Message-ID <sthI5-55T-15@gated-at.bofh.it> (permalink)
References <stcS6-1MH-43@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


AVX512_4VNNIW  - Vector instructions for deep learning enhanced word
variable precision.
AVX512_4FMAPS - Vector instructions for deep learning floating-point
single precision.

The new instructions are to be used in future Intel Xeon & Xeon Phi
processors.

The spec can be found in Intel Software Developer Manual (SDM) or in
Instruction Set Extensions Programming Reference (ISE).
The implementation is based on Table 2.8 "Information Returned by CPUID
Instruction" in ISE,
https://software.intel.com/sites/default/files/managed/69/78/319433-025.pdf.

v2: Initialize new bits in the scattered group. Add 

Signed-off-by: Piotr Luc <piotr.luc@intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
---
 arch/x86/include/asm/cpufeatures.h       | 2 ++
 arch/x86/kernel/cpu/scattered.c          | 2 ++
 arch/x86/kernel/fpu/xstate.c             | 2 ++
 tools/arch/x86/include/asm/cpufeatures.h | 2 ++
 4 files changed, 8 insertions(+)

diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index 92a8308..4ecbce9 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -195,6 +195,8 @@
 #define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
 
 #define X86_FEATURE_INTEL_PT	( 7*32+15) /* Intel Processor Trace */
+#define X86_FEATURE_AVX512_4VNNIW (7*32+16) /* AVX-512 Neural Network Instructions */
+#define X86_FEATURE_AVX512_4FMAPS (7*32+17) /* AVX-512 Multiply Accumulation Single precision */
 
 /* Virtualization flags: Linux defined, word 8 */
 #define X86_FEATURE_TPR_SHADOW  ( 8*32+ 0) /* Intel TPR Shadow */
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
index 8cb57df..1db8dc4 100644
--- a/arch/x86/kernel/cpu/scattered.c
+++ b/arch/x86/kernel/cpu/scattered.c
@@ -32,6 +32,8 @@ void init_scattered_cpuid_features(struct cpuinfo_x86 *c)
 
 	static const struct cpuid_bit cpuid_bits[] = {
 		{ X86_FEATURE_INTEL_PT,		CR_EBX,25, 0x00000007, 0 },
+		{ X86_FEATURE_AVX512_4VNNIW,	CR_EDX, 2, 0x00000007, 0 },
+		{ X86_FEATURE_AVX512_4FMAPS,	CR_EDX, 3, 0x00000007, 0 },
 		{ X86_FEATURE_APERFMPERF,	CR_ECX, 0, 0x00000006, 0 },
 		{ X86_FEATURE_EPB,		CR_ECX, 3, 0x00000006, 0 },
 		{ X86_FEATURE_HW_PSTATE,	CR_EDX, 7, 0x80000007, 0 },
diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index 01567aa..7dbd480 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -73,6 +73,8 @@ void fpu__xstate_clear_all_cpu_caps(void)
 	setup_clear_cpu_cap(X86_FEATURE_MPX);
 	setup_clear_cpu_cap(X86_FEATURE_XGETBV1);
 	setup_clear_cpu_cap(X86_FEATURE_PKU);
+	setup_clear_cpu_cap(X86_FEATURE_AVX512_4VNNIW);
+	setup_clear_cpu_cap(X86_FEATURE_AVX512_4FMAPS);
 }
 
 /*
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
index 92a8308..4ecbce9 100644
--- a/tools/arch/x86/include/asm/cpufeatures.h
+++ b/tools/arch/x86/include/asm/cpufeatures.h
@@ -195,6 +195,8 @@
 #define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
 
 #define X86_FEATURE_INTEL_PT	( 7*32+15) /* Intel Processor Trace */
+#define X86_FEATURE_AVX512_4VNNIW (7*32+16) /* AVX-512 Neural Network Instructions */
+#define X86_FEATURE_AVX512_4FMAPS (7*32+17) /* AVX-512 Multiply Accumulation Single precision */
 
 /* Virtualization flags: Linux defined, word 8 */
 #define X86_FEATURE_TPR_SHADOW  ( 8*32+ 0) /* Intel TPR Shadow */
-- 
2.10.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features tip-bot for Piotr Luc <tipbot@zytor.com> - 2016-10-16 13:30 +0200
  Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features Borislav Petkov <bp@alien8.de> - 2016-10-16 16:20 +0200
    Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features hpa@zytor.com - 2016-10-16 18:10 +0200
      Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features Borislav Petkov <bp@alien8.de> - 2016-10-16 18:40 +0200
        Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features hpa@zytor.com - 2016-10-16 20:50 +0200
          Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features Borislav Petkov <bp@alien8.de> - 2016-10-17 00:40 +0200
            Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features "Luc, Piotr" <Piotr.Luc@intel.com> - 2016-10-17 12:00 +0200
    Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS  features Thomas Gleixner <tglx@linutronix.de> - 2016-10-17 10:00 +0200
      Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features "Luc, Piotr" <Piotr.Luc@intel.com> - 2016-10-17 10:30 +0200
        Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features Ingo Molnar <mingo@kernel.org> - 2016-10-17 10:50 +0200
          Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features "Luc, Piotr" <Piotr.Luc@intel.com> - 2016-10-17 12:00 +0200
            Re: [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS  features Thomas Gleixner <tglx@linutronix.de> - 2016-10-17 12:00 +0200
              [PATCH v2] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features. Piotr Luc <piotr.luc@intel.com> - 2016-10-17 17:10 +0200
                Re: [v2] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS  features. "Luc, Piotr" <Piotr.Luc@intel.com> - 2016-10-18 15:10 +0200
                Re: [v2] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS  features. Ingo Molnar <mingo@kernel.org> - 2016-10-18 15:10 +0200
                [PATCH v3] x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features. Piotr Luc <piotr.luc@intel.com> - 2016-10-18 17:10 +0200
                [tip:x86/urgent] x86/cpufeature: Add AVX512_4VNNIW and  AVX512_4FMAPS features tip-bot for Piotr Luc <tipbot@zytor.com> - 2016-10-19 17:50 +0200

csiph-web