当前位置:首页 > 财经

fpga和单片机的区别 FPGA,你为什么这么牛?

近年来,FPGA的概念越来越多。

比如比特币挖掘就使用基于FPGA的挖掘机器。还有,微软之前说要用FPGA“取代”数据中心的CPU,等等。

其实FPGA对专业人士来说并不陌生,而且已经广泛应用。但是大多数人对它了解不多,对它有很多疑问——什么是——FPGA?为什么要用?与CPU、GPU、ASIC相比,FPGA有什么特点?……

今天,带着这一系列问题,让我们揭开FPGA的面纱。

1.为什么要用FPGA?

众所周知,通用处理器(CPU)摩尔定律已经进入暮年,而机器学习和Web服务的规模却在指数级增长。

人们使用定制的硬件来加速常见的计算任务,但是不断变化的行业要求这些定制的硬件可以被重新编程来执行新类型的计算任务。

FPGA是一种硬件可重构架构。它的英文全称是现场可编程门阵列,中文名称是现场可编程门阵列。

FPGA常年作为ASIC的小批量替代品。但近年来在微软、百度等公司的数据中心大规模部署,提供强大的计算能力和足够的灵活性。

不同架构的性能和灵活性比较

FPGA为什么快?“他们都被同龄人衬托得很好”。

CPU和GPU都属于冯诺依曼结构,解码执行指令,共享内存。FPGA之所以比CPU甚至GPU更节能,本质上是架构没有指令和共享内存的好处。

在冯的结构中,由于执行单元(如CPU核心)可以执行任何指令,因此需要指令存储器、译码器、各种指令的算术单元和分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多独立的指令流,所以GPU使用SIMD(单指令流多数据流)使多个执行单元以相同的速度处理不同的数据,CPU也支持SIMD指令。

而FPGA各逻辑单元的功能在重编程(烧录)时已经确定,不需要任何指令。

冯结构中记忆的运用有两个作用。一个是保存状态,一个是执行单元之间的通信。

因为内存是共享的,所以需要访问仲裁。为了利用访问的局部性,每个执行单元都有一个私有缓存,需要维护执行组件之间缓存的一致性。

出于保存状态的要求,FPGA中的寄存器和片上存储器(BRAM)属于自己的控制逻辑,没有不必要的仲裁和缓存。

对于通信要求,FPGA各逻辑单元与周围逻辑单元的连接在重编程(烧录)时已经确定,不需要通过共享内存进行通信。

说了这么多3000英尺的高度,FPGA的实际性能如何?我们分别研究计算密集型任务和通信密集型任务。

计算密集型任务的例子包括矩阵运算、图像处理、机器学习、压缩、非对称加密、Bing搜索排名等等。一般这种任务是CPU把任务卸载到FPGA上执行。对于这种任务,目前我们用的是Altera(好像应该叫Intel,不过我还是习惯叫Altera……)。Stratix V FPGA的整数乘法性能基本相当于20核CPU,浮点乘法性能基本相当于8核CPU,但比GPU低一个数量级。即将投入使用的下一代FPGA Stratix 10,将配备更多的乘法器和硬件浮点运算部件,使其理论上可以达到与目前顶级GPU计算卡相同的计算能力。

FPGA的整数乘法能力(估计值,无DSP,根据逻辑资源)

占用率估计)

FPGA的浮点乘法能力(估计值,float16用软核,float 32用硬核)

在数据中心,FPGA相对GPU的核心优势是延迟。

对于Bing搜索排序这样的任务,为了尽快返回搜索结果,需要尽量减少每一步的延迟。

如果用GPU加速,要想充分利用GPU的计算能力,批量大小不能太小,延迟会高达毫秒级。

如果我们用FPGA加速,我们只需要微秒级的PCIe延迟(我们的FPGA现在被用作PCIe加速器卡)。

未来英特尔推出QPI连接的至强+FPGA后,CPU和FPGA之间的延迟可以降低到100纳秒以下,和访问主存没什么区别。

为什么FPGA的延迟比GPU低那么多?

这本质上是一种架构上的区别。

FPGA兼有流水线并行和数据并行,GPU几乎只有数据并行(流水线深度有限)。

比如处理一个数据包有10个步骤,FPGA可以搭建10级流水线。流水线的不同阶段处理不同的数据包,每个数据包在被处理之前要经过10个阶段。每次处理完一个数据包,就可以立即输出。

