lkml.org 
[lkml]   [2021]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 18/26] 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 enumerate this hardware capability to be shown as 'amx_tile',
    'amx_bf16', and 'amx_int8' in /proc/cpuinfo.

    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
    ---
    Changes from v4:
    * Massaged the changelog a bit.
    ---
    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 37150b7a8e44..9e9763ec7713 100644
    --- a/arch/x86/include/asm/cpufeatures.h
    +++ b/arch/x86/include/asm/cpufeatures.h
    @@ -386,7 +386,10 @@
    #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_AVX512_FP16 (18*32+23) /* AVX512 FP16 */
    +#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 7f891d2eb52e..9a520ab259ac 100644
    --- a/arch/x86/kernel/cpu/cpuid-deps.c
    +++ b/arch/x86/kernel/cpu/cpuid-deps.c
    @@ -76,6 +76,9 @@ static const struct cpuid_dep cpuid_deps[] = {
    { X86_FEATURE_SGX1, X86_FEATURE_SGX },
    { X86_FEATURE_SGX2, X86_FEATURE_SGX1 },
    { X86_FEATURE_XFD, X86_FEATURE_XSAVE },
    + { 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: 2021-07-10 15:10    [W:4.042 / U:0.320 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site