All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiaoyao Li <xiaoyao.li@intel.com>
To: Yang Zhong <yang.zhong@linux.intel.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: "Wang, Lei" <lei4.wang@intel.com>,
	paul.c.lai@intel.com, pbonzini@redhat.com, qemu-devel@nongnu.org,
	robert.hu@intel.com, chenyi.qiang@intel.com
Subject: Re: [PATCH] i386: Add new CPU model SapphireRapids
Date: Sat, 24 Sep 2022 00:01:16 +0800	[thread overview]
Message-ID: <b1f238c6-ab3d-eb8f-d1b4-dbdf342c002c@intel.com> (raw)
In-Reply-To: <Yy21A2CWzrS3SIzH@yangzhon>

On 9/23/2022 9:30 PM, Yang Zhong wrote:
> On Wed, Sep 21, 2022 at 03:51:42PM +0100, Dr. David Alan Gilbert wrote:
>> * Wang, Lei (lei4.wang@intel.com) wrote:
>>> The new CPU model mostly inherits features from Icelake-Server, while
>>> adding new features:
>>>   - AMX (Advance Matrix eXtensions)
>>>   - Bus Lock Debug Exception
>>> and new instructions:
>>>   - AVX VNNI (Vector Neural Network Instruction):
>>>      - VPDPBUS: Multiply and Add Unsigned and Signed Bytes
>>>      - VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation
>>>      - VPDPWSSD: Multiply and Add Signed Word Integers
>>>      - VPDPWSSDS: Multiply and Add Signed Integers with Saturation
>>>   - FP16: Replicates existing AVX512 computational SP (FP32) instructions
>>>     using FP16 instead of FP32 for ~2X performance gain
>>>   - SERIALIZE: Provide software with a simple way to force the processor to
>>>     complete all modifications, faster, allowed in all privilege levels and
>>>     not causing an unconditional VM exit
>>>   - TSX Suspend Load Address Tracking: Allows programmers to choose which
>>>     memory accesses do not need to be tracked in the TSX read set
>>>   - AVX512_BF16: Vector Neural Network Instructions supporting BFLOAT16
>>>     inputs and conversion instructions from IEEE single precision
>>>
>>> Features may be added in future versions:
>>>   - CET (virtualization support hasn't been merged)
>>> Instructions may be added in future versions:
>>>   - fast zero-length MOVSB (KVM doesn't support yet)
>>>   - fast short STOSB (KVM doesn't support yet)
>>>   - fast short CMPSB, SCASB (KVM doesn't support yet)
>>>
>>> Signed-off-by: Wang, Lei <lei4.wang@intel.com>
>>> Reviewed-by: Robert Hoo <robert.hu@linux.intel.com>
>>
>> Hi,
>>     What fills in the AMX tile and tmul information leafs
>> (0x1D, 0x1E)?
>     
>>    In particular, how would we make sure when we migrate between two
>> generations of AMX/Tile/Tmul capable devices with different
>> register/palette/tmul limits that the migration is tied to the CPU type
>> correctly?
>>    Would you expect all devices called a 'SappireRapids' to have the same
>> sizes?
>>
> 
>     There is only one palette in current design. This palette include 8
>     tiles.  Those two CPUID leafs defined bytes_per_tile, total_tile_bytes,
>     max_rows and etc, the AMX tool will configure those values into TILECFG with
>     ldtilecfg instrcutions. Once tiles are configured, we can use
>     tileload instruction to load data into those tiles.
> 
>     We did migration between two SappireRapids with amx self test tool
>     (tools/testing/selftests/x86/amx.c)started in two sides, the migration
>     work well.
> 
>     As for SappireRapids and more newer cpu types, those two CPUID leafs
>     definitions are all same on AMX.

I'm not sure what definitions mean here. Are you saying the CPUID values 
of leaf 0x1D and 0x1E won't change for any future Intel Silicion?

Personally, I doubt it. And we shouldn't take such assumption unless 
Intel states it SDM.

> So, on AMX perspective, the migration
>     should be workable on subsequent cpu types. thanks!

I think what Dave worried is that when migrating one VM created with 
"SapphireRapids" model on SPR machine to some newer platform in the 
future, where the newer platform reports different value on CPUID leaves 
0x1D and 0x1E than SPR platform.

I think we need to contain CPUID leaves 0x1D and 0x1E into CPU model as 
well. Otherwise we will hit the same as Intel PT that SPR reports less 
capabilities that ICX.




  reply	other threads:[~2022-09-23 16:19 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-12  5:57 [PATCH] i386: Add new CPU model SapphireRapids Wang, Lei
2022-09-14 11:21 ` Igor Mammedov
2022-09-21 14:51 ` Dr. David Alan Gilbert
2022-09-21 15:01   ` Daniel P. Berrangé
2022-09-21 15:05     ` Dr. David Alan Gilbert
2022-09-23 13:30   ` Yang Zhong
2022-09-23 16:01     ` Xiaoyao Li [this message]
2022-09-26  7:42       ` Yang Zhong
2022-09-26  8:51         ` Dr. David Alan Gilbert
2022-09-28  8:12           ` Yang Zhong
2023-02-17  1:17   ` Xiaoyao Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b1f238c6-ab3d-eb8f-d1b4-dbdf342c002c@intel.com \
    --to=xiaoyao.li@intel.com \
    --cc=chenyi.qiang@intel.com \
    --cc=dgilbert@redhat.com \
    --cc=lei4.wang@intel.com \
    --cc=paul.c.lai@intel.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=robert.hu@intel.com \
    --cc=yang.zhong@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.