GPU的数据并行方法是做10个计算单元,每个计算单元也在处理不同的数据包。然而,所有计算单元必须以统一的速度做同样的事情(SIMD)。这就要求10个数据包必须一起输入输出,输入输出的延迟增加。

当任务一个接一个而不是成批到达时,流水线并行可以实现比数据并行更低的延迟。因此,对于流计算任务,FPGA比GPU具有固有的延迟优势。

计算密集型任务,CPU、GPU、FPGA、ASIC的数量级比较(以16位整数乘法为例,数量仅为数量级估计,

ASIC芯片在吞吐量、延迟和功耗方面无可指责,但微软没有采用它们有两个原因:

数据中心的计算任务是灵活多变的,而 ASIC 研发成本高、周期长。好不容易大规模部署了一批某种神经网络的加速卡,结果另一种神经网络更火了,钱就白费了。FPGA 只需要几百毫秒就可以更新逻辑功能。FPGA 的灵活性可以保护投资,事实上,微软现在的 FPGA 玩法与最初的设想大不相同。 数据中心是租给不同的租户使用的,如果有的机器上有神经网络加速卡,有的机器上有 Bing 搜索加速卡,有的机器上有网络虚拟化加速卡,任务的调度和服务器的运维会很麻烦。使用 FPGA 可以保持数据中心的同构性。

接下来,我们来看看通信密集型任务。

与计算密集型任务相比,通信密集型任务在处理每一个输入数据时并不是很复杂,基本上都是经过简单计算后输出的。这时,沟通往往成为瓶颈。对称加密、防火墙和网络虚拟化都是通信密集型的例子。

通信密集型任务,CPU、GPU、FPGA、ASIC的数量级比较(以64字节网络包处理为例,数量只是数量级估计)

与CPU和GPU相比,FPGA对于通信密集型任务更有优势。

吞吐量方面,FPGA上的收发器可以直接连接到40 Gbps甚至100 Gbps的网线,以线速处理任意大小的数据包;CPU需要从网卡采集数据包进行处理。许多网卡无法以线速处理64字节的小数据包。虽然插入多个网卡可以实现高性能,但CPU和主板支持的PCIe插槽数量往往有限,网卡和交换机本身也很昂贵。

延迟方面,网卡接收数据包到CPU,再由CPU发送到网卡。即使使用DPDK这样的高性能数据包处理框架,延迟也是4~5微秒。更严重的问题是通用CPU的延迟不够稳定。例如,当负载较高时,转发延迟可能上升到几十微秒甚至更高(如下图所示);现代操作系统中的时钟中断和任务调度也增加了延迟的不确定性。

对比ClickNP(FPGA)与戴尔S6000交换机(商用交换机芯片)、Click+DPDK(CPU)、Linux(CPU)的转发延迟,错误栏分别显示5%和95%。来源:[5]

GPU虽然也可以处理高性能的数据包,但是GPU没有网络端口,这意味着需要先从网卡上采集数据包,然后GPU才能处理。这样,吞吐量受到CPU和/或网卡的限制。更别说GPU本身的延迟了。

那么为什么不把这些网络功能放到网卡里,或者用可编程开关呢?ASIC的灵活性还是比较硬的。

虽然现在有越来越多功能强大的可编程开关芯片,比如支持P4语言的Tofino,但是ASIC仍然不能做复杂的有状态处理,比如一个自定义的加密算法。

综上所述,FPGA在数据中心的主要优势是稳定性和极低的延迟,适用于流计算密集型任务和通信密集型任务。

二、微软部署FPGA的做法

2016年9月,《连线》杂志发表了《微软把未来押在FPGA上》的报道[3],描述了投石车项目的前世。

随后,投石车项目负责人道格·伯格(Doug Burger)与微软首席执行官塞特亚·纳德拉一起在Ignite 2016上演示了FPGA加速机器翻译。

展示的总计算能力是103万T ops,也就是1.03 Exa-op,相当于10万个顶级GPU计算卡。一个FPGA的功耗(加上板载内存和网络接口等。)约为30 W,仅增加整个服务器十分之一的功耗。

Ignite 2016演示:每秒1 exa-op(10 ^ 18)机器翻译计算能力

微软的FPGA部署并不是一帆风顺的。在哪里部署FPGA的问题大致经历了三个阶段:

专用的 FPGA 集群,里面插满了 FPGA 每台机器一块 FPGA,采用专用网络连接 每台机器一块 FPGA,放在网卡和交换机之间,共享服务器网络

微软FPGA部署模式三阶段,来源:[3]

第一阶段是专用集群,里面装满了FPGA加速卡,就像一台由FPGA组成的超级计算机。

下图是最早的BFB实验板。六个现场可编程门阵列放在一个PCIe卡上,四个PCIe卡插在每个1U服务器上。

最早的BFB实验板上有六个FPGA。来源:[1]

你可以注意到公司的名字。在半导体行业,只要批量足够大,芯片的价格就会趋向于沙子的价格。有传言说,该公司选择另一家公司是因为拒绝给出“沙子的价格”。

当然,现在数据中心领域都在使用两家公司的FPGA。只要规模够大,就不用担心FPGA价格高。

在最早的BFB实验板中,1U服务器中插入了4个FPGA卡。来源:[1]

类似超级计算机的部署模式,就是有一个专门的机柜,里面装满了24个FPGA的服务器,如上图所示(下图左图)。

这种方法有几个问题:

不同机器的 FPGA 之间无法通信,FPGA 所能处理问题的规模受限于单台服务器上 FPGA 的数量; 数据中心里的其他机器要把任务集中发到这个机柜,构成了 in-cast,网络延迟很难做到稳定。 FPGA 专用机柜构成了单点故障,只要它一坏,谁都别想加速了; 装 FPGA 的服务器是定制的,冷却、运维都增加了麻烦。

FPGA的三种部署方式,从集中式到分布式。来源:[1]

一种不太激进的方法是在每个机柜的一侧部署一个装满FPGA的服务器(如上)。这避免了上述问题(2)和(3),但(1)和(4)仍未解决。

第二阶段,为了保证数据中心服务器的同质性(这也是不使用ASIC的一个重要原因),在每台服务器中插入一个FPGA(上图右),FPGA通过专用网络连接。这也是微软在ISCA 14年发表的论文中采用的部署方法。

开放式计算服务器在机架中。来源:[1]

打开计算服务器内部。红色的盒子是放置FPGA的地方。来源:[1]

打开已插入现场可编程门阵列的计算服务器。来源:[1]

FPGA与开放式计算服务器的连接与固定。来源:[1]

FPGA采用Stratix V D5,172K ALM,2014 M20K片内存储器,1590 DSPs。主板上有一个8GB DDR3-1333内存、一个PCIe Gen3 x8接口和两个10 Gbps网络接口。柜与柜之间的FPGA通过专用网络连接,一组10G端口8个一组连接成环,另一组10G端口6个一组连接成环,不使用交换机。

机柜内FPGA之间的网络连接方式。来源:[1]

这样一个1632服务器和1632 FPGA的集群,将Bing的搜索结果排序整体性能提升了2倍(换句话说,节省了一半的服务器)。

如下图所示,每8个FPGA放入一个链,中间用前面提到的10 Gbps专用网线进行通信。这8个FPGA各司其职,有的负责从文档中提取特征(黄色),有的负责计算特征表达式(绿色),有的负责计算文档分值(红色)。

FPGA加速了Bing的搜索和排序过程。来源:[1]

FPGA不仅降低了Bing搜索的延迟,而且显著提高了延迟的稳定性。来源:[4]

本地和远程FPGA都可以降低搜索延迟,远程FPGA的通信延迟相对于搜索延迟可以忽略不计。来源:[4]

在Bing的FPGA部署已经成功,弹射器项目在公司继续拓展。

云计算的Azure部门是微软服务器最多的部门。

Azure部门急需解决的问题是网络和存储虚拟化带来的开销。Azure向客户销售虚拟机,需要为虚拟机的网络提供防火墙、负载均衡、隧道、NAT等网络功能。因为云存储的物理存储与计算节点是分离的,所以需要通过网络将数据从存储节点传输出去,并对其进行压缩和加密。

在1 Gbps网络和机械硬盘时代,网络和存储虚拟化的CPU开销不值一提。随着网络和存储速度的不断提高,一个SSD在网络上40 Gbps的吞吐量可以达到1 GB/s,CPU逐渐变得无法应对。

比如Hyper-V虚拟交换机只能处理25 Gbps左右的流量,但无法达到40 Gbps的线速,数据包小时性能更差;AES-256加密和SHA-1签名每个CPU内核只能处理100 MB/s,只有一个SSD吞吐量的十分之一。

网络隧道协议和防火墙处理40 Gbps所需的CPU内核数量。来源:[5]

为了加速网络功能和存储虚拟化,微软在网卡和交换机之间部署了FPGA。

如下图所示,每个FPGA都有一个4 GB的DDR3-1333 DRAM,通过两个PCIe第三代x8接口(物理上是PCIe第三代x16接口,因为FPGA没有x16的硬核,所以逻辑上作为两个x8接口使用)连接到一个CPU插座。物理网卡(NIC)是一种普通的40 Gbps网卡,只用于主机和网络之间的通信。

Azure服务器部署FPGA架构。来源:[6]

FPGA(SmartNIC)为每个虚拟机虚拟一个网卡,虚拟机通过SR-IOV直接访问这个虚拟网卡。最初,虚拟交换机中的数据平面功能被移动到FPGA,虚拟机发送和接收网络数据包既不需要CPU,也不需要物理网卡(NIC)。这不仅节省了可供销售的CPU资源,还提高了虚拟机的网络性能(25 Gbps),并将数据中心虚拟机之间的网络延迟减少了10倍。

网络虚拟化的加速架构。来源:[6]

这是微软FPGA部署的第三代架构,也是目前“一服务器一FPGA”大规模部署所采用的架构。

FPGA复用主机网的初衷是为了加速网络和存储,影响深远的是将FPGA之间的网络连接扩展到整个数据中心的规模,使其成为真正的云级“超级计算机”。

在第二代架构中,FPGA之间的网络连接局限在同一个机架内,很难扩大FPGA之间的专网互联规模,通过CPU转发开销过大。

在第三代架构中,FPGA通过LTL(轻量级传输层)进行通信。同一个机架中的延迟小于3微秒;最多1000个FPGA8微秒内;20微秒可以到达同一数据中心的所有FPGA。第二代架构只能通过网络访问48个FPGA,虽然8机内延迟较低。为了支持FPGA之间的大范围通信,第三代架构中的LTL还支持PFC流控协议和DCQCN拥塞控制协议。

纵轴:LTL的延迟,横轴:可以达到的FPGA数量。来源:[4]

FPGA中的逻辑模块关系,其中每个角色都是用户逻辑(如DNN加速、网络功能加速、加密),外部部分负责每个角色之间的通信,以及角色与外设之间的通信。来源:[4]

由FPGA构成的数据中心加速平面介于网络交换层(TOR,L1,L2)和传统服务器软件(运行在CPU上的软件)之间。来源:[4]

高带宽、低延迟网络互联的FPGA构成了网络交换层和传统服务器软件之间的数据中心加速平面。

除了每个提供云服务的服务器都需要加速网络和存储虚拟化之外,FPGA上剩余的资源也可以用来加速Bing搜索、深度神经网络()等计算任务。

对于多种类型的应用,随着分布式FPGA加速器规模的扩大,其性能提升是超线性的。

比如CNN推论,在只用一个FPGA的情况下,由于片上内存不足以放下整个模型,需要不断访问DRAM中的模型权重,性能瓶颈就在DRAM;如果FPGA数量足够,每个FPGA负责模型的一层或一层中的几个特征,使模型权重完全加载到片上存储器中,从而消除了DRAM的性能瓶颈,充分发挥了FPGA计算单元的性能。

当然,过于细致的拆解也会导致通信开销的增加。将任务分割成分布式FPGA集群的关键是平衡计算和通信。

从神经网络模型到HaaS上的FPGA。利用模型中的并行性,将模型的不同层和特征映射到不同的FPGA。来源:[4]

在MICRO’16大会上,微软提出了硬件即服务(HaaS)的概念,即将硬件作为可调度的云服务,使得FPGA服务的集中调度、管理和大规模部署成为可能。

硬件即服务(HaaS).来源:[4]

从充满FPGA的第一代专用服务器集群,到通过专用网络连接的第二代FPGA加速卡集群,再到目前的大规模FPGA云复用数据中心网络,有三个思路指引着我们的路线:

硬件和软件不是相互取代的关系,而是合作的关系; 必须具备灵活性,即用软件定义的能力; 必须具备可扩放性(scalability)。

三、FPGA在云计算中的作用

最后说说我个人对FPGA在云计算中的作用的想法。作为一名三年级博士生,我在微软亚洲研究院的研究试图回答两个问题:

FPGA 在云规模的网络互连系统中应当充当怎样的角色? 如何高效、可扩放地对 FPGA + CPU 的异构系统进行编程?

我对FPGA行业最主要的遗憾是,FPGA在数据中心的主流使用,从微软之外的互联网巨头,到两大FPGA厂商,再到学术界,大多把FPGA当成GPU这样计算密集型任务的加速器卡。但是FPGA真的适合GPU吗?

前面说过,FPGA和GPU最大的区别在于架构。FPGA更适合低延迟的流处理,GPU更适合处理大量同质数据。

因为很多人打算用FPGA做计算加速卡,所以两家FPGA厂商推出的高级编程模型也是基于OpenCL,模仿GPU基于共享内存的批处理模式。给FPGA东西,CPU需要放到FPGA板上的DRAM里,然后告诉FPGA开始执行。FPGA将执行结果放回DRAM,然后通知CPU取回。

PCIe可以用于CPU和FPGA之间的高效通信,那么为什么要绕过板上的DRAM呢?可能是工程实施的问题。我们发现通过OpenCL来回写DRAM,启动内核,读DRAM需要1.8毫秒。通过PCIe DMA通信只需要1~2微秒。

PCIe输入输出通道与OpenCL的性能比较。纵坐标是对数坐标。来源:[5]

OpenCL中多个内核之间的通信就更夸张了,默认方式是共享内存。

在本文的开头,FPGA比CPU和GPU更节能,它在架构上的根本优势是没有指令,不需要共享内存。在顺序通信(先进先出)的情况下,不需要使用共享内存在多个内核之间进行通信。况且FPGA上的DRAM一般比GPU上的DRAM慢很多。

所以我们提出了ClickNP网络编程框架[5],用通道代替共享内存来实现执行单元(元素/内核)之间、执行单元与主机软件之间的通信。

需要共享内存的应用也可以在流水线的基础上实现。毕竟,CSP(通信顺序进程)和共享内存在理论上是等价的。ClickNP还是一个基于OpenCL的框架,受限于c语言对硬件的描述(当然HLS比Verilog效率高很多)。理想的硬件描述语言大概不是C语言。

ClickNP使用通道在元素之间通信,来源:[5]

ClickNP使用通道在FPGA和CPU之间通信,来源:[5]

低延迟流处理最需要通信。

但是由于并行性和操作系统调度的限制,CPU通信效率不高,延迟不稳定。

此外,通信不可避免地涉及调度和仲裁。由于单核性能的限制和核间通信效率低,CPU的调度和仲裁性能有限,硬件适合这类重复性工作。所以我的博士研究把FPGA定义为通信的“大管家”,可以用来加速服务器、虚拟机、进程以及CPU和存储设备之间的通信。

程也萧何,败也我。缺少指令,这既是FPGA的优点,也是它的缺点。

每次做不同的事情,都会占用一定的FPGA逻辑资源。如果要做的事情比较复杂重复,就会占用大量的逻辑资源,而且大部分都是闲置的。此时,最好使用冯·诺依曼结构的处理器。

数据中心的很多任务具有很强的局部性和可重复性:一部分是虚拟化平台需要做的网络和存储,属于通信;另一部分是在客户计算任务,比如机器学习,加密解密。

首先,FPGA将用于它最好的通信。未来FPGA可能会像AWS一样作为计算加速卡出租给客户。

不考虑通信,机器学习,加密解密,算法都很复杂。如果试图用FPGA完全取代CPU,必然会带来FPGA逻辑资源的极大浪费,增加FPGA程序的开发成本。更实用的方式是FPGA和CPU协同工作,强的局部性和可重复性属于FPGA,复杂的属于CPU。

当我们用FPGA来加速必应搜索、深度学习等越来越多的服务时;当网络虚拟化、存储虚拟化等基本组件的数据平面由FPGA控制时;当由FPGAs组成的“数据中心加速平面”成为网络和服务器之间的屏障时...似乎有种FPGAs会控制全局的感觉,但是CPU上的计算任务会变得碎片化,被FPGAs驱动。过去,我们是基于CPU的,把重复的计算任务卸给FPGA未来会不会变成基于FPGA,把复杂的计算任务卸给CPU?随着至强+FPGA的出现,旧的SoC会在数据中心重生吗?

穿过记忆墙,到达一个完全可编程的世界。"

参考文献:

[1]微软数据中心的大规模可重构计算https://www . Microsoft . com/en-us/research/WP-content/uploads/2014/06/HC26 . 12 . 520-Recon-Fabric-Pulnam-MicroSoft-Sprocker . pdf

[2]加速大规模数据中心服务的可重构结构,ISCA ' 14 https://www . Microsoft . com/en-us/research/WP-content/uploads/2016/02/弹射_ISCA_2014.pdf

[3]微软拥有一种全新的计算机芯片——它将改变一切

[4]A Cloud-Scale Acceleration Architecture,MICRO ' 16 https://www . Microsoft . com/en-us/research/WP-content/uploads/2016/10/Cloud-Scale-Acceleration-Architecture . pdf

[5] ClickNP:具有可重构硬件的高度灵活和高性能的网络处理——微软研究

[6] Daniel Firestone,SmartNIC:加速Azure的网络与。OCS服务器上的FPGAs。

作者简介:

李伯杰,博士,中国科技大学微软亚洲研究院

6.举例:用STM32单片机处理四旋翼无人机的飞行控制

声明:本文转载于网络,版权归原作者所有。如果涉及到作品的版权问题,请联系我们,我们会根据您提供的版权证明确认版权并支付报酬或删除内容。

1.《fpga和单片机的区别 FPGA,你为什么这么牛?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《fpga和单片机的区别 FPGA,你为什么这么牛?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/caijing/1199277.html

上一篇

姜丹尼尔缺席WannaOne聚会 为什么会缺席

下一篇

7亿光年外存在超大黑洞 具体情况是什么

H&M公布最新财报亏损超10亿元 在华关闭20家门店 登上网络热搜了!

H&M公布最新财报亏损超10亿元 在华关闭20家门店 登上网络热搜了!

H&M亏损超10亿元 在华关闭20家门店分析师此前估计,H&M的亏损数额会达到14.1亿瑞典克朗。H&M表示,将不会在即将到来的年度大会上派发股息,而有可能在今年下半年派发。截至2020年财年年底,H&M在中国内地146个城市共拥有445家门店。...

手机4g变成2g怎么恢复 手机网络突然从4g变成2g!千万警惕

  • 手机4g变成2g怎么恢复 手机网络突然从4g变成2g!千万警惕
  • 手机4g变成2g怎么恢复 手机网络突然从4g变成2g!千万警惕
  • 手机4g变成2g怎么恢复 手机网络突然从4g变成2g!千万警惕
中兴通信跌停了中兴通信怎么回应的

中兴通信跌停了中兴通信怎么回应的

中兴的跌停?中兴如何回应?8月9日,被视为科技领域白马股的中兴直跌。股价跌至27.22元,日限收盘价突破13万手,成交额37.42亿元。中兴表示:“公司目前的生产经营活动都很正常,基本面没有变化。”据悉,这是因为“美国国防部、总务部、台湾总局空...

H&M公布最新财报亏损超10亿元 在华关闭20家门店 登上网络热搜了!

H&M公布最新财报亏损超10亿元 在华关闭20家门店 登上网络热搜了!

H&M亏损超10亿元 在华关闭20家门店分析师此前估计,H&M的亏损数额会达到14.1亿瑞典克朗。H&M表示,将不会在即将到来的年度大会上派发股息,而有可能在今年下半年派发。截至2020年财年年底,H&M在中国内地146个城市共拥有445家门店。...

H&M公布最新财报亏损超10亿元 在华关闭20家门店 登上网络热搜了!

H&M亏损超10亿元 在华关闭20家门店分析师此前估计,H&M的亏损数额会达到14.1亿瑞典克朗。H&M表示,将不会在即将到来的年度大会上派发股息,而有可能在今年下半年派发。截至2020年财年年底,H&M在中国内地146个城市共拥有445家门店。...

冯绍峰方否认离婚 称对其网络谣言进行严厉谴责并抵制

  • 冯绍峰方否认离婚 称对其网络谣言进行严厉谴责并抵制
  • 冯绍峰方否认离婚 称对其网络谣言进行严厉谴责并抵制
  • 冯绍峰方否认离婚 称对其网络谣言进行严厉谴责并抵制