CN115297067B - 一种共享缓存管理方法及装置 - Google Patents

一种共享缓存管理方法及装置 Download PDF

Info

Publication number
CN115297067B
CN115297067B CN202210475968.4A CN202210475968A CN115297067B CN 115297067 B CN115297067 B CN 115297067B CN 202210475968 A CN202210475968 A CN 202210475968A CN 115297067 B CN115297067 B CN 115297067B
Authority
CN
China
Prior art keywords
port
target
neural network
vector
control factor
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.)
Active
Application number
CN202210475968.4A
Other languages
English (en)
Other versions
CN115297067A (zh
Inventor
崔勇
王莫为
黄思江
梁铷
刘振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210475968.4A priority Critical patent/CN115297067B/zh
Publication of CN115297067A publication Critical patent/CN115297067A/zh
Application granted granted Critical
Publication of CN115297067B publication Critical patent/CN115297067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种共享缓存管理方法,涉及人工智能领域,包括:获取目标端口的端口状态向量,端口状态向量包括端口缓存信息、流量信息和历史决策;将所述端口状态向量输入目标神经网络模型获取控制因子α;根据控制因子α基于动态阈值算法计算所述目标端口的缓存阈值;根据缓存阈值为所述目标端口分配缓存。本方法可以通过与环境交互,自动学习针对目标网络特性的高效的缓存管理策略,从而实现更高的网络传输性能。

Description

一种共享缓存管理方法及装置
技术领域
本发明涉及人工智能(AI))领域,特别涉及一种共享缓存管理方式及装置。
背景技术
在现代互联网中,网络设备(例如,路由器、交换机等)通常使用一定大小的数据包缓存用于吸收突发流量,以避免数据包丢失。缓存大小对网络性能影响很大,缓存不足可能导致吞吐率降低,从而损害网络服务质量。当前大多数交换机,往往使用可以在多个端口间共享的片上缓存,而不是单个端口专用的私有缓存,来提高缓存利用率。如图1所示,共享缓存交换机通常被建模为输出队列交换机,其中从输入端口到达的数据包穿过交换结构并在输出端口进入队列。当来自不同输入端口的多个数据包发往同一个输出端口时,队列将逐渐积累。
共享内存交换机依赖于特定的缓存管理策略在不同端口之间分配缓存。如果没有缓存管理策略,少数端口可能会占用整个共享缓存空间,阻止其他端口从共享内存中受益,从而导致交换机端口之间的严重不公平。为了避免不公平,最简单的方法是将总缓冲区平均分割,并将其分配为每个端口的私有缓冲区。这种方法的问题是端口只能访问其专有的缓存空间,这限制了当只有少数端口处于活动状态时的缓存利用率,这违反了缓存应该在端口之间动态共享的共享缓存基本原则。长期以来,研究人员认为理想的缓存管理应该介于完全共享(无控制)和完全分区(均匀分割)之间,同时具有高缓存利用率和端口公平性。
现有交换机共享缓存调度策略主要分为两个大类:侵占式方案与非侵占式方案。侵占式方案允许新到来的数据包在缓存被占满时覆盖已经存在于缓存中的数据包。现有侵占式策略通常为保证端口间公平性,选择覆盖队列长度最长的端口中的数据包,或者为了最大化吞吐,根据端口的流到达速率确定队列的长度限制,但现实中完全准确的流量信息很难获得。事实证明,侵占式策略在某些场景下是最优的,但是由于对缓存中特定位置已有的数据包进行覆盖操作难以使用硬件实现,因此当前认为侵占式方案是不可行的。
因此一般情况下只考虑非侵占式设置。对于非侵占式策略,数据包只能在进入队列前被丢弃,一旦数据包进入缓存则无法被覆盖,只有等待其从出端口进入链路,数据包所占用的缓存空间才能被释放。非侵占式方案可以分为静态阈值类方案和动态阈值类方案。典型的静态阈值类方案有:静态阈值(Stat ic Thresho ld,ST)和完全共享(Comp leteShar ing,CS)。ST方案给每个端口设定固定的缓存使用量,公平性好,但对非均匀流量的适应性差,CS方案将静态阈值设定为缓存总量,等价于不对端口缓存使用进行限制,该方案缓存使用率高,但端口之间会出现严重的不公平。非抢占式策略中动态阈值(DynamicThresho ld,DT)策略已被交换机厂商广泛使用,相比于静态阈值类方案,动态阈值类方案对交换机端口流量变化有一定的适应能力,同时通过有意识地预留缓存可以确保不同端口之间的公平性。基于动态阈值策略,后续研究者们开发了一系列针对不同流量模式的变种方案。然而,现有的缓存管理策略往往依赖于启发式方法,无法在不同的流量模式下始终保持良好的性能。
发明内容
本申请提供了一种共享缓存管理方法,本方法可以通过与环境交互,自动学习针对目标网络特性的高效的缓存管理策略,从而实现更高的网络传输性能。
第一方面,本申请提供了一种共享缓存管理方法,方法包括:获取端口的端口状态向量,端口状态向量可以包括端口缓存信息、流量信息和历史决策;将端口状态向量输入目标神经网络模型获取控制因子α;根据控制因子α基于动态阈值算法计算端口的缓存阈值;根据缓存阈值为对应目标端口分配缓存。
其中获取端口状态向量时,获取的端口可以是一个也可以是设备的多个端口,或者设备的所有端口进行整体的共享缓存管理,当获取的是多个端口的状态向量,则获取到的控制因子α也是与多个端口一一对应的,用于分别基于动态阈值算法计算各个端口的缓存阈值。
在一种可能的实现中,当需要获取状态向量的端口为多个,目标神经网络可以使用置换等变神经网络,则获取到的控制因子α为与所述目标端口数量相对应的多维向量;同时基于置换等变神经网络的特性,所获取的控制因子α的排列顺序和输入的端口状态向量所对应的端口的排列顺序相同。
在一种可能的实现中,目标神经网络包括第一子神经网络和第二子神经网络;第一子神经网络用于根据所述端口状态向量构建端口嵌入向量,端口嵌入向量保留有端口状态向量的时序信息;通过对端口嵌入向量采用置换不变操作获取设备嵌入向量;对端口嵌入向量和设备嵌入向量进行拼接处理后输入第二子神经网络获得端口汇总嵌入向量,端口汇总嵌入向量用于获取控制因子α,其中,拼接处理用于对每个所述端口嵌入向量进行所述设备嵌入向量标记以保留顺序信息。
在一种可能的实现中,第一子神经网络可以为循环神经网络(RNN)。
在一种可能的实现中,端口嵌入向量为ei=φ(xi),其中φ为第一子神经网络,xi为端口i的所述端口状态向量,N≥i≥1,N为大于1的正整数;设备嵌入向量为 所述端口汇总嵌入向量为:
其中f为所述第二子神经网络。
在一种可能的实现中,根据决策间隔内的活跃流数量和活跃时间进行奖励函数设置;根据奖励函数更新所述目标神经网络的参数;决策间隔根据控制因子α的更新时间确定。
在一种可能的实现中,根据决策间隔内的目标端口的丢包数进行奖励函数设置;根据奖励函数更新所述目标神经网络的参数;决策间隔为连续两次所述控制因子α的更新之间的间隔时间。
其中活跃流的活跃时间可以有多种计算方式,可以按照一定的策略粗略的估算,如将决策间隔认定为是活跃流的活跃时间,也可以是根据实际检测的时间来确定。
通过奖励函数的设置,使得本方案的一些实现方式能够建立在现代深度强化学习技术的基础上。基于不同的优化目标进行奖励函数的设置,可以使得本方案的一些实现方式能够支持对任意给定的优化目标进行优化(例如,最小化平均流的传输完成时间)。
在一种可能的实现中,控制因子α的更新可以为周期性更新。周期性的对动态阈值策略中的控制因子进行更新可以保证每个端口所分配的缓存阈值能够更好的适应流量模式的变化或突发流量到达的情况。
在一种可能的实现中,控制因子α的更新还可以是基于预设个数的数据包事件触发;数据包事件包括数据包入队、出队和丢弃中的至少一种。
在一种可能的实现中,控制因子α的更新基于预设个数的数据包事件触发,具体为:
当满足条件:
触发所述控制因子α的更新,其中和/>分别是端口i最近一次进行所述控制因子α的更新后的入队、丢弃和出队的数据包数量,β是一个超参数。
通过事件来进行控制因子的更新,可以减少高决策频率所带来的影响,因为过高的决策频率意味着对AI芯片的推理速度的更高的要求。选择每隔几个数据包事件调用一次代理,即触发一次控制因子的更新,可以有效的降低决策频率,降低对AI芯片的推理速度的需求。
在一种可能的实现中,每个所述目标端口包括多个目标队列,所述端口缓存信息和所述流量信息包括每个目标队列的缓存信息和每个队列的流量信息;根据所述缓存阈值为所述目标端口分配缓存,具体为根据所述缓存阈值为所述目标端口的每个所述目标队列分配缓存。一个端口通常会对应多个队列,通过此种实现方式,可以将对端口的共享缓存阈值管理精确到具体的队列的共享缓存管理。
另一方面,本申请提供了一种共享缓存管理装置,装置包括:状态获取模块,用于获取目标端口的端口状态向量,所述端口状态向量包括端口缓存信息、流量信息和历史决策;代理模块,将所述端口状态向量输入目标神经网络模型获取控制因子α;阈值控制模块,根据所述控制因子α基于动态阈值算法计算所述目标端口的缓存阈值,以及根据所述缓存阈值为所述目标端口分配缓存。
在一种可能的实现中,代理模块中的所述目标神经网络包括第一子神经网络和第二子神经网络;所述第一子神经网络用于根据所述端口状态向量构建端口嵌入向量,所述端口嵌入向量保留有所述端口状态向量的时序信息;通过对所述端口嵌入向量采用置换不变操作获取设备嵌入向量;对所述端口嵌入向量和所述设备嵌入向量进行拼接处理后输入所述第二子神经网络获得端口汇总嵌入向量,所述端口汇总嵌入向量用于获取控制因子α,其中,所述拼接处理用于对每个所述端口嵌入向量进行所述设备嵌入向量标记以保留顺序信息。
在一种可能的实现中,第一子神经网络为循环神经网络(RNN)。
在一种可能的实现中,端口嵌入向量为ei=φ(xi),其中φ为第一子神经网络,xi为端口i的所述端口状态向量,N≥i≥1,N为大于1的正整数;所述设备嵌入向量为 所述端口汇总嵌入向量为:
其中f为所述第二子神经网络。
在一种可能的实现中,装置还包括:奖励模块,用于根据决策间隔内的活跃流数量和活跃时间进行奖励函数设置;所述代理模块根据所述奖励函数更新所述目标神经网络的参数;所述决策间隔根据所述控制因子α的更新时间确定。
在一种可能的实现中,装置还包括,奖励模块,用于根据决策间隔内的所述目标端口的丢包数进行奖励函数设置;所述代理模块根据所述奖励函数更新所述目标神经网络的参数;所述决策间隔为连续两次所述控制因子α的更新之间的间隔时间。
在一种可能的实现中,装置还包括:决策控制模块,用于触发所述控制因子α周期性更新。
在一种可能的实现中,装置还包括:决策控制模块,用于基于预设个数的数据包事件触发所述控制因子α的更新,所述数据包事件包括数据包入队、出队和丢弃中的至少一种。
在一种可能的实现中,装置还包括:决策控制模块,用于基于预设个数的数据包事件触发所述控制因子α的更新,具体为当满足条件:
触发所述控制因子α的更新,其中和/>分别是端口i最近一次进行所述控制因子α的更新后的入队、丢弃和出队的数据包数量,β是一个超参数。
在一种可能的实现中,每个所述目标端口包括多个目标队列,所述端口缓存信息和所述流量信息包括每个目标队列的缓存信息和每个队列的流量信息;所述目标端口的缓存阈值;所述阈值控制模块根据所述缓存阈值为所述目标端口分配缓存,具体为根据所述缓存阈值为所述目标端口的每个所述目标队列分配缓存。
另一方面,本申请提供一种计算机存储介质,存储有一个或多个指令,指令在由一个或多个计算机执行时使得所述一个或多个计算机执行第一方面中的共享缓存管理方法及其各种其他可能实现中的操作。
另一方面,本申请提供一种计算机程序产品,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行第一方面中的共享缓存管理方法及其各种其他可能实现中的步骤。
另一方面,本申请提供一种系统,包括至少一个处理器,至少一个存储器;处理器和存储器通过通信总线连接并完成相互间的通信;存储器用于存储代码;处理器用于执行所述代码,以执行第一方面中的共享缓存管理方法及其各种其他可能实现中的步骤。
附图说明
图1为贡献缓存管理的现有实现方式示意图;(图1)
图2为人工智能主体框架的一种结构示意图;
图3为动态阈值策略中的端口队列长度和缓存阈值演化的示例图;
图4为本发明的一种基于强化学习的共享缓存管理架构;
图5为本发明的共享缓存管理架构图;
图6为本发明一种实现方式的方法流程图;
图7为本发明的代理中的深度神经网络的结构图;
图8为本发明的实现方式下的端口队列长度和缓存阈值演化的示例图;
图9为本发明的实现方式下设备结构图;
图10为本发明的实现方式下另一种设备结构图;
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。表1是本发明实施例中和本发明的技术方案介绍中所涉及到的符号的含义。
表1
首先对人工智能系统总体工作流程进行描述,请参见图2,图2示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“I T价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“I T价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市、智能通信网络等。
本申请实施例主要应用于智能通信网络中的交换机、路由器等需要对端口的数据进行贡献缓存分配管理的网络通信设备或者终端侧、云侧的通信设备。用于解决现有技术中采用固定规则的启发式算法无法适应不同流量模式的问题,
为了能够方便更好的理解本发明所介绍的实现方式,首先需要介绍一下两类本领域当前比较主流的动态阈值策略,本发明中所提到的动态阈值策略,动态阈值算法,均是指代基于控制因子对设备端口的数据进行共享缓存的阈值分配的技术方案,以下所介绍的两类仅为实现上示例,并不作为限定。
动态阈值(Dynamic Thresho ld,DT)策略是一种基于阈值的策略,其中所有端口的队列长度受一个阈值约束,该阈值与当前未使用的缓存量成正比。具体来说,对于N个端口的设备,令qi(t)为端口i的队列长度(或缓存占用),i∈[1,N],B为总共享缓存大小,则阈值T(t)由下式给出:
T(t)=α·(B-∑iqi(t))
其中α是所有端口共享的固定控制因子。如果qi(t)>T(t),在时间t到达端口i的数据包将被丢弃。
为了更好地理解DT的机制,图3展示了一个队列长度和缓存阈值演化的示例时间序列。假设在t=0时交换机缓存为空,则∑iqi(t)=qk(t),k为唯一的活跃端口。这里假设α=2,则T(t)=2·(B-qk(t))。在时间t=0,qk(0)=0,并且T(0)=2B,因此qk(0)<T(0)。允许数据包进入缓存,qk(t)将增加,直到qk(t)=T(t)=2B/3。一旦qk=T,端口就不允许占用额外的缓存,队列长度也不会再增加。DT通过始终保留一小部分缓存来权衡效率和公平性,以避免新过载的端口饥饿。
在动态阈值方案的基础上,还有一种改进动态阈值(Enhanced DynamicThreshold,EDT)策略,其针对数据中心网络中存在的微突发流量,通过暂时性放宽DT方案的阈值限制以提升交换机对于微突发流量的吸收能力。改进动态阈值通过每端口的状态决策模块判断端口流量状态,当端口正在传输速度快但持续时间短的微突发流量时,暂时允许该端口的队列长度不受到动态阈值的限制,该端口可以完全使用剩余缓存直至微突发流量结束或缓存溢出。EDT方案的阈值计算方式如下:
其中,Si为端口i的状态,C为处于“可控状态”的端口的集合,n为处于“非可控状态”的端口的数量。
上述动态缓存策略通常依赖于基于固定策略的启发式方法,因而仅能针对固定类型的流量模式进行优化。而事实上,流量可能以随时间变化的空间模式(例如,不同程度的多打一组合)到达交换机。先前有理论分析表明最优缓存管理策略取决于所有端口的输入流量速率,每个端口对应的缓存分配应该不同以匹配其流量状态。然而,设计这样的策略以获得潜在收益并不容易。大量状态信息(例如,每个端口的流量统计信息)和控制选择(例如,每个端口的不同缓存分配方案)会增加决策复杂性并引入各种极端情况。因此,现有策略往往求助于简单的启发式方法,即使对参数进行了精细的调整,也难以在广泛的流量模式中进行泛化。同时,现有的方法仅能隐式的针对吞吐或缓存利用率进行优化,为无法灵活的对上层优化目标进行优化。
由此,本发明在上述动态缓存策略的基础上提出了一种利用深度强化学习从数据中自动学习缓存管理策略。它可以通过与环境交互,自动学习针对目标网络特性的高效的缓存管理策略,从而实现更高的网络传输性能。更进一步的在某些具体的实现方式下,因为它建立在现代深度强化学习技术的基础上,还可以支持对任意给定的优化目标进行优化。
本发明落地实现时,在具体的实现方式中不需要对设备(交换机、路由器的需要尽心数据缓存管理的设备)本身进行太多的修改,具体有以下两种主要的实现方式:
若实现在设备的数据面,则需要对交换芯片中的缓存管理单元(MemoryManagement Un it,MMU)进行修改(见图1),同时可能需要增加AI推理芯片加速计算。
若实现在设备的控制面,则不涉及硬件的改动,仅需要在控制面中增加缓存管理的软件模块即可,也就是本发明中的基于深度强化学习的共享缓存管理策略,它通过提供的接口实时或准实时读取交换芯片各个端口的流量统计信息和缓存占用状态,计算并下发对应的缓存管理策略。注意到,本发明实现方式中缓存管理策略的动作是调整现有动态阈值算法的控制因子α,当前的交换芯片均支持通过命令进行配置,因此不会引入对芯片的额外要求。
本发明在实现的过程中,可以采用深度强化学习的模型架构,深度强化学习的架构图如图4所示,主要包括代理(agent)402,环境(Envi ronment)403,观察(Observat ion)406,动作(Act ion)405和奖励(Reward)404这五个主要概念。
强化学习的实现主要是代理402与环境403的交互过程,代理402会根据获取到的状态401做出动作405,当代理402做出某个动作405后,环境403会产生一个反馈信息,这反馈信息通常是基于奖励函数构建,所反馈的信息也就是图中的奖励404。强化学习通过奖励404来体现环境403对代理402的反馈。所以就会有好的反馈,也会有坏的反馈,无论是好的反馈,还是坏的反馈,在强化学习这里都统一称为“奖励”。强化学习可以根据奖励404对代理402中的参数进行更新
图5为本申请的一种实现方式的架构图,将图4的强化学习架构映射到了端口的共享缓存管理解决方案中。在本解决方案中将代理502(管理策略)表示为深度神经网络,因为它无需手工操作即可从高维输入信息中自动提取特征。
在离线训练阶段,代理502通过与环境503交互进行训练,在训练阶段的环境503为仿真环境。在仿真环境中,强化学习代理502观察交换机端口状态501,执行动作分配缓存,接收奖励信号,并通过强化学习算法进行训练,逐步改进其控制策略,即代理502中的深度神经网络的参数。
在在线阶段,即模型的使用阶段,将训练好的强化学习代理502(即神经网络)部署至目标设备,可以是交换机或者路由器等,其可以直接通过观察端口状态给出缓存分配动作。
在图5架构的构建过程中,可选的,强化学习代理502可以通过使用置换等变神经网络(permutation-equivariant neural network)来处理端口状态信息并做出缓存管理决策。通过如图所示将神经网络模块在不同的端口间共享,使得代理502中的深度神经网络的输入和输出可以扩展到能够用于处理任意数量的端口,同时保持模型大小不变。这种神经网络设计可以大大降低代理502中模型的复杂性和对训练数据的要求,这是提高学习效率的关键。当然代理502中也可以使用其他的神经网络模型,如输入固定的神经网络模型,则模型会相对复杂,对训练数据的要求也相对固定。
同样,在实现的过程中,强化学习代理502可以将动态缓存策略的控制因子α编码为动作,可以采用两层控制机制,缓存分配在决策触发间隔内通过环境503中的阈值控制模块5031由选定的动态缓存算法直接控制,而强化学习代理502仅在触发时对控制因子α进行调整。这种两级控制机制不仅扩大了动作的有效时间,而且大大缩小了强化学习代理502的探索空间,使得强化学习代理可以从一个高起点开始学习,从而实现了快速训练。
在实现的过程中,环境503中的决策触发模块5032根据累积事件进行决策,在不同的实现方式中,它可以根据流量密度触发决策,也可以根据数据包事件触发决策,从而扩大了决策间的时间间隔,同时避免了不必要的决策,因此可以提高学习的效率,同时降低对计算能力的要求。
以下通过一个示例性的实施例,如图6所示,来描述本发明的方案实现过程:
S601,获取目标端口的端口状态向量sk
本实施例通过代理502中的神经网络来执行主要的缓存管理策略。强化学习代理502通过与离线(仿真)环境交互使用强化学习算法进行训练。当步骤k在时间步tk决策触发模块5032被触发时,代理502获取端口状态信息sk,并基于端口状态信息sk选择缓存分配动作ak。执行动作后,环境状态转变为sk+1,代理收到奖励rk。奖励是根据网络管理者关心的高级目标设置的,可以作为改进策略的信号。奖励的设置,将在后续步骤中详细介绍。
端口状态向量sk:在NDT中,状态s={x1,...,xN}是一个集合,其中每个元素是端口i的端口状态向量xi,N是总端口数。每个端口状态可以有五个主要的属性:(i)端口缓存占用量,(ii)自上次决策以来的入队数据量,(iii)自上次决策以来的丢包量,(iv)上次决策的动作,(v)自上一个决策到目前为止的时间间隔,上述无个属性也可以根据需要进行增减。当前实施例中选择这些特征是为了从三个角度包含决策所需的所有信息:端口缓存状态、流量信息和先前的决策。NDT也可以很容易地支持额外的状态信息。其中先前决策信息即历史决策信息,可以是最近一次的决策信息,也可以是历史上的对此的决策信息,或者历史上的某次的决策信息。
S602,将所述端口状态向量输入目标神经网络模型获取控制因子α;
在本实施例中,采用了神经网络作为代理502的缓存管理策略。具体实现时,为了实现可扩展性,利用了缓存管理问题背后的一个特性,即交换机端口具有排列对称性。如果采用朴素的方法对神经网络结构进行设计,也可以实现。但是在一些情况下可能导致网络规模巨大,并且在一些实现方式中可能需要经过多次训练才能学习到相同的空间流量模式,从而导致需要的训练数据量和训练时间大幅增加。而使用置换等变神经网络作为其策略,可以使方案可以扩展到任意数量的端口,因为它重用了基本的组成单元(例如,小型神经网络)来处理端口状态和输出决策,如图5中的第一子神经网络和第二子神经网络所示。置换等变神经网络可以在某些置换不变操作(例如,求和或求最大值)的帮助下以置换不变的方式提取特征,同时保留相应决策的顺序信息。其细节将在下文中介绍。
当被触发时,强化学习代理将所有端口的状态信息作为输入,并决定所有端口之间的缓存分配。要构建代理,一个简单的解决方案是构建一个大型神经网络,该网络将包含所有端口状态信息的扁平特征向量作为输入。然而,由于神经网络的输入大小是固定的,这种方法不能扩展到处理任意数量的端口的信息。由此产生的神经网络的复杂性将随着端口数量的增加而增加,从而使得这样的神经网络难以训练。
NDT试图基于交换端口是排列对称的这一关键观察来解决问题。具体来说,我们发现每个端口的控制动作只依赖于端口状态信息本身,与端口的顺序无关。例如,考虑多打一流量场景,只有多打一的程度对于决策是重要的,而“一”对应的端口是端口i还是端口j无关紧要。考虑到交换机端口的这种排列对称性,所有端口状态信息都可以作为一个整体视为一个无序的集合。然后状态空间可以显著减少,因为可以同等对待相同端口流量状态组合的不同排列。
置换不变模型。为了利用这一特性,一种选择是采用为集合设计的置换不变神经网络架构(例如,Deepset)。这类方法使用一些操作或函数g,他们的输出结果对于集合x={x1,x2,...,xM}中的输入元素的顺序是排列不变的,即对于任何排列π:
g({x1,...,xM})=g({xπ(1),...,xπ(M)})
这些操作包括“取均值”、“取最大值”、“取最小值”等。虽然听起来很有希望,但这种方法不能直接应用于我们的问题,因为如果采用这种方法,状态中的顺序信息会被丢弃,从而神经网络的输出(即动作)无法映射到相应的输入元素(即端口状态)。
置换等变模型。综合考虑,本发明将策略表达为置换等变神经网络,一种置换不变神经网络的变体。它的目标是学习一个函数g,它在输入元素被置换时对输出进行相应的置换,即对于任何置换π:
g([xπ(1),...,xπ(M)])=[gπ(1)(x),...,gπ(M)(x)]
它将端口状态信息嵌入到嵌入向量中,从而在保持顺序信息的同时输出对应每个端口的操作。我们的置换等变神经网络的架构如图5所示。
嵌入向量以端口状态集合作为输入,逐步输出三种嵌入向量:
1)端口嵌入向量,从每个端口状态向量的异构属性中捕获信息;
2)设备嵌入向量,捕获所有端口的信息,所以包含了整个交换机设备的信息;
3)端口汇总嵌入向量,它聚合来自端口和设备嵌入的信息。
请注意,这些嵌入中存储的信息是从端到端训练中自动学习的,而无需手动特征工程。置换等变神经网络是可扩展的,因为它重用了基本的组成单元来获得上述嵌入向量。这些组成单元被实现为对低维输入进行操作的小型神经网络。
端口嵌入。给定端口状态向量xi,NDT首先构建一个端口嵌入ei=φ(xi)。结果ei是一个向量(例如,在中),它从端口状态向量的异构属性中提取信息。此外,端口状态向量也可以是携带多个决策步骤信息的时间序列。非线性函数φ(·)可以实现为循环神经网络(RNN)以捕获时序信息。
设备和汇总嵌入。为了利用置换对称性,我们可以将置换不变操作作为核心组成单元。基于此,由于我们需要为每个端口(即集合元素)而不是整个设备(即集合)做出决定,因此我们需要在整个处理过程中维护状态信息。
本发明通过两个步骤实现了这一点。首先,我们通过对端口嵌入采用置换不变操作来创建设备嵌入即/>然后我们将端口汇总嵌入计算为:
其中ei是预处理的端口嵌入,f是实现为(小型)神经网络的非线性变换。在此过程中,每个端口嵌入ei都由设备嵌入标记,从而得到端口汇总嵌入zi。换句话说,每个ei都为自己定制了整套端口嵌入,以保留顺序信息。这样,所有的zi
都是置换等变的,同时包含了所有端口的信息。
然后可以使用这些汇总嵌入来获取动作a。本发明中所有端口重用非线性变换φ和f。
S603,根据所述控制因子α基于动态阈值算法计算所述目标端口的缓存阈值;
在缓存管理问题中,动作编码的设计空间受限于硬件的能力。为了实现高效的决策,在实现时可以利用领域知识对其动作进行编码,并使用一种新颖的决策触发机制,以扩大决策间隔并降低决策频率。具体来说,可以使用两级控制机制,其中代理502仅在触发时决定控制因子α,而具体的缓存分配在决策间隔期间由动态阈值策略直接控制,动态阈值策略的具体实现参考上文中对动态阈值策略的介绍。动作编码方案的设计细节将在下文中详细说明。
环境503中除了有阈值控制模块5031用于根据所述控制因子α基于动态阈值算法计算所述目标端口的缓存阈值,环境503还可以借助表达能力很强的奖励函数,支持对端到端性能指标的优化。强化学习算法的目标是最大化期望累积奖励其中T是一次训练过程中的动作数量。例如,如果目标是最小化平均流完成时间,则可以将动作ak的奖励设置为rk=-(tk-tk-1)Fk,其中Fk是在决策区间[tk-1,tk)内活跃的流数量,此时的总优化目标为/>然而,一个流可能在决策间隔内开始或结束,因此在实践中,奖励rk是通过对这个间隔期间所有活跃流的活跃时间求和来计算的,假设流i在区间k内的存活时间为/>则存在/>此时/>总优化目标为注意在每个区间k中的活跃流数量可能不同。该目标最小化了整个过程中的活跃流数量,因此可以有效地最小化平均流完成时间。注意,流活跃时间的信息只在离线训练过程中需要。训练后,强化学习代理可以在没有奖励指导下独立工作。
本发明还可以通过相应地更改具体奖励函数来支持其他高级目标。例如,如果目标是最小化总丢包,则奖励函数可以表示为其中/>是在决策间隔内端口i的丢包数,此时的总优化目标为最大化/>如果目标是最大化吞吐率,则奖励函数可以表示为/>其中/>是在决策间隔内端口i的吞吐,此时的总优化目标为最大化
S603中除进行缓存阈值的计算,还可以包括决策触发机制5032,用于对触发决策。为了实现有效的决策,可以是在数据包级别直接决策每个端口允许使用的缓存大小,即每次数据包入队或出队时进行决策,就像DT策略所做的那样。虽然这种解决方案能够实现整个动作空间的充分表达,但它对代理的推理速度提出了很高的要求。例如,在100Gbps的链路下,一个1500字节的数据包出队只需要120纳秒。如果数据包同时到达多个端口,时间预算可能会更加紧张。另一方面,即使是最强大的AI推理芯片也只能每12微秒进行一次推理。即使学习到的策略可以比用于测量AI芯片的resnet-50基准轻数倍,芯片可能仍然无法承受这样的推理速度要求。
还有一种选择是以比最大推理时间长的固定间隔调用代理。然而,确定时间间隔带来了新的挑战。如果间隔过长,那么当在决策间隔期间流量模式发生变化或突发流量到达时,最后一个决策分配的固定缓存大小就成为了限制,从而可能导致严重的丢包。如果间隔太小,那么高频率的决策会给训练过程带来沉重的负担,因为许多决策是不必要的并且对整体结果没有贡献。
为了解决这个问题,本发明使用两级控制机制(如图8所示),它由具有领域知识的动作编码方案和可以扩大决策间隔的触发机制组成。具体来说,强化学习代理仅在满足条件触发时对高层的控制因子进行决策(即慢控制),而在决策间隔内缓存分配直接由指定的启发式算法执行(即快控制)。
为了扩大动作有效时间,本方案求助于领域知识,并以动态阈值策略(见相关工作一)作为底层缓存管理机制。我们将首先回顾基本的DT策略,然后说明本发明如何基于它进行缓存管理。如图8所示,基本的DT策略根据前述公式动态调整队列阈值,控制因子α是所有端口间共享。随着队列的建立,阈值逐渐减小并最终收敛,一定比例的缓冲区被留给队列长度低于阈值的轻载端口。当队列长度qi等于或超过阈值Ti时,新到达的数据包将被丢弃。
在本发明中,我们将每个端口i的控制因子αi编码为动作。每个端口i使用一个独立的控制因子αi并且它的队列长度受阈值Ti的限制,该阈值是同样根据DT的公式但利用端口所属的αi计算。如果αi是2的幂,则只需一个移位寄存器即可轻松实现阈值计算。因此我们在本发明中只考虑αi的2m形式的值,这导致动作空间更小。
总之,缓冲区由数据包级别的动态阈值DT策略直接管理,而每个端口的控制因子αi由强化学习代理进行自适应控制。这样,在决策间隔期间,缓冲区管理的适应性和鲁棒性由DT的性质保证。此外,将DT的领域知识嵌入到本发明中,极大地缩小了强化学习代理的探索空间,从而实现了快速训练。
为了减少高决策频率的影响,本发明采用了一种累积事件触发机制,每隔几个数据包事件调用一次代理。这里,数据包事件包括包入队、出队和丢弃。关键思想是仅在必要时触发代理,从而在决策数量减少的条件下,不会对性能产生明显影响。
具体来说,决策与流量密度保持一致,当满足以下条件时,动态触发强化学习代理:
其中和/>分别是端口i自上次决策以来入队、丢弃和出队的数据包数量。β是一个超参数。深入这个机制来看,每个数据包到达只能在队列长度qi低于阈值Ti时对产生贡献,或者等于或超过阈值时对/>做出贡献。因此,/>和/>一起描述了输入流量状态,/>则反映了流量超过端口容量的部分。
当输入速率与线路速率匹配时,不需要做出决策(即)。请注意,我们不允许/>为负数,以便队列排空过程中计数的数据包出队/>不会对未来产生影响,这一现象会在数据包在决策间隔期间被积在队列中时发生。当输入流量达到β(即/>)时,会发生大量队列累积或严重丢包,因此我们调用代理来调整控制因子以匹配当前的流量状况。我们简单设置β=B/N,这是所有端口中总缓存大小的公平份额,因为这反映了面对均匀流量模式时的预期缓存使用情况。
此外,代理也会在面对不强烈过载的流量时被正确触发,此时流量到达速度仅仅稍微超过链路速率,但会持续一段时间。这是因为上述触发条件公式中的左侧项目可以随时间累积,而β是一个常数,因此通常即使是稍稍超出线速的流量也最终将触发代理。然而,在实践中,我们发现流量速率可能会围绕线路速率波动,并且始终低于β。在这种情况下,丢包可能是无限的,这可能是整个系统的漏洞。为了确保稳健性,我们在提出的触发机制中添加了一个“保障”触发方式。我们强制代理在决策间隔期间丢弃的数据包大于“安全线”时触发,即/>其中γ是一个超参数,用于控制决策间隔期间丢包的最大容限。为简单起见,我们将γ设置为与β相同的值。
综上所述,当一个端口的输入流量速率超过线速的程度到达参数β时,代理会为所有端口调整他们的αi。触发后,所有端口的和/>将被重置,这意味着代理只会由最繁忙的端口触发,不会过早地被另一个端口重新触发。这个现象是合理的,因为其他端口的αi也在上一次触发时被调整了。我们只使用“保障”触发作为最后的手段,并期望它永远不会被触发。为了防止频繁的“保障”触发,我们使用一个单独的计数器来为其计数丢包,并且仅允许其触发一次,直到正常触发为止。
S604,根据所述缓存阈值为所述目标端口分配缓存。此步骤的实现可以参照传统的贡献缓存管理的缓存分配方式执行。
通过本实施例的实现方式,可以解决采用固定规则的启发式算法无法适应不同流量模式的问题,本发明方案采用基于深度强化学习的方法,通过与环境交互自动学习针对当前网络场景的缓存管理策略。通过将深度强化学习与传统专家启发式算法结合,一方面提高了算法的适应范围,一方面借助传统方法的性质保证了鲁棒性和执行效率。这种两级控制机制不仅扩大了动作的有效时间,而且大大缩小了强化学习代理的探索空间,使得强化学习代理可以从一个高起点开始学习,从而实现了快速训练。
强化学习代理使用置换等变神经网络来处理端口状态信息并做出缓存管理决策。该神经网络模块在不同的端口间共享,因此它可以扩展到处理任意数量的端口,同时保持模型大小不变。这种神经网络设计大大降低了模型的复杂性和对训练数据的要求,这是提高学习效率的关键。
强化学习代理根据累积事件决策触发器进行决策,它可以根据流量密度触发决策,从而扩大了决策间的时间间隔,同时避免了不必要的决策,因此可以提高学习的效率,同时降低对计算能力的要求。
除了上述实现方式外,本发明还可以进行更细粒度的共享缓存管理策略,当一个端口对应多个队列的时候,可以对每个队列进行缓存阈值的分配。当今的交换机通常使用由调度策略(例如,严格优先级、轮询)控制的多个优先级队列来确保服务质量。缓存管理策略需要与这些策略兼容,并且可以在队列级别进行控制。本发明的设计自然支持这种扩展,我们以严格的优先级调度为例来说明本发明是如何轻松支持它的。其他调度策略可以以类似的方式与本发明结合。
为了支持严格的优先级调度,缓冲区管理策略要求确保高优先级的数据包不会因为低优先级流量的缓冲区占用而被意外丢弃。直接支持这个功能不是一件容易的事,但是AWA策略(Dynamic queue length thresho lds for mu lt ip le loss pr ior it ies[ToN’02])作为DT的优先级扩展早就已经被提出,并且与我们基于α的阈值控制机制兼容。AWA策略对每个优先级队列使用不同的α,并要求较高优先级队列的α严格大于较低优先级队列的α。因此,当不同优先级队列中的数据包竞争缓存资源时,只有较低优先级队列中的数据包会被丢弃。
要将AWA与本发明结合,只需进行少量修改。每个端口的状态向量xi现在不仅应该包括端口级别的聚合信息,还应该包括详细的队列级别信息。此处,建议采用连续变量建模动作,并且输出维度应更改为每个端口的队列数。此外,由于AWA要求队列从高优先级到低优先级递减α,这里我们逐步解码采样值。具体而言,我们将连续动作输出进行量化,并将其映射到一组预定义的αi值。首先,确定最高优先级队列的α,然后我们缩小了剩余队列的可用α范围。通过迭代执行此操作,得到的α将满足AWA策略的要求。
具体实现的方式,即对S601的端口状态向量进行获取时,当每个端口包括多个队列,获取每个端口对应的每个目标队列的缓存信息和每个队列的流量信息;此时获取到的控制因子α也是对应与每一个队列的控制因子,则S603在是现实可以是根据所述缓存阈值为所述目标端口的每个所述目标队列分配缓存。
实施例二同样可以完全通过与环境交互自动学习优质的缓存调度策略,有更好更细粒度的流量模式适应性。
上文中介绍的图5中的执行设备110能够执行本申请实施例的物体检测方法的各个步骤,图6和图7所示的CNN模型和图10所示的芯片也可以用于执行本申请实施例的物体检测方法的各个步骤。下面结合附图对本申请实施例的物体检测方法进行详细的介绍。
接下来介绍本申请实施例提供的一种执行设备,请参阅图9。在本申请的一些实施例中,处理器1803和存储器1804可通过总线或其它方式连接。
存储器1804可以包括只读存储器和随机存取存储器,并向处理器1803提供指令和数据。存储器1804的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1804存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1803控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1803中,或者由处理器1803实现。处理器1803可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1803可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1803可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1804,处理器1803读取存储器1804中的信息,结合其硬件完成上述方法的步骤。
同样图9还可以时一种训练设备,用于对实施例中的模型进行训练。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例提供的执行设备、训练设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的数据处理方法,或者,以使训练设备内的芯片执行上述实施例描述的数据处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-on ly memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图10,图10为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 2000,NPU 2000作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路2003内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路2003是二维脉动阵列。运算电路2003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2003是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器2002中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器2001中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。
统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)2005,DMAC被搬运到权重存储器2002中。输入数据也通过DMAC被搬运到统一存储器2006中。
BIU为Bus Interface Unit即,总线接口单元2010,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)2009的交互。
总线接口单元2010(Bus Interface Unit,简称BIU),用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。
向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路2003的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数;或,非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。
控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;
统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为On-Ch ip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (23)

