CN117730485A - 用于系统间或组件间通信的基于学习的数据压缩方法和系统 - Google Patents
用于系统间或组件间通信的基于学习的数据压缩方法和系统 Download PDFInfo
- Publication number
- CN117730485A CN117730485A CN202180099890.4A CN202180099890A CN117730485A CN 117730485 A CN117730485 A CN 117730485A CN 202180099890 A CN202180099890 A CN 202180099890A CN 117730485 A CN117730485 A CN 117730485A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- categories
- computing system
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000004891 communication Methods 0.000 title description 17
- 238000013144 data compression Methods 0.000 title description 6
- 238000007906 compression Methods 0.000 claims abstract description 232
- 230000006835 compression Effects 0.000 claims abstract description 232
- 238000004422 calculation algorithm Methods 0.000 claims description 102
- 230000008569 process Effects 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 27
- 239000000758 substrate Substances 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 20
- 238000009826 distribution Methods 0.000 claims description 14
- 239000004065 semiconductor Substances 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 description 74
- 230000006837 decompression Effects 0.000 description 56
- 238000013473 artificial intelligence Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229910052594 sapphire Inorganic materials 0.000 description 1
- 239000010980 sapphire Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/38—Flow control; Congestion control by adapting coding or compression rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
系统、设备和方法包括标识要从第一装置传递到第二装置的数据的技术。所述技术将数据归类到来自多个类别的类别中,基于类别从多个压缩方案中选择压缩方案,并基于压缩方案压缩数据。
Description
技术领域
实施例一般涉及数据压缩和解压缩。更特别地,实施例实现了采样并学习跨装置和跨组件通信的业务模式,并且当业务开始达到硬件限制时激活压缩的方案。
背景技术
跨系统子组件或跨不同装置的数据通信对于系统级别性能可能是基本的。随着处理(process)持续增长并且变得更数据繁重,数据通信对应地开始增加。例如,在深度学习特定加速器硅中处理能力的快速增长可能要求更快的数据吞吐量以充分利用此类装置的能力。可以发现,到这些装置的高速输入/输出(IO)可能有效地引起通信中的瓶颈,因此导致招致较高时延操作的较低系统级别性能。类似的情况对于所有跨装置或跨组件通信发生。
附图说明
通过阅读以下说明书和所附权利要求,并且通过参考以下附图,实施例的各种优点对于本领域技术人员将变得显而易见,其中:
图1是根据实施例的压缩和解压缩架构的示例的图;
图2是根据实施例的实现压缩方案的方法的示例的流程图;
图3是根据实施例的分组归类架构的示例的图;
图4是根据实施例的压缩数据的方法的示例的流程图;
图5是根据实施例的解压缩数据的方法的示例的流程图;
图6是根据实施例的压缩/解压缩表的示例的图;
图7是根据实施例的性能增强的计算系统的示例的框图;
图8是根据实施例的半导体设备的示例的说明;
图9是根据实施例的处理器的示例的框图;以及
图10是根据实施例的基于多处理器的计算系统的示例的框图。
具体实施方式
如本文描述的实施例基于以下来有效地压缩数据(例如,视频数据、文本数据、音频数据、人工智能相关数据、深度学习数据、基于神经网络的数据等):基于任务(例如,基于应用)的分析。例如,硬件元件(例如,主机中央处理单元和加速器装置)之间的数据通信可以通过基于任务的分析来激励。任务具有唯一的模式和数据签名,诸如推断、数据传递、网络传递或结果传递任务。响应于达到硬件限制(例如,带宽),可以应用有效的数据压缩算法来降低带宽要求。
图1示出了促进第一装置102(例如,主处理器、第一服务器等)和第二装置104(例如,第二服务器、加速器、视觉处理单元、图形处理器等)之间的低时延和低带宽通信的压缩和解压缩架构100。详细地,第一装置102可以将操作卸载到第二装置104。例如,第二装置104在执行操作时可以比第一装置102更有效。为了执行操作,第一装置102可以向第二装置104传送数据。随着数据量增加,如果高速输入/输出(IO)106(例如,网络连接、快速外围组件互连连接、总线等)由于诸如带宽的物理约束而不能够以有效的方式传递所有数据,则时延可能增加。其它类型的瓶颈可能在高速IO 106中发生,引起第二装置104未被充分利用并且等待来自第一装置102的数据。
因此,压缩和解压缩架构100包括采样和学习跨装置通信(诸如在第一装置102和第二装置104之间)的业务模式的方案。当网络业务开始到达高速IO 106的硬件限制时,压缩和解压缩架构100可以激活压缩。即,高速IO 106可以具有不能被超过的某个带宽。当达到带宽时,压缩和解压缩架构100可以从正常(未压缩)方案转换成压缩和解压缩方案。这样做可以降低计算资源而不降低吞吐量。例如,压缩和解压缩可能是不必需的直到达到硬件限制。此外,不必需的压缩和解压缩可能不必要地消耗功率和计算资源。因此,不实现压缩和解压缩直到达到硬件限制,并且由于未压缩数据的数据等待和高数据传递时延,吞吐量可能减慢。在达到硬件限制之后,实现压缩和解压缩以维持吞吐量和效率,同时保持在硬件限制(例如,带宽)下。
压缩和解压缩架构100包括高速IO 106上的数据压缩器108和数据解压缩器110。数据压缩器108、数据解压缩器110和高速IO 106可以形成第一装置102和第二装置104之间的通信路径。
最初,数据压缩器108可以将数据分类到类别中以压缩数据。例如,数据压缩器108可以首先通过使用数据或在线(例如,利用标记的数据)或通过利用隐马尔可夫模型(HMM)的标记的离线过程训练学习模型。为了在线训练学习模型,可以将标记的数据提供到数据压缩器108,数据压缩器然后学习最佳算法以利用来满足数据类型的各种要求(例如,时延和压缩比)。
在一些实施例中,可以离线训练数据压缩器108。例如,离线训练可以包括收集大量标记的数据,所述数据然后被提供到数据压缩器108以训练数据压缩器108(例如,通过HMM)将数据分类到来自多个类别的类别中,并学习最佳算法以满足所述类别的各种要求。例如,如果不符合各种要求(例如,时延和压缩比),则数据压缩器108可以为类别选择不同的算法,直到符合各种要求。不同算法与数据类型的关联可以一起存储在压缩表112中。在一些示例中,如果不能符合各种要求中的所有,则数据压缩器108将选择符合最高优先级要求,同时绕过符合最低优先级要求,以实现最佳可能结果。
因此,可以训练HMM以对数据归类。因此,HMM可以对数据归类,并且数据压缩器108收集每个模式(例如,类别)上的不同算法的数据压缩比。一旦压缩被激活,数据压缩器108可以向数据解压缩器110(例如,接收方)发送压缩被激活的通知,并且开始用针对数据的每个类别的所选择的压缩算法将压缩报头包括到数据分组。如果通信级别下降到硬件限制以下,则压缩将停止。
因此,数据压缩器108包括可以对数据归类的多个HMM。数据压缩器108包括压缩表112。压缩表112可以将数据类型(例如,类别)映射到特定的压缩格式。因此,HMM可以将数据归类到类别(例如,数据类型)中,并且数据压缩器108可以参考压缩表112来确定与数据类型关联的对应压缩格式。
值得注意地,压缩表112可以在压缩激活之前生成。例如,数据压缩器108和/或数据解压缩器110可以收集在每个类别上的不同算法的数据压缩比。在一些实施例中,数据压缩器108可以在实时使用期间并且基于在激活压缩以压缩数据时生成的度量来更新压缩表112。例如,数据压缩器108和/或数据解压缩器110可以跟踪时延和压缩比参数是否由压缩算法满足,并且如果不满足则更新算法。
例如,第一算法最初可以用于压缩视频数据。随着视频数据演进,第一算法可能变得较不有效,因此导致较高时延和最坏压缩比,导致符合针对视频内容的时延参数和压缩比参数的失败。数据压缩器108和/或数据解压缩器110可以标识此类失败,并且实现新的算法以符合压缩比参数和时延参数。一旦新算法被标识为符合压缩比参数和时延参数,数据压缩器108可以与视频类别关联地存储新算法以使用新算法来压缩视频数据。
压缩表112可以在HMM训练期间生成以标识要用于各种数据类型的最佳算法。例如,可以选择算法来针对所传递的数据提供最佳压缩比,同时仍然符合时延参数(例如,必须在某个时间量下提供数据)。即,压缩和解压缩架构100可以利用硬件的计算能力,并且不受数据传递带宽的限制。一些实施例可以通过基于AI的加速器卡来操作,其中加速器的计算工作负荷是特定的,并且计算能力非常高。
解压缩表114对应于压缩表112。数据解压缩器110可以经由高速IO 106从数据压缩器108接收压缩表112和数据。数据解压缩器110然后可以标识数据中的报头。报头可以指示数据的数据类型。数据解压缩器110可以将压缩表112存储为解压缩表114,并且参考解压缩表114来标识用于压缩数据的算法。数据解压缩器110然后可以基于所标识的算法来解压缩数据。然后,可以将解压缩的数据提供到第一、第二和第三接收器104a、104b、104c中的一个。
跨高速IO 106的业务可以是二进制数据(其是一系列分组)。不同的应用产生不同的数据业务,所述数据业务可以被视为由某个随机过程生成。因此,实施例包括用于数据类型归类的基于HMM的算法。数据流通过由HMM分析的分组大小X的时间系列表征。例如,一系列数据分组是序列数据,所述序列数据可以被建模为每个时间点具有状态的状态链,其中时间点一起形成状态链。HMM适合用于分析此类种类的序列数据(例如,语音数据和手写数据)。因此,一些实施例可以使用HMM来表征分组大小序列并将其状态链概率分布建模。然后,给定一系列分组,一些实施例计算来自不同应用HMM模型的后验概率,并通过最高概率来确定应用类型。因此,HMM将使用分组大小X的时间系列作为到HMM的输入,并输出下一应用类型的概率分布。由于实施例首先离线或在线收集训练数据分组(具有标记),包括来自不同数据类型的数据采样,然后每个数据类型由HMM p(X,Z|θ)建模,如下面的等式1中示出的:
在等式1中,X={x1,…,xN}包含具有不同大小xi的一系列分组的分组大小,Z={z1,…,zN}表示应用类型(例如,隐藏状态)并且θ={π,A,φ}指代参数集合。例如,A可以是对不同Z之间的转移概率建模的转移矩阵,π可以是不同隐藏状态的概率,并且φ可以是在实际输出是zm时计算xm概率分布的参数矩阵。然后,分组系列由某个应用HMM生成的概率由等式2给出:
pi(X|Z,θ)
等式2
因此,一些实施例借助于通过等式3找到具有最大后验概率的HMM i来确定数据类型:
因此,选择对数据归类并且具有最高正确概率的HMM(其对应于类别),并且为数据选择关联的类别。在分析了数据模式的情况下,数据压缩器108基于数据的数据签名对数据分组分类。数据签名可以是分组签名摘要(诸如由上面描述的HMM模型计算的标识和/或模型标识),或者简单地是分组大小分布或前K个字节,以索引适合的最佳压缩算法。算法索引被编码到分组中,以便数据解压缩器110可以相应地并参考解压缩表114来解压缩分组。
数据压缩器108基于期望的压缩比和期望的时延来选择最佳压缩算法。压缩算法集合的集合被预先选择以覆盖不同的业务类型,包括Lempel-Ziv-Welch(LZW)、算术编码和其它压缩方案(诸如基本Δ)。不同的压缩算法具有不同的优点和缺点。例如,一些压缩算法在压缩比方面可以是有效的,而其它压缩算法可以是速度有效的。值得注意地,大多数压缩算法可能不处置所有方面,并且不同的应用需要不同的有效特征。例如,对于实时视频分析,压缩(例如,时延参数低)和解压缩的速度对于避免可能中断视频的流传递的高时延处理是重要的。相反,对于大的纯文本,压缩比(压缩比被设置成高)是重要的而不是速度(例如,时延参数被设置成高)。因此,可以为视频数据和文本数据选择不同的压缩算法。这样,不同的压缩算法用于不同的数据类型以维持与数据类型一致的压缩比和时延。
为了选择恰当的压缩算法,实施例包括针对不同应用的基于测量的选择。下面的等式4可以用于测量压缩算法的性能
实施例可以首先基于历史数据来计算用于不同数据类型的不同压缩算法的TotalCost。在运行时期间(例如,在数据的处理期间),数据压缩器108基于从HMM导出的数据类型的最小TotalCost来选择压缩算法。在等式1中,Tcompression使用指定压缩算法的压缩时间Tdecompression是使用某个压缩算法的解压缩时间,并且是用于快速外围组件互连(PCIE)传输的时间。
值得注意地,可以同时使用不同的压缩算法。例如,假设第一发送器102a是具有对应于低时延的时延参数和对应于低压缩比的压缩比参数的视频应用。数据压缩器108可以压缩来自第一发送器102a的数据,以选择低时延、低压缩比的压缩算法。假设第二发送器102b是具有对应于高时延的时延参数和对应于高压缩比的压缩比参数的文本应用。数据压缩器108可以压缩来自第二发送器102b的数据,以选择高时延、高压缩比的压缩算法。类似地,数据压缩器108可以压缩来自第三发送器102c的数据以选择中等时延、中等压缩比的压缩算法。在一些实施例中,数据压缩器108和数据解压缩器110可以基于所执行的人工智能学习过程来主动地调整压缩算法。
因此,压缩和解压缩架构100可以有效地通过高速IO 106传送数据。此外,压缩和解压缩架构100可以为各种数据类型选择适当的压缩算法以避免负面地影响性能。
图2示出了用于实现压缩方案的方法300。方法300可以容易地与本文描述的实施例中的任何一个可组合。例如,方法300可以结合已经讨论的压缩和解压缩架构100(图1)的一个或多个方面来实现和/或操作。在实施例中,方法300在一个或多个模块中被实现为被存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等机器或计算机可读存储介质中的、在诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)的可配置逻辑中的、在使用诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术的电路技术的固定功能性逻辑硬件中的、或者其任何组合的逻辑指令的集合。
例如,可以用包括诸如JAVA、SMALLTALK、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规的过程编程语言的一种或多种编程语言的任何组合来编写用来执行方法300中示出的操作的计算机程序代码。另外,逻辑指令可以包括汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路系统的配置数据、使电子电路系统和/或硬件固有的其他结构组件(例如主处理器、中央处理单元
/CPU、微控制器等)个性化的状态信息。
示出的处理框302标识将从第一装置传递到第二装置的数据。示出的处理框304将数据归类到来自多个类别的类别中。示出的处理框306基于类别从多个压缩方案中选择压缩方案。示出的处理框308基于压缩方案压缩数据。
在一些实施例中,方法300基于与类别关联的压缩比参数和时延参数来选择压缩方案。在一些实施例中,方法300进一步包括确定已经达到硬件限制,并且基于达到硬件限制确定数据将被压缩。在一些实施例中,方法300进一步包括通过隐马尔可夫模型将数据归类到类别中。在一些实施例中,方法300进一步包括基于与数据或数据的字节子集关联的分组大小分布中的一个或多个来将数据归类到类别中。在一些实施例中,方法300进一步包括基于多个类别到压缩方案的映射来选择压缩方案。
图3示出了用于分组归类的架构350,其可以例如通过Viterbi算法&Baum-Welch算法来训练。例如,架构350可以结合已经讨论的压缩和解压缩架构100(图1)和/或方法300(图2)的一个或多个方面来实现和/或操作。架构350可以对应于数据压缩器108(图1)。分组采样器352可以采样并学习跨装置通信(例如,第一和第二系统)之间的业务模式。每个数据类型可以由HMM 354建模(例如使用如等式2中定义的p(X,Z|θ))。数据类型确定器356借助于通过上面的等式3找到具有最大后验概率的HMM i来确定数据的数据类型。数据分类器358可以基于数据类型对数据分类。
图4示出了压缩数据的方法400。方法400可以容易地与本文描述的实施例中的任何一个可组合。例如,方法400可以结合已经讨论的压缩和解压缩架构100(图1)、方法300(图2)和/或架构350(图3)的一个或多个方面来实现和/或操作。更特别地,方法400可以在一个或多个模块中实现为存储在诸如RAM、ROM、PROM、固件、闪速存储器等的机器或计算机可读存储介质中,在诸如例如PLA、FPGA、CPLD的可配置逻辑中,在使用诸如例如ASIC、CMOS、TTL技术的电路技术的固定功能性硬件逻辑中,或其任何组合中的逻辑指令集合。
示出的处理框402等待使能可以包括数据的压缩的消息。因此,处理框402检查是否存在试图向另一装置发送数据的任何应用。示出的处理框404开始发送消息(例如,向第二计算装置)。例如,处理框404可以从在发送侧的应用接收消息,并且开始向与应用关联的装置发送数据。示出的过程406确定压缩当前是否开启。如果不是,则方法400可以参与学习过程。因此,示出的处理框408可以确定是否向采样器发送数据的副本。如果是,则采样器可以选择数据的子集以用于学习。示出的处理框410例如通过采样器计算报头签名。示出的处理框412基于签名计算标识。示出的处理框414确定是否应该针对数据子集激活压缩。如果是,则示出的处理框416执行压缩算法。示出的处理框418更新数据的比(例如,压缩比)、时延和字典数据。字典数据可以是由压缩算法维持的内部数据。例如,字典数据可以是数据采样的频率、关键字或签名。可能由解压缩器要求此类数据。数据可以与数据签名(其可以对应于数据的类别)以及更新比、时延和字典数据关联地存储。如果处理框414确定不应该激活压缩,则数据可以不被压缩。在一些示例中,框418进一步包括确定数据的时延参数和压缩比参数是否由压缩满足,或者另一算法是否可以更有效地符合压缩比和时延参数。
如果处理框406确定压缩被激活,则示出的处理框420选择算法来压缩数据。示出的处理422运行选择的压缩。示出的处理框424将压缩数据存储到目的地。示出的处理框426发送数据。示出的处理框438确定是否要开启压缩。如果是,则示出的处理框432向接收装置发送算法表(下面讨论的)。否则,示出的处理框428确定压缩(其已经被激活)是否应该保持激活。如果是,则示出的处理框430维持压缩,并且示出的处理框432向目的地发送算法表,使得目的地可以解压缩数据。示出的处理框436发送消息,使得消息发送完成。否则,示出的处理框434关闭压缩。还需注意到,如果处理框408确定不应该向采样器发送副本,则示出的处理框426可以在不压缩数据的情况下执行。
图5示出了解压缩数据的方法450。方法450可以容易地与本文描述的实施例中的任何一个可组合。例如,方法450可以结合压缩和解压缩架构100(图1)、方法300(图2)和/或架构350(图3)和/或方法400(图4)的一个或多个方面来实现和/或操作。更特别地,方法450可以在一个或多个模块中实现为存储在诸如RAM、ROM、PROM、固件、闪速存储器等的机器或计算机可读存储介质中、在诸如例如PLA、FPGA、CPLD的可配置逻辑中、在使用诸如例如ASIC、CMOS、TTL技术的电路技术的固定功能性硬件逻辑中、或者其任何组合中的逻辑指令集合。
示出的处理框452接收数据。示出的处理框454确定数据是否被压缩。如果不是,则示出的处理框456确定数据是否是算法表更新。如果是,则示出的处理框458存储算法表以用于将来参考,并且示出的处理框466完成数据处理。否则,如果数据不包括算法表,则示出的处理框464处理数据(例如,以未压缩的方式以避免解压缩)。
如果处理框454确定数据被压缩,则示出的处理框460参考算法表来确定压缩数据的压缩算法。示出的处理框462根据压缩算法解压缩数据。示出的处理框464处理现在被解压缩的数据。
现在转到图6,提供了压缩/解压缩表500。压缩/解压缩表500包括算法和算法的历史细节。例如,算法1502包括各种数据签名、ID、统计数据、算法ID、压缩比(comp.ratio)、时延和字典。算法N 504包括各种数据签名、ID、统计数据、算法ID、压缩比(comp.ratio)、时延和字典。
在压缩期间,数据可以与对数据唯一的特定数据签名关联地被添加到压缩/解压缩表500。数据可以被压缩并作为包括数据签名的分组发送。压缩/解压缩表500也可以由数据解压缩器使用(例如共享)来解压缩数据。因此,可以基于分组中的数据签名并且参考压缩/解压缩表500(使用数据签名作为标识用于压缩数据的算法的关键字(例如,1或N))来解码分组。
压缩/解压缩表500中的数据签名与相应算法之间的映射可以不存储历史数据点,但是仅存储每种类型的签名的统计,诸如所得到的<签名-数据,ID,统计数据,{<算法-id,压缩比,时延,字典}>。每个采样的数据将经过多个修改的压缩算法并计算它们的压缩比。一旦开启压缩,压缩器将传达预先设置算法的索引和累积的压缩字典,并开始压缩。解压缩器将应用算法和字典的相同集合以用于解压缩。
现在转到图7,示出了性能增强的计算系统158。计算系统158一般可以是具有计算功能性(例如个人数字助理/PDA、笔记本电脑、平板电脑、可变式平板、服务器)、通信功能性(例如智能电话)、成像功能性(例如照相机、便携式摄像机)、媒体播放功能性(例如智能电视/TV)、可穿戴功能性(例如手表、眼镜、头饰、鞋类、珠宝)、交通工具功能性(例如汽车、卡车、摩托车)、机器人功能性(例如自主机器人)等或其任何组合的电子装置/平台的一部分。在示出的示例中,计算系统158包括具有耦合到系统存储器144的集成存储器控制器(IMC)154的主处理器134(例如,CPU)。
示出的计算系统158还包括与主处理器134、图形处理器132(例如GPU)、ROM 136和AI加速器148一起在半导体管芯146上实现为片上系统(SoC)的输入输出(IO)模块142。示出的IO模块142与例如显示器172(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、网络控制器174(例如,有线和/或无线)、FPGA 178和大容量存储设备176(例如,硬盘驱动器/HDD、光盘、固态驱动器/SSD、闪速存储器)通信。此外,SoC 146进一步可以包括专用于人工智能(AI)和/或神经网络(NN)处理的处理器(未示出)和/或AI加速器148。例如,系统SoC146可以包括视觉处理单元(VPU)138和/或其它AI/NN特定处理器,诸如AI加速器148等。
图形处理器132和/或主处理器134可以执行从系统存储器144(例如,动态随机存取存储器)和/或大容量存储设备176检索的指令156,以实现如本文描述的方面。例如,图形处理器132、主处理器134、AI加速器148和VPU 138可以通过如本文描述的压缩和解压缩方案来彼此通信和/或与其它装置通信。当执行指令156时,计算系统158可以实现本文描述的实施例的一个或多个方面。例如,计算系统158可以实现已经讨论的压缩和解压缩架构100(图1)、方法300(图2)和/或架构350(图3)、方法400(图4)和/或方法450(图5)的一个或多个方面。因此,示出的计算系统158被认为是性能增强至少到其使能计算系统158以低时延方式压缩和解压缩数据的程度。
图8示出了半导体设备186(例如,芯片、管芯、封装)。示出的设备186包括一个或多个衬底184(例如,硅、蓝宝石、砷化镓)和耦合到(一个或多个)衬底184的逻辑182(例如,晶体管阵列和其它集成电路/IC组件)。在实施例中,设备186在应用开发阶段中操作,并且逻辑182执行本文描述的实施例的一个或多个方面,例如已经讨论的压缩和解压缩架构100(图1)、方法300(图2)和/或架构350(图3)、方法400(图4)和/或方法450(图5)的一个或多个方面。可至少部分地在可配置或固定功能性硬件中实现逻辑182。在一个示例中,逻辑182包括位于(例如嵌入)(一个或多个)衬底184内的晶体管沟道区。因此,逻辑182与(一个或多个)衬底184之间的界面可以不是突变结。逻辑182还可以被认为包括在(一个或多个)衬底184的初始晶片上生长的外延层。
图9示出了根据一个实施例的处理器核200。处理器核200可以是诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器或执行代码的其他装置的任何类型的处理器的核。虽然在图9中示出了仅一个处理器核200,但是处理元件可以备选地包括多于一个的图9中示出的处理器核200。处理器核200可以是单线程核,或者对于至少一个实施例,处理器核200可以是多线程的,因为它可以包括每核多于一个硬件线程上下文(或者“逻辑处理器”)。
图9还示出了耦合到处理器核200的存储器270。存储器270可以是如本领域技术人员已知的或者以其他方式可用的各种各样的存储器(包括存储器层级结构的各个层)中的任何。存储器270可以包括要由处理器核200执行的一个或多个代码213指令,其中代码213可以实现实施例的一个或多个方面,诸如例如已经讨论的压缩和解压缩架构100(图1)、方法300(图2)和/或架构350(图3)、方法400(图4)和/或方法450(图5)。处理器核200遵循由代码213指示的指令的程序序列。每个指令可以进入前端部分210并且可以被一个或多个解码器220处理。解码器220可以生成诸如预定义格式的固定宽度微操作的微操作作为其输出,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。示出的前端部分210还包括通常分配资源并且将与转换指令对应的操作排队以用于执行的寄存器重命名逻辑225和调度逻辑230。
处理器核200被示出包括具有执行单元255-1到255-N的集合的执行逻辑250。一些实施例可以包括专用于特定功能或功能集的多个执行单元。其他实施例可以包括仅一个执行单元或者可以执行特定功能的一个执行单元。示出的执行逻辑250执行由代码指令规定的操作。
在完成由代码指令规定的操作的执行之后,后端逻辑260引退代码213的指令。在一个实施例中,处理器核200允许无序执行,但是要求指令的按顺序引退。引退逻辑265可以采取如本领域技术人员已知的各种形式(例如重新排序缓冲器等等)。以这种方式,处理器核200在代码213的执行期间至少在由解码器生成的输出、由寄存器重命名逻辑225利用的硬件寄存器和表以及由执行逻辑250修改的任何寄存器(未示出)方面被变换。
虽然图9中未示出,但是处理元件可以在具有处理器核200的芯片上包括其他元件。例如,处理元件可以包括存储器控制逻辑连同处理器核200。处理元件可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可以包括一个或多个高速缓冲存储器。
现在参考图10,示出的是根据实施例的计算系统1000实施例的框图。图10中示出的是多处理器系统1000,所述多处理器系统1000包括第一处理元件1070和第二处理元件1080。虽然示出了两个处理元件1070和1080,但是要理解,系统1000的实施例也可以包括仅一个这样的处理元件。
系统1000被示出为点到点互连系统,其中第一处理元件1070和第二处理元件1080经由点到点互连1050被耦合。应当理解,图10中示出的互连中的任何或所有互连可以被实现为多点总线而不是点到点互连。
如图10所示,处理元件1070和1080中的每一个可以是多核处理器,包括第一处理器核和第二处理器核(即处理器核1074a和1074b以及处理器核1084a和1084b)。这样的核1074a、1074b、1084a、1084b可以被配置成以与上面和图9有关地讨论的方式类似的方式执行指令代码。
每个处理元件1070、1080可以包括至少一个共享的高速缓冲存储器1896a、1896b。共享的高速缓冲存储器1896a、1896b可以分别存储被诸如核1074a、1074b和1084a、1084b的处理器的一个或多个组件利用的数据(例如指令)。例如,共享的高速缓冲存储器1896a、1896b可以本地高速缓存被存储在存储器1032、1034中的数据以用于由处理器的组件更快存取。在一个或多个实施例中,共享的高速缓冲存储器1896a、1896b可以包括一个或多个中级高速缓冲存储器,诸如2级(L2)、3级(L3)、4级(L4)或其他级别的高速缓冲存储器、末级高速缓冲存储器(LLC)和/或其组合。
虽然示出了具有仅两个处理元件1070、1080,但是要理解,实施例的范围并不会被如此限制。在其他实施例中,在给定的处理器中可以存在一个或多个附加处理元件。备选地,处理元件1070、1080中的一个或多个可以是不同于处理器的元件,诸如加速器或现场可编程门阵列。例如,(一个或多个)附加处理元件可以包括与第一处理器1070相同的(一个或多个)附加处理器、与第一处理器1070异质或不对称的(一个或多个)附加处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或者任何其他处理元件。处理元件1070、1080之间在包括架构、微架构、热、功耗特性等等的一系列品质度量方面可存在有各种差异。这些差异可以有效地将它们自己表现为处理元件1070、1080之间的不对称性和异质性。对于至少一个实施例,各种处理元件1070、1080可以驻留在相同管芯封装中。
第一处理元件1070可以进一步包括存储器控制器逻辑(MC)1072以及点到点(P-P)接口1076和1078。类似地,第二处理元件1080可以包括MC 1082以及P-P接口1086和1088。如图10所示,MC 1072和1082将处理器耦合到相应的存储器,即存储器1032和存储器1034,它们可以是本地附接到相应的处理器的主存储器的部分。虽然MC 1072和1082被示出为被集成进处理元件1070、1080,但是对于备选实施例,MC逻辑可以是处理元件1070、1080外部的分立逻辑,而不是被集成在其中。
第一处理元件1070和第二处理元件1080可以分别经由P-P互连1076、1086被耦合到I/O子系统1090。如图10所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括接口1092以将I/O子系统1090与高性能图形引擎1038耦合。在一个实施例中,总线1049可以被用来将图形引擎1038耦合到I/O子系统1090。备选地,点到点互连可以耦合这些组件。
I/O子系统1090又可经由接口1096被耦合到第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或者是诸如PCI快速总线的总线,或者是另一个第三代I/O互连总线,尽管实施例的范围并不会被如此限制。
如图10所示,各种I/O装置1014(例如生物扫描仪、扬声器、照相机、传感器)可以被耦合到第一总线1016,连同可将第一总线1016耦合到第二总线1020的总线桥1018。在一个实施例中,第二总线1020可以是低引脚计数(LPC)总线。在一个实施例中,各种装置可以被耦合到第二总线1020,包括例如键盘/鼠标1012、(一个或多个)通信装置1026以及诸如磁盘驱动器或者可以包括代码1030的其他大容量存储装置的数据存储单元1019。示出的代码1030可以实现已讨论的压缩和解压缩架构100(图1)、方法300(图2)和/或架构350(图3)、方法400(图4)和/或方法450(图5)的一个或多个方面。此外,音频I/O 1024可以被耦合到第二总线1020,并且电池1010可以给计算系统1000供电。
注意到,设想了其他实施例。例如,代替图10的点到点架构,系统可以实现多点总线或者另一这样的通信拓扑。而且,备选地可以使用比图10所示的更多或更少的集成芯片来划分图10的元件。
附加注释和示例:
示例1包括一种计算系统,所述计算系统包括处理器和耦合到处理器的存储器,所述存储器包括可执行程序指令集合,所述可执行程序指令在由处理器执行时使计算系统:标识要从第一装置传递到第二装置的数据;将数据归类到来自多个类别的类别中;基于类别从多个压缩方案中选择压缩方案;以及基于压缩方案压缩数据。
示例2包括示例1的计算系统,其中可执行程序指令在执行时使计算系统基于与类别关联的压缩比参数和时延参数来选择压缩方案。
示例3包括示例1至2中的任一项的计算系统,其中可执行程序指令在执行时使计算系统:确定已经达到硬件限制;以及基于达到硬件限制确定数据要被压缩。
示例4包括示例1至3中的任一项的计算系统,其中可执行程序指令在执行时使计算系统通过隐马尔可夫模型将数据归类到类别中。
示例5包括示例1至4中的任一项的计算系统,其中可执行程序指令在执行时使计算系统:基于与数据或数据的字节子集关联的分组大小分布中的一个或多个,并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或通过基于预先选择的数据分组的离线学习过程来将数据归类到类别中;以及基于在运行时期间收集的压缩效率数据,在运行时期间改变压缩算法。
示例6包括示例1至5中的任一项的计算系统,其中可执行程序指令在执行时使计算系统基于多个类别到压缩方案的映射来选择压缩方案。
示例7包括一种半导体设备,所述半导体设备包括一个或多个衬底以及耦合到一个或多个衬底的逻辑,其中逻辑在可配置或固定功能性硬件中的一个或多个中实现,逻辑用于:标识要从第一装置传递到第二装置的数据;将数据归类到来自多个类别的类别中;基于类别从多个压缩方案中选择压缩方案;以及基于压缩方案压缩数据。
示例8包括示例7的设备,其中耦合到一个或多个衬底的逻辑要基于与类别关联的压缩比参数和时延参数来选择压缩方案。
示例9包括示例7至8中的任一项的设备,其中耦合到一个或多个衬底的逻辑要:确定已经达到硬件限制;以及基于达到硬件限制确定数据要被压缩。
示例10包括示例7至9中的任一项的设备,其中耦合到一个或多个衬底的逻辑要通过隐马尔可夫模型将数据归类到类别中。
示例11包括示例7至10中的任一项的设备,其中耦合到一个或多个衬底的逻辑要:基于与数据或数据的字节子集关联的数据分组大小分布中的一个或多个,并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个或通过基于预先选择的数据分组的离线学习过程来将数据归类到类别中;以及基于在运行时期间收集的压缩效率数据,在运行时期间改变压缩算法。
示例12包括示例7至11中的任一项的设备,其中耦合到一个或多个衬底的逻辑要基于多个类别到压缩方案的映射来选择压缩方案。
示例13包括示例7至12中的任一项的设备,其中耦合到一个或多个衬底的逻辑包括定位在一个或多个衬底内的晶体管沟道区。
示例14包括至少一种计算机可读存储介质,所述计算机可读存储介质包括可执行程序指令集合,所述可执行程序指令在由计算系统执行时,使计算系统:标识要从第一装置传递到第二装置的数据,将数据归类到来自多个类别的类别中;基于类别从多个压缩方案中选择压缩方案;以及基于压缩方案压缩数据。
示例15包括示例14的至少一种计算机可读存储介质,其中指令在执行时进一步使计算系统基于与类别关联的压缩比参数和时延参数来选择压缩方案。
示例16包括示例14至15中的任一项的至少一种计算机可读存储介质,其中指令在执行时进一步使计算系统:确定已经达到硬件限制;以及基于达到硬件限制来确定数据要被压缩。
示例17包括示例14至16中的任一项的至少一种计算机可读存储介质,其中指令在执行时进一步使计算系统通过隐马尔可夫模型将数据归类到类别中。
示例18包括示例14至17中的任一项的至少一种计算机可读存储介质,其中指令在执行时进一步使计算系统:基于与数据或数据的字节子集关联的分组大小分布中的一个或多个并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或者通过基于预先选择的数据分组的离线学习过程,将数据归类到类别中;以及基于在运行时期间收集的压缩效率数据来在运行时期间改变压缩算法。
示例19包括示例14至18中的任一项的至少一种计算机可读存储介质,其中指令在执行时进一步使计算系统基于多个类别到压缩方案的映射来选择压缩方案。
示例20包括一种方法,所述方法包括:标识将从第一装置传递到第二装置的数据;将数据归类到来自多个类别的类别中;基于类别从多个压缩方案中选择压缩方案;以及基于压缩方案压缩数据。
示例21包括示例20的方法,进一步包括基于与类别关联的压缩比参数和时延参数来选择压缩方案。
示例22包括示例20至21中的任一项的方法,进一步包括:确定已经达到硬件限制;以及基于达到硬件限制来确定数据将被压缩。
示例23包括示例20至22中的任一项的方法,进一步包括通过隐马尔可夫模型将数据归类到类别中。
示例24包括示例20至23中的任一项的方法,进一步包括:基于与数据或数据的字节子集关联的分组大小分布中的一个或多个并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或者通过基于预先选择的数据分组的离线学习过程,将数据归类到类别中;以及基于在运行时期间收集的压缩效率数据来在运行时期间改变压缩算法。
示例25包括示例20至24中的任一项的方法,进一步包括基于多个类别到压缩方案的映射来选择压缩方案。
示例26包括一种半导体设备,所述半导体设备包括:用于标识要从第一装置传递到第二装置的数据的部件;用于将数据归类到来自多个类别的类别中的部件;用于基于类别从多个压缩方案中选择压缩方案的部件;以及用于基于压缩方案压缩数据的部件。
示例27包括示例26的半导体设备,进一步包括用于基于与类别关联的压缩比参数和时延参数来选择压缩方案的部件。
示例28包括示例26至27中的任一项的半导体设备,进一步包括用于确定已经达到硬件限制的部件;以及用于基于达到硬件限制确定数据将被压缩的部件。
示例29包括示例26至28中的任一项的半导体设备,进一步包括用于通过隐马尔可夫模型将数据归类到类别中的部件。
示例30包括示例26至29中的任一项的半导体设备,进一步包括用于基于与数据或数据的字节子集关联的分组大小分布中的一个或多个,并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或通过基于预先选择的数据分组的离线学习过程来将数据归类到类别中的部件;以及用于基于在运行时期间收集的压缩效率数据,在运行时期间改变压缩算法的部件。
示例31包括示例26至30中的任一项的半导体设备,进一步包括用于基于多个类别到压缩方案的映射来选择压缩方案的部件。
示例32包括示例1至6中的任一项的计算系统,其中可执行程序指令在执行时使计算系统接收与压缩方案关联的压缩表,将压缩表存储为解压缩表,参考解压缩表以从解压缩表标识用于压缩数据的算法,以及基于算法解压缩数据。
示例33包括示例32的计算系统,其中可执行程序指令在执行时使计算系统从数据确定算法索引,并且基于算法索引标识算法。
示例34包括示例7至13中的任一项的设备,其中耦合到一个或多个衬底的逻辑要接收与压缩方案关联的压缩表,将压缩表存储为解压缩表,参考解压缩表以从解压缩表标识用于压缩数据的算法,以及基于算法解压缩数据。
示例35包括示例34的设备,其中耦合到一个或多个衬底的逻辑要从数据确定算法索引,并且基于算法索引标识算法。
示例36包括示例14至19中任一项的至少一种计算机可读存储介质,其中指令在执行时进一步使计算系统接收与压缩方案关联的压缩表,将压缩表存储为解压缩表,参考解压缩表以从解压缩表标识用于压缩数据的算法,以及基于算法解压缩数据。
示例37包括示例36的至少一种计算机可读存储介质,其中指令在执行时进一步使计算系统从数据确定算法索引,并且基于算法索引来标识算法。
示例38包括示例20至25中任一项的方法,进一步包括接收与压缩方案关联的压缩表,将压缩表存储为解压缩表,参考解压缩表以从解压缩表标识用于压缩数据的算法,以及基于算法解压缩数据。
示例39包括示例38的方法,进一步包括从数据确定算法索引,并且基于算法索引来标识算法。
示例40包括示例26至31中任一项的设备,进一步包括用于接收与压缩方案关联的压缩表的部件,用于将压缩表存储为解压缩表的部件,用于参考解压缩表以从解压缩表标识用于压缩数据的算法的部件,以及用于基于算法解压缩数据的部件。
示例41包括示例40的设备,进一步包括用于从数据确定算法索引的部件,以及用于基于算法索引来标识算法的部件。
因此,本文描述的技术可以提供在期望时使能选择性的压缩和解压缩的增强的系统。这样做可以显著地降低在达到硬件限制时以其它方式可能发生的操作的时延。实施例对与所有类型的半导体集成电路(“IC”)芯片一起使用很合适。这些IC芯片的示例包括但不限于处理器、控制器、芯片集组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等等。另外,在图当中一些图中,用线来表示信号导线。一些可以是不同的,以指示更多的组成信号路径,具有数字标签,以指示多个组成信号路径,和/或在一个或多个末端处具有箭头,以指示主要信息流方向。然而,不应当以限制的方式来解释这个。相反,可以与一个或多个示例性实施例有关地使用这样的添加的细节以便于更容易理解电路。无论是否具有附加信息,任何所表示的信号线实际上都可以包括可以在多个方向上传播的一个或多个信号,并且可以利用例如用差分对、光纤线和/或单端线实现的数字或模拟线的任何合适类型的信号方案来实现任何所表示的信号线。可能已经给出了示例大小/模型/值/范围,尽管实施例不限于相同的。随着制造技术(例如光刻术)随时间的推移而成熟,期望可制造更小大小的装置。另外,为了简化说明和讨论并且为了不混淆实施例的某些方面,在图内可示出或者可不示出公知的到IC芯片和其他组件的电源/接地连接。此外,为了避免模糊实施例并且还考虑到相对于这样的框图布置的实现的细节高度依赖于要在其内实现实施例的平台的事实,即这样的细节应当完全在本领域技术人员的范围内,可以以框图形式示出布置。在陈述具体细节(例如电路)以便描述示例实施例之处,对于本领域技术人员来说应当显而易见的是,可以在没有这些具体细节的情况下或者利用这些具体细节的变化来实施实施例。描述因此被认为是说明性的而不是限制的。
术语“耦合”可以在本文中被用来指所讨论的组件之间的任何类型的直接或间接关系,并且可适用于电、机械、流体、光、电磁、机电或其他连接。另外,除非另外指示,术语“第一”、“第二”等可以在本文中仅被用来便于讨论并且未携带特定的时间或时间顺序意义。
如本申请中和权利要求书中所使用的,由术语“……中的一个或多个”连接的项的列表可以指列示的项的任何组合。例如,短语“A、B或C中的一个或多个”可以指A;B;C;A和B;A和C;B和C;或者A、B和C。
本领域技术人员由前面的描述将领会,可以以各种各样的形式来实现实施例的宽泛技术。因此,虽然已经与其特定示例有关地描述了实施例,但是实施例的真实范围不应当被如此限制,因为在研究图、说明书和下面的权利要求时,其他修改对有技术的从业人员来说将变得显而易见。
Claims (25)
1.一种计算系统,包括:
处理器;以及
耦合到所述处理器的存储器,所述存储器包括可执行程序指令集合,所述可执行程序指令在由所述处理器执行时使所述计算系统:
标识要从第一装置传递到第二装置的数据;
将所述数据归类到来自多个类别的类别中;
基于所述类别从多个压缩方案中选择压缩方案;以及
基于所述压缩方案压缩所述数据。
2.根据权利要求1所述的计算系统,其中,所述可执行程序指令在执行时使所述计算系统:
基于与所述类别关联的压缩比参数和时延参数来选择所述压缩方案。
3.根据权利要求1所述的计算系统,其中,所述可执行程序指令在执行时使所述计算系统:
确定已经达到硬件限制;以及
基于达到所述硬件限制确定所述数据要被压缩。
4.根据权利要求1所述的计算系统,其中,所述可执行程序指令在执行时使所述计算系统:
通过隐马尔可夫模型将所述数据归类到所述类别中。
5.根据权利要求1所述的计算系统,其中,所述可执行程序指令在执行时使所述计算系统:
基于与所述数据或所述数据的字节子集关联的分组大小分布中的一个或多个,并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或通过基于预先选择的数据分组的离线学习过程来将所述数据归类到所述类别中;以及
基于在所述运行时期间收集的压缩效率数据,在所述运行时期间改变压缩算法。
6.根据权利要求1所述的计算系统,其中,所述可执行程序指令在执行时使所述计算系统:
基于所述多个类别到压缩方案的映射来选择所述压缩方案。
7.一种半导体设备,包括:
一个或多个衬底;以及
耦合到所述一个或多个衬底的逻辑,其中,所述逻辑在可配置或固定功能性硬件中的一个或多个中实现,所述逻辑用于:
标识要从第一装置传递到第二装置的数据,
将所述数据归类到来自多个类别的类别中;
基于所述类别从多个压缩方案中选择压缩方案;以及
基于所述压缩方案压缩所述数据。
8.根据权利要求7所述的设备,其中,耦合到所述一个或多个衬底的所述逻辑要:
基于与所述类别关联的压缩比参数和时延参数来选择所述压缩方案。
9.根据权利要求7所述的设备,其中,耦合到所述一个或多个衬底的所述逻辑要:
确定已经达到硬件限制;以及
基于达到所述硬件限制确定所述数据要被压缩。
10.根据权利要求7所述的设备,其中,耦合到所述一个或多个衬底的所述逻辑要:
通过隐马尔可夫模型将所述数据归类到所述类别中。
11.根据权利要求7所述的设备,其中,耦合到所述一个或多个衬底的所述逻辑要:
基于与所述数据或所述数据的字节子集关联的数据分组大小分布中的一个或多个,并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或通过基于预先选择的数据分组的离线学习过程来将所述数据归类到所述类别中;以及
基于在所述运行时期间收集的压缩效率数据,在所述运行时期间改变压缩算法。
12.根据权利要求7所述的设备,其中,耦合到所述一个或多个衬底的所述逻辑要:
基于所述多个类别到压缩方案的映射来选择所述压缩方案。
13.根据权利要求7所述的设备,其中,耦合到所述一个或多个衬底的所述逻辑包括定位在所述一个或多个衬底内的晶体管沟道区。
14.至少一种计算机可读存储介质,所述计算机可读存储介质包括可执行程序指令集合,所述可执行程序指令在由计算系统执行时,使所述计算系统:
标识要从第一装置传递到第二装置的数据,
将所述数据归类到来自多个类别的类别中;
基于所述类别从多个压缩方案中选择压缩方案;以及
基于所述压缩方案压缩所述数据。
15.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述指令在执行时进一步使所述计算系统:
基于与所述类别关联的压缩比参数和时延参数来选择所述压缩方案。
16.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述指令在执行时进一步使所述计算系统:
确定已经达到硬件限制;以及
基于达到所述硬件限制来确定所述数据要被压缩。
17.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述指令在执行时进一步使所述计算系统:
通过隐马尔可夫模型将所述数据归类到所述类别中。
18.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述指令在执行时进一步使所述计算系统:
基于与所述数据或所述数据的字节子集关联的分组大小分布中的一个或多个并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或通过基于预先选择的数据分组的离线学习过程,将所述数据归类到所述类别中;以及
基于在所述运行时期间收集的压缩效率数据来在所述运行时期间改变压缩算法。
19.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述指令在执行时进一步使所述计算系统:
基于所述多个类别到压缩方案的映射来选择所述压缩方案。
20.一种方法,包括:
标识将从第一装置传递到第二装置的数据,
将所述数据归类到来自多个类别的类别中;
基于所述类别从多个压缩方案中选择压缩方案;以及
基于所述压缩方案压缩所述数据。
21.根据权利要求20所述的方法,进一步包括:
基于与所述类别关联的压缩比参数和时延参数来选择所述压缩方案。
22.根据权利要求20所述的方法,进一步包括:
确定已经达到硬件限制;以及
基于达到所述硬件限制来确定所述数据将被压缩。
23.根据权利要求20所述的方法,进一步包括:
通过隐马尔可夫模型将所述数据归类到所述类别中。
24.根据权利要求20所述的方法,进一步包括:
基于与所述数据或所述数据的字节子集关联的分组大小分布中的一个或多个并通过在运行时期间执行的用于将多个数据分组归类的学习过程中的一个或多个,或者通过基于预先选择的数据分组的离线学习过程,将所述数据归类到所述类别中;以及
基于在所述运行时期间收集的压缩效率数据来在所述运行时期间改变压缩算法。
25.根据权利要求20所述的方法,进一步包括:
基于所述多个类别到压缩方案的映射来选择所述压缩方案。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/132713 WO2023092323A1 (en) | 2021-11-24 | 2021-11-24 | Learning-based data compression method and system for inter-system or inter-component communications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117730485A true CN117730485A (zh) | 2024-03-19 |
Family
ID=86538703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180099890.4A Pending CN117730485A (zh) | 2021-11-24 | 2021-11-24 | 用于系统间或组件间通信的基于学习的数据压缩方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117730485A (zh) |
WO (1) | WO2023092323A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7711876B2 (en) * | 2005-03-23 | 2010-05-04 | International Business Machines Corporation | Dynamic category compression in a data storage library |
CN110535869B (zh) * | 2019-09-05 | 2021-11-02 | 厦门市美亚柏科信息股份有限公司 | 一种基于压缩算法的数据传输方法、终端设备及存储介质 |
CN112449009B (zh) * | 2020-11-12 | 2023-01-10 | 深圳大学 | 一种基于svd的联邦学习推荐系统通信压缩方法及装置 |
CN112560967B (zh) * | 2020-12-18 | 2023-09-15 | 西安电子科技大学 | 一种多源遥感图像分类方法、存储介质及计算设备 |
-
2021
- 2021-11-24 CN CN202180099890.4A patent/CN117730485A/zh active Pending
- 2021-11-24 WO PCT/CN2021/132713 patent/WO2023092323A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023092323A1 (en) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019085655A1 (zh) | 信息处理方法及终端设备 | |
US11640295B2 (en) | System to analyze and enhance software based on graph attention networks | |
US20200394458A1 (en) | Weakly-supervised object detection using one or more neural networks | |
US20190266479A1 (en) | Acceleration unit for a deep learning engine | |
CN111950695A (zh) | 使用一个或更多个神经网络进行语法迁移 | |
CN112102329A (zh) | 使用一个或更多个神经网络进行细胞图像合成 | |
US10339071B2 (en) | System and method for individual addressing | |
US11880759B2 (en) | Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks | |
US20210027166A1 (en) | Dynamic pruning of neurons on-the-fly to accelerate neural network inferences | |
US20210320967A1 (en) | Edge Server with Deep Learning Accelerator and Random Access Memory | |
US20170193351A1 (en) | Methods and systems for vector length management | |
CN115552420A (zh) | 具有深度学习加速器和随机存取存储器的芯片上系统 | |
CN115053230A (zh) | 优化低精度推理模型用于深度神经网络的部署 | |
US11853766B2 (en) | Technology to learn and offload common patterns of memory access and computation | |
CN115843367A (zh) | 具有深度学习加速器和随机存取存储器的可移除式存储装置中的视频压缩 | |
WO2023092323A1 (en) | Learning-based data compression method and system for inter-system or inter-component communications | |
US10769099B2 (en) | Devices for time division multiplexing of state machine engine signals | |
US20230024803A1 (en) | Semi-supervised video temporal action recognition and segmentation | |
US20210365804A1 (en) | Dynamic ai model transfer reconfiguration to minimize performance, accuracy and latency disruptions | |
US20220300795A1 (en) | Two-stage decompression pipeline for non-uniform quantized neural network inference on reconfigurable hardware | |
Kumar | Improving GPU performance in multimedia applications through FPGA based adaptive DMA controller | |
US20230252767A1 (en) | Technology to conduct power-efficient machine learning for images and video | |
US20230315630A1 (en) | Dynamic inclusive and non-inclusive caching policy | |
US20220292361A1 (en) | Method, electronic device, and computer program product for data processing | |
TW202328981A (zh) | 樣本適應性跨層規範校準及中繼神經網路技術 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |