lkml.org 
[lkml]   [2020]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 17/22] x86/cpufeatures/amx: Enumerate Advanced Matrix Extension (AMX) feature bits
    Date
    Intel's Advanced Matrix Extension (AMX) is a new 64-bit extended feature
    consisting of two-dimensional registers and an accelerator unit. The first
    implementation of the latter is the tile matrix multiply unit (TMUL). TMUL
    performs SIMD dot-products on four bytes (INT8) or two bfloat16
    floating-point (BF16) elements.

    Here we add AMX to the kernel/user ABI, by enumerating the capability.
    E.g., /proc/cpuinfo: amx_tile, amx_bf16, amx_int8

    Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
    Reviewed-by: Len Brown <len.brown@intel.com>
    Cc: x86@kernel.org
    Cc: linux-kernel@vger.kernel.org
    ---
    arch/x86/include/asm/cpufeatures.h | 3 +++
    arch/x86/kernel/cpu/cpuid-deps.c | 3 +++
    2 files changed, 6 insertions(+)

    diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
    index 5b6496ee3703..a1839b6a1929 100644
    --- a/arch/x86/include/asm/cpufeatures.h
    +++ b/arch/x86/include/asm/cpufeatures.h
    @@ -375,6 +375,9 @@
    #define X86_FEATURE_TSXLDTRK (18*32+16) /* TSX Suspend Load Address Tracking */
    #define X86_FEATURE_PCONFIG (18*32+18) /* Intel PCONFIG */
    #define X86_FEATURE_ARCH_LBR (18*32+19) /* Intel ARCH LBR */
    +#define X86_FEATURE_AMX_BF16 (18*32+22) /* AMX BF16 Support */
    +#define X86_FEATURE_AMX_TILE (18*32+24) /* AMX tile Support */
    +#define X86_FEATURE_AMX_INT8 (18*32+25) /* AMX INT8 Support */
    #define X86_FEATURE_SPEC_CTRL (18*32+26) /* "" Speculation Control (IBRS + IBPB) */
    #define X86_FEATURE_INTEL_STIBP (18*32+27) /* "" Single Thread Indirect Branch Predictors */
    #define X86_FEATURE_FLUSH_L1D (18*32+28) /* Flush L1D cache */
    diff --git a/arch/x86/kernel/cpu/cpuid-deps.c b/arch/x86/kernel/cpu/cpuid-deps.c
    index d502241995a3..aed150626ea0 100644
    --- a/arch/x86/kernel/cpu/cpuid-deps.c
    +++ b/arch/x86/kernel/cpu/cpuid-deps.c
    @@ -71,6 +71,9 @@ static const struct cpuid_dep cpuid_deps[] = {
    { X86_FEATURE_AVX512_BF16, X86_FEATURE_AVX512VL },
    { X86_FEATURE_ENQCMD, X86_FEATURE_XSAVES },
    { X86_FEATURE_PER_THREAD_MBA, X86_FEATURE_MBA },
    + { X86_FEATURE_AMX_TILE, X86_FEATURE_XSAVE },
    + { X86_FEATURE_AMX_INT8, X86_FEATURE_AMX_TILE },
    + { X86_FEATURE_AMX_BF16, X86_FEATURE_AMX_TILE },
    {}
    };

    --
    2.17.1
    \
     
     \ /
      Last update: 2020-11-20 00:38    [W:7.595 / U:0.524 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site