1.一种共享缓存管理方法,其特征在于,所述方法包括:
获取目标端口的端口状态向量,所述端口状态向量包括端口缓存信息、流量信息和历史决策;
将所述端口状态向量输入目标神经网络模型获取控制因子α;
根据所述控制因子α基于动态阈值算法计算所述目标端口的缓存阈值;
根据所述缓存阈值为所述目标端口分配缓存。
2.如权利要求1所述的共享缓存管理方法,其特征在于,
所述目标端口为多个;
所述目标神经网络为置换等变神经网络,所述控制因子α为与所述目标端口数量相对应的多维向量;
所述端口状态向量所对应的所述目标端口的排列顺序和所述控制因子α所对应的所述目标端口的排列顺序相同。
3.如权利要求1-2中任一项所述的共享缓存管理方法,其特征在于,
所述目标神经网络包括第一子神经网络和第二子神经网络;
所述第一子神经网络用于根据所述端口状态向量构建端口嵌入向量,所述端口嵌入向量保留有所述端口状态向量的时序信息;
通过对所述端口嵌入向量采用置换不变操作获取设备嵌入向量;
对所述端口嵌入向量和所述设备嵌入向量进行拼接处理后输入所述第二子神经网络获得端口汇总嵌入向量,所述端口汇总嵌入向量用于获取控制因子α,其中,所述拼接处理用于对每个所述端口嵌入向量进行所述设备嵌入向量标记以保留顺序信息。
4.如权利要求3所述的共享缓存管理方法,其特征在于,
所述第一子神经网络为循环神经网络(RNN)。
5.如权利要求4所述的共享缓存管理方法,其特征在于,
所述端口嵌入向量为ei=φ(xi),其中φ为第一子神经网络,xi为端口i的所述端口状态向量,N≥i≥1,N为大于1的正整数;
所述设备嵌入向量为
所述端口汇总嵌入向量为:
其中f为所述第二子神经网络。
6.如权利要求5所述的共享缓存管理方法,其特征在于,
根据决策间隔内的活跃流数量和活跃时间进行奖励函数设置;
根据所述奖励函数更新所述目标神经网络的参数;
所述决策间隔根据所述控制因子α的更新时间确定。
7.如权利要求5所述的共享缓存管理方法,其特征在于,
根据决策间隔内的所述目标端口的丢包数进行奖励函数设置;
根据所述奖励函数更新所述目标神经网络的参数;
所述决策间隔为连续两次所述控制因子α的更新之间的间隔时间。
8.如权利要求6-7中任一项所述的共享缓存管理方法,其特征在于,
所述控制因子α的更新为周期性更新。
9.如权利要求6-7中任一项所述的共享缓存管理方法,其特征在于,
所述控制因子α的更新基于预设个数的数据包事件触发;
所述数据包事件包括数据包入队、出队和丢弃中的至少一种。
10.如权利要求9所述的共享缓存管理方法,其特征在于,
所述控制因子α的更新基于预设个数的数据包事件触发,具体为:
当满足条件:
触发所述控制因子α的更新,其中和/>分别是端口i最近一次进行所述控制因子α的更新后的入队、丢弃和出队的数据包数量,β是一个超参数。
11.如权利要求1所述的共享缓存管理方法,其特征在于,
每个所述目标端口包括多个目标队列,所述端口缓存信息和所述流量信息包括每个目标队列的缓存信息和每个队列的流量信息;
所述根据所述缓存阈值为所述目标端口分配缓存,具体为根据所述缓存阈值为所述目标端口的每个所述目标队列分配缓存。
12.一种共享缓存管理装置,其特征在于,所述装置包括:
状态获取模块,用于获取目标端口的端口状态向量,所述端口状态向量包括端口缓存信息、流量信息和历史决策;
代理模块,将所述端口状态向量输入目标神经网络模型获取控制因子α;
阈值控制模块,根据所述控制因子α基于动态阈值算法计算所述目标端口的缓存阈值,以及根据所述缓存阈值为所述目标端口分配缓存。
13.如权利要求12所述的共享缓存管理装置,其特征在于,
所述代理模块中的所述目标神经网络包括第一子神经网络和第二子神经网络;所述第一子神经网络用于根据所述端口状态向量构建端口嵌入向量,所述端口嵌入向量保留有所述端口状态向量的时序信息;
通过对所述端口嵌入向量采用置换不变操作获取设备嵌入向量;
对所述端口嵌入向量和所述设备嵌入向量进行拼接处理后输入所述第二子神经网络获得端口汇总嵌入向量,所述端口汇总嵌入向量用于获取控制因子α,其中,所述拼接处理用于对每个所述端口嵌入向量进行所述设备嵌入向量标记以保留顺序信息。
14.如权利要求13所述的共享缓存管理装置,其特征在于,
所述第一子神经网络为循环神经网络(RNN)。
15.如权利要求13-14中任一项所述的共享缓存管理装置,其特征在于,
所述端口嵌入向量为ei=φ(xi),其中φ为第一子神经网络,xi为端口i的所述端口状态向量,N≥i≥1,N为大于1的正整数;
所述设备嵌入向量为
所述端口汇总嵌入向量为:
其中f为所述第二子神经网络。
16.如权利要求15所述的共享缓存管理装置,其特征在于,所述装置还包括:
奖励模块,用于根据决策间隔内的活跃流数量和活跃时间进行奖励函数设置;
所述代理模块根据所述奖励函数更新所述目标神经网络的参数;
所述决策间隔根据所述控制因子α的更新时间确定。
17.如权利要求15所述的共享缓存管理装置,其特征在于,所述装置还包括,
奖励模块,用于根据决策间隔内的所述目标端口的丢包数进行奖励函数设置;
所述代理模块根据所述奖励函数更新所述目标神经网络的参数;
所述决策间隔为连续两次所述控制因子α的更新之间的间隔时间。
18.如权利要求16-17中任一项所述的共享缓存管理装置,其特征在于,所述装置还包括:
决策控制模块,用于触发所述控制因子α周期性更新。
19.如权利要求16-17中任一项所述的共享缓存管理装置,其特征在于,所述装置还包括:
决策控制模块,用于基于预设个数的数据包事件触发所述控制因子α的更新,所述数据包事件包括数据包入队、出队和丢弃中的至少一种。
20.如权利要求19所述的共享缓存管理装置,其特征在于,所述装置还包括:
决策控制模块,用于基于预设个数的数据包事件触发所述控制因子α的更新,具体为:
当满足条件:
触发所述控制因子α的更新,其中和/>分别是端口i最近一次进行所述控制因子α的更新后的入队、丢弃和出队的数据包数量,β是一个超参数。
21.如权利要求12所述的共享缓存管理装置,其特征在于,
每个所述目标端口包括多个目标队列,所述端口缓存信息和所述流量信息包括每个目标队列的缓存信息和每个队列的流量信息;
所述阈值控制模块根据所述缓存阈值为所述目标端口分配缓存,具体为根据所述缓存阈值为所述目标端口的每个所述目标队列分配缓存。
22.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机执行权利要求1至11中任一项所述方法的操作。
23.一种系统,包括至少一个处理器,至少一个存储器;所述处理器、所述存储器通过通信总线连接并完成相互间的通信;
所述至少一个存储器用于存储代码;
所述至少一个处理器用于执行所述代码,以执行如权利要求1至11任一所述的方法。
CN202210475968.4A 2022-04-29 2022-04-29 一种共享缓存管理方法及装置 Active CN115297067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210475968.4A CN115297067B (zh) 2022-04-29 2022-04-29 一种共享缓存管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210475968.4A CN115297067B (zh) 2022-04-29 2022-04-29 一种共享缓存管理方法及装置

Publications (2)

Publication Number Publication Date
CN115297067A CN115297067A (zh) 2022-11-04
CN115297067B true CN115297067B (zh) 2024-04-26

Family

ID=83820367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210475968.4A Active CN115297067B (zh) 2022-04-29 2022-04-29 一种共享缓存管理方法及装置

Country Status (1)

Country Link
CN (1) CN115297067B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117424864B (zh) * 2023-12-18 2024-02-27 南京奕泰微电子技术有限公司 一种用于交换机的队列数据管理系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311685A (zh) * 2019-07-24 2021-02-02 华为技术有限公司 一种处理网络拥塞的方法以及相关装置
CN112448897A (zh) * 2020-10-30 2021-03-05 北京邮电大学 一种基于强化学习的交换机共享缓存分配方法及装置
CN112446501A (zh) * 2020-10-30 2021-03-05 北京邮电大学 真实网络环境中缓存分配模型的获取方法、装置及系统
CN113507423A (zh) * 2021-04-25 2021-10-15 清华大学 流量感知的交换机共享缓存调度方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9218290B2 (en) * 2009-04-27 2015-12-22 Intel Corporation Data caching in a network communications processor architecture
US10592453B2 (en) * 2018-08-01 2020-03-17 EMC IP Holding Company LLC Moving from back-to-back topology to switched topology in an InfiniBand network
US20220100676A1 (en) * 2020-09-29 2022-03-31 Microsoft Technology Licensing, Llc Dynamic cache management in beam search

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311685A (zh) * 2019-07-24 2021-02-02 华为技术有限公司 一种处理网络拥塞的方法以及相关装置
CN112448897A (zh) * 2020-10-30 2021-03-05 北京邮电大学 一种基于强化学习的交换机共享缓存分配方法及装置
CN112446501A (zh) * 2020-10-30 2021-03-05 北京邮电大学 真实网络环境中缓存分配模型的获取方法、装置及系统
CN113507423A (zh) * 2021-04-25 2021-10-15 清华大学 流量感知的交换机共享缓存调度方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
交换机共享缓存管理机制及仿真系统的设计与实现;单安童;中国优秀硕士学位论文全文数据库 信息科技辑(第1期);第I136-581页 *

Also Published As

Publication number Publication date
CN115297067A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
EP3563533B1 (en) Intelligent packet aggregation
US10178053B2 (en) Programmable broadband gateway hierarchical output queueing
US11099902B1 (en) Parallelized ingress compute architecture for network switches in distributed artificial intelligence and other applications
US11171891B2 (en) Congestion drop decisions in packet queues
US11057318B1 (en) Distributed artificial intelligence extension modules for network switches
US11715040B1 (en) Network switch with integrated gradient aggregation for distributed machine learning
CN109104373B (zh) 网络拥塞的处理方法、装置及系统
US10069683B2 (en) Apparatus for optimising a configuration of a communications network device
CN112532530B (zh) 一种拥塞通知信息调整的方法及设备
US10931602B1 (en) Egress-based compute architecture for network switches in distributed artificial intelligence and other applications
CN115297067B (zh) 一种共享缓存管理方法及装置
CN110708259A (zh) 自动调整队列阈值的信息无感知Coflow调度系统及其调度方法
CN114866494B (zh) 强化学习智能体训练方法、模态带宽资源调度方法及装置
CN112953848A (zh) 一种基于严格优先级的流量监管方法、系统及设备
CN111181873A (zh) 数据发送方法、装置、存储介质和电子设备
US20230041242A1 (en) Performing network congestion control utilizing reinforcement learning
US11748156B1 (en) System and method for maximizing processor and server use
CN102739510A (zh) 一种流控方法和装置
CN112910789A (zh) 拥塞控制方法以及相关设备
CN107204930B (zh) 令牌添加方法及装置
Wang et al. Learning buffer management policies for shared memory switches
CN112714081B (zh) 一种数据处理方法及其装置
CN109905331A (zh) 队列调度方法及装置、通信设备、存储介质
Eugster et al. Essential traffic parameters for shared memory switch performance
JP7156410B2 (ja) 通信装置、並びに、通信制御システム、方法及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant