CN111858023A - 用于具有设置在存储器本地的人工智能逻辑的计算系统的架构增强 - Google Patents

用于具有设置在存储器本地的人工智能逻辑的计算系统的架构增强 Download PDF

Info

Publication number
CN111858023A
CN111858023A CN202010222954.2A CN202010222954A CN111858023A CN 111858023 A CN111858023 A CN 111858023A CN 202010222954 A CN202010222954 A CN 202010222954A CN 111858023 A CN111858023 A CN 111858023A
Authority
CN
China
Prior art keywords
memory
artificial intelligence
information
model
semiconductor chip
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
Application number
CN202010222954.2A
Other languages
English (en)
Inventor
F·甘博纳特
D·济亚卡斯
M·A·施密瑟尔
K·A·多什
K·A·马隆
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN111858023A publication Critical patent/CN111858023A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Image Analysis (AREA)

Abstract

描述了一种半导体芯片。该半导体芯片包括存储器地址解码器逻辑电路,该存储器地址解码器逻辑电路包括不同的存储器地址位操纵路径,以针对被定向到存储器中的人工智能信息和被定向到存储器中的非人工智能信息的存储器访问分别实施不同的存储器交织方案。人工智能信息要利用设置在存储器本地的人工智能逻辑电路来处理。

Description

用于具有设置在存储器本地的人工智能逻辑的计算系统的架 构增强
技术领域
本发明的领域总体上涉及计算科学,并且更具体地涉及用于具有设置在存储器本地的人工智能逻辑的计算系统的架构增强。
背景技术
随着人工智能作为各种商业和/或政府实体的功能需要的出现,计算系统设计人员正在探索将人工智能处理集成到他们设计的计算系统中的新方式。
附图说明
结合以下附图,可以从以下具体实施方式中获得对本发明的更好的理解,其中:
图1示出了传统的IS基础结构;
图2示出了具有位于边缘的AI处理功能的IS基础结构;
图3示出了神经网络;
图4示出了具有集成的AI处理逻辑的存储器系统;
图5示出了具有用于人工智能信息的特殊分区的存储器空间;
图6示出了针对被定向到人工智能信息和非人工智能信息的存储器请求具有不同的地址解码处理路径的存储器控制器;
图7示出了针对被定向到人工智能信息和非人工智能信息的存储器请求具有不同的地址解码处理路径的缓存代理;
图8示出了具有这样的处理核心的计算系统:该处理核心具有增强的人工智能感知的TLB以及支持命令设置在存储器本地的AI处理逻辑的存储器访问指令的指令架构;
图9示出了计算系统。
具体实施方式
图1示出了对诸如大型公司和/或大型政府实体之类的大型实体而言常见的信息系统(IS)部署100。如在图1中观察到的,中心局交换机101用作更多区域/本地联网基础结构(例如,基站102、本地互联网服务提供商103等)与实体的数据中心104之间的网关。这里,不常见的是,一条或多条高速干线105在将中心局交换机101与数据中心104分开的长的地理距离上承载中心局交换机101与数据中心104之间的数据业务。
数据中心104进而依赖于针对一个或多个IS服务(例如,云计算、云存储等)的云服务106。这里,各种客户端设备108(例如,移动设备(例如,智能电话、膝上型计算机)和/或台式计算机、塔式计算机等)访问由云服务106存储的数据和/或访问/调用云服务106正在执行的应用。
一种新兴的趋势是边缘计算。参考图1,注意在云服务106中正在执行的云应用与调用该应用的客户端108之间存在的长距离(例如,(关于物理距离的)地理距离和/或(关于基础结构100上的节点跳的)逻辑距离)。在其中大量的数据业务在云服务106与数据中心104之间的干线107和/或在数据中心104与中心局交换机101之间的干线105上传输的用例中,可以由正在调用云106中的应用的客户端设备108观察到显著的时间延迟。
为了减少此类延迟,IS管理者正在寻求将功能从云106朝向更接近正在调用的客户端108的处理资源推出。因此,IS管理者正在寻求例如将应用功能推送到本地中心局交换机101、移动客户端正在与其通信的基站102和/或客户端设备的本地ISP 103的硬件资源中的任一个/全部的方式。
图2示出了可能的边缘计算架构,其中传统上已经在云206中实现的某些功能已经被替代地集成到边缘组件201、202和203中,使得减少前述延迟。即,利用在边缘组件处执行各种功能,应大大减少与IS基础结构内的大的地理距离和/或多个节点跳相关联的时延问题,从而导致从客户端的角度来看,与这些功能在云206中执行的情况相比,这些功能在显著更少的时间内完成。
可以从迁移到边缘中受益的一个功能是人工智能(AI)推理210。AI推理指代由AI功能响应于AI功能被要求处理的数据而做出的(多个)决策。一些可能的AI推理功能包括图像识别、语音识别、自然语言处理、视觉搜索以及个性化推荐,以及其他可能。
如本领域中已知的,AI功能典型地被实现为在一个或多个半导体芯片上实现的神经网络。传入数据被呈现给神经网络并且神经网络对数据进行处理以生成被称为“推理”的输出,该输出指示神经网络根据呈现给其的数据做出的某种智能决策。例如,如果特定的神经网络实现面部识别功能,则具有(例如,由相机生成的)面部的图像流可以被馈送到神经网络。然后,理想地,神经网络针对与所寻找的标准相匹配的那些面部图像提供匹配的推理,并且针对与所寻找的标准不匹配的那些面部图像提供不匹配的推理。
因此,参考图2,如果在位置201、202和203中的任何一处实现了AI推理功能210,则从发送由AI功能处理的数据的客户端的角度来看,与AI功能在云206中执行相比,AI推理功能应该更快地完成。即,例如,从客户端208(例如,相机、智能电话、计算机等)发送到IS基础结构中的大量流送的视频、音频和/或用户交互数据由神经网络在点201、202、203处进行处理,而不是端到端地跨基础结构流送到云206以在那里(传统上AI功能已经位于该处)进行处理。更进一步,由于卸载云是要点,因此将AI推理从云206迁移到数据中心204是一种改进。
图3描绘了示例性神经网络300。如在图3中观察到的,神经网络的内层可以在很大程度上被视为神经元层,每个神经元层从层之间的网状互连结构中的(多个)其他的(先前的)神经元层的神经元接收加权输出。根据先前的神经元对后续的神经元的影响或效果,设置从特定的先前的神经元的输出到另一后续的神经元的输入的连接的权重(为便于绘制,仅标记出一个神经元301和输入连接的权重)。这里,将先前的神经元的输出值乘以该神经元与后续的神经元的连接的权重,以确定先前的神经元对后续的神经元呈现的特定刺激。
神经元的总输入刺激对应于其所有加权输入连接的组合的刺激。根据各种实现方式,组合的刺激被计算为多维(例如,向量)乘法累加运算。这里,来自先前的神经元的输出值乘以其相应的权重以产生一组乘积。然后,将该组乘积累加(相加)以生成到接收神经元的输入刺激。然后,使用该刺激作为其输入来执行(例如,非线性或线性的)数学功能,该刺激表示由接收神经元执行的处理。即,数学功能的输出与神经元的输出相对应,该神经元的输出随后将乘以神经元的输出与其之后的神经元的连接的相应的权重。除非神经元的总输入刺激超过某个阈值,否则某些扩展的神经网络(称为“阈值化”神经网络)的神经元不会触发对其数学功能的执行。尽管图3的特定的示例性神经网络是纯粹的“前馈”结构,但其他神经网络可能在其数据流中表现出某种反向流或反馈。
值得注意的是,通常,神经元之间的连接越多,每层的神经元就越多和/或神经元层就越多,网络能够实现的智能就越大。因此,用于实际的、现实世界的人工智能应用的神经网络通常以大量的神经元和神经元之间的大量连接为特征。因此,为了通过神经网络处理信息,(不仅针对神经元输出功能,而且针对加权连接)进行非常大量的计算是必要的。
回顾图2关于AI推理功能210向边缘和/或至少向数据中心204的迁移的讨论,在边缘和/或数据中心204处实现AI功能的问题是实现这些AI功能所需要的计算资源的量。具体地,如上面所讨论的,AI功能通常要求大量的存储器空间。例如,参考图3,每个神经元输出值、与神经元输出值相乘的每个权重和/或每个神经元输入值的中任何一个可以消耗存储器位置。用于商业AI推理的大规模神经网络中存在的非常大量的神经元和神经间连接使得将AI功能作为标准应用软件程序在CPU或GPU上的执行难以实现。
更具体地,执行所有计算所需要的(多个)CPU/GPU核心与系统存储器之间的读取/写入活动非常密集。简而言之,在实现神经网络所需要的数百万次或数十亿次的计算中,与从系统存储器中重复移动大量读取数据、由CPU/GPU核心处理该数据以及然后将结果写回到系统存储器相关联的开销和能量远非最佳。
为了显著地改进这种低效率,提出了新的硬件架构,这些架构显著地减少了与利用传统的CPU或GPU实现神经网络相关联的开销。
图4示出了一种这样的架构400,在该架构400中,计算机的存储器系统内实例化了神经网络处理逻辑404。这里,如图4中可以看到的,系统存储器400被实现为多个存储器模块401,这些存储器模块401通过相应的存储器通道403的方式耦合到相应的主存储器控制器402。每个存储器模块具有用于实现例如系统的主存储器(例如,传统的双列直插式存储器模块(DIMM)、堆叠式存储器芯片存储器模块等)的存储器芯片。
通常,每个存储器控制器402被分配系统存储器地址空间的范围,以便具有特定存储器地址的CPU读取/写入请求使得该请求被定向到请求的存储器地址落入其经分配的地址范围的存储器控制器。然后,接收请求的存储器控制器402将特定地址解析到其特定的存储器通道中的一个、选定的通道上的特定存储器模块和/或选定的模块上的一个或多个存储器芯片。
根据图4的存储器系统设计,在存储器控制器402和/或存储器模块401内实例化了神经网络处理逻辑404(或更一般地,AI处理逻辑404)。神经网络处理逻辑404是用于执行神经网络的计算(例如,针对多个神经元中的每一个:将先前的神经元的输出值与其对应的权重相乘,将乘法结果相加,使用相加结果作为输入操作数来执行神经元的功能等)的特殊的硬件和/或固件。在高级别上,AI处理逻辑404从存储器读取值,对所读取的数据执行某种操作,并且然后将结果写回到存储器。
例如,根据一种情况,处理逻辑404从存储器读取先前的神经元的输出值以及其对应的权重,对所读取的值执行乘法累加,对乘法累加运算的结果执行神经元的数学功能,并且然后将数学功能的结果(其对应于神经元的输出)写回到存储器。为了充分地执行完整的神经网络,可能需要执行数百万次或数十亿次(例如,对神经网络中的每个神经元执行一次)上述场景。
将AI处理逻辑404放置在靠近从其读取所读取的值和/或将所读取的值写入的存储器与将神经网络作为应用软件在标准CPU/GPU上进行处理相比导致低得多的功耗,因为读取/写入信息不必行进那么长的距离穿过系统。出于类似的原因,神经网络利用更高的性能进行处理(访问由神经网络处理的数据花费更少的时间)。
然而,将AI处理元件404如此紧密地集成到存储器资源的问题是,“交织”会变得困难,甚至不可能实现。交织是用于使存储器读取和/或写入并行化的硬件地址操纵机制。交织可以在相同的通道上存在(例如,芯片选择或列交织,其中硬件尝试使相同的通道上的页面打开和关闭最小化)和/或跨相同的存储器控制器的通道存在(顺序/连续地址映射到相同的存储器控制器的不同的通道)和/或跨存储器控制器存在(某些顺序/连续地址映射到不同的存储器控制器)。
尽管交织在其中处理数据的处理元件(例如,一个或多个CPU)远离存储器层级的传统的计算系统中是有利的,但是相比之下,当诸如图4的AI处理元件404之类的处理元件分布在存储器系统本身内时,交织会变得困难得多。例如,考虑这样一种场景,其中设置在存储器模块上的神经网络处理元件必须处理已经跨多个存储器通道中的每一个和/或多个存储器控制器中的每一个交织(或“分割”)的数据。在这种情况下,将必须从通道和/或存储器控制器中的每一个中读取大量数据,而这些数据仅用于在处理元件的通道上被重新呈现。实现这种传输所需要的数据引导控制在(多个)存储器控制器上是非常难以实现的,并且实际上不可能从存储器模块由其本身实现。实际上,将执行完整AI(例如,神经网络)功能所需要的信息尽可能多地紧密地压缩在一起(例如,在相同的DIMM上)是更有意义的。
因此,如上面关于图2所讨论的,在一个或多个边缘组件上或在数据中心内集成AI推理并不容易实现。一般而言,如果与边缘或数据中心组件相关联的计算系统具有集成在其存储器系统内的AI推理逻辑,如上面关于图4所讨论的,则这种系统将不能够使用传统的经交织的存储器寻址。
在没有传统的经交织的存储器寻址的情况下,这些计算系统对于非AI功能的性能可能受到影响。另外地,由于在边缘处的计算资源通常比在云中更受限制,因此通常共享诸如系统存储器之类的计算资源,以便服务于边缘处的许多客户端。例如,如果边缘功能正在模仿云存储,则可以将当前活动的客户端的文件从大容量存储装置交换到存储器中,以代替必须事先从存储器中交换出来的当前非活动的客户端的文件。在存储器较慢的情况下,则针对不同客户端将信息交换到系统存储器中/将信息交换出到系统存储器/从系统存储器交换信息可能不是可行的(交换活动会消耗过多时间)。这些相同的观点适用于数据中心计算机——特别是在其资源有限并且需要在多个端点用户之间共享的情况下。
因此,将边缘(或数据中心)处的AI推理与计算系统存储器内集成的AI处理逻辑集成可能不利地影响提供其他边缘(或数据中心)功能和/或为大量客户端提供边缘功能的能力。
图5示出了一种改进,其为多个存储器地址范围子部分502_1到502_N保留了整个存储器地址空间500的部分501,子部分502_1到502_N中的每一个具有有限和/或可配置的交织粒度。这里,例如,每个存储器地址范围子部分502可以被指派给不同的神经网络(不同的“AI模型”)。例如,第一存储器地址子范围502_1被指派给用于面部识别推理的第一神经网络或AI模型,而第二存储器地址子范围502_2被指派给用于音频流推理的第二神经网络或AI模型。
重要的是,每个存储器地址子范围502_1到502_N可以具有其自己的经配置的存储器交织粒度。这里,由于不同的AI模型倾向于(例如,关于神经元级别的数量和/或神经元间连接的数量)具有不同的大小/维度,和/或底层硬件可能能够支持用于AI功能的不同程度的(有限的)交织,不仅可以使有限的交织(或没有交织)可用于AI功能,而且对于在传统的主存储器空间503外操作的非AI功能,可以将完整的或其他方式的传统交织保留在原位。
例如,考虑不支持对存储器系统中分布的神经网络处理实例进行任何交织的第一硬件平台,子范围502_1到502_N中的每一个都被配置为根本没有任何交织(无论是通道间交织、通道内交织还是存储器控制器间交织)。然而,值得注意的是,没有为AI模型内容保留的传统的存储器地址空间503空闲,以向其应用传统的存储器交织方案中的任一个。
在这种情况下,如果存储器通道(“A和B”)包括具有嵌入式AI处理逻辑的存储器模块,而其余存储器通道(“C+”)没有具有嵌入式AI处理逻辑的任何存储器模块,则由系统支持的AI模型的信息存储在存储器通道A和B上,其中进一步优选地将针对相同AI模型的信息存储在相同的存储器通道上或甚至存储在相同的存储器模块中。因此,每个子范围502_1到502_N将针对其相应的AI模型的存储器空间分配定义为限制到存储器通道A或B中的仅一个,并且进一步定义了不执行任何类型的存储器交织(甚至不进行通道内存储器交织)。相比之下,定向到存储器通道C+的标准/标称存储器空间503可以被配置为实现标准/传统的存储器交织技术(通道内、通道间和/或存储器控制器间)中的任一种技术。
作为另一示例,考虑支持对存储器系统中分布的神经网络处理实例进行一些有限的交织的第二硬件平台。例如,相同通道上的数据可以具有通道内交织和/或数据可以跨不多于两个存储器通道进行交织。再次强调,假设存储器通道A、B包括具有嵌入式AI处理逻辑的存储器模块,而其余存储器通道C+没有具有嵌入式AI处理逻辑的任何存储器模块。
在这种情况下,不同的子部分502_1到502_N中的每一个将针对其相应的AI模型的相应的存储器范围定义为限制到具有通道内交织的相同的通道或限制到具有通道内和/或通道间交织的存储器通道A和B。再次强调,定向到存储器通道C+的标准/标称存储器空间503可以被配置为实现标准/传统的存储器交织技术(通道内、通道间和/或存储器控制器间)中的任一种技术。
图6示出了具有支持上述寻址方案的地址解码器611的存储器控制器602。如在图6中观察到的,存储器控制器例如从CPU核心接收包括物理地址612的请求。如果物理地址612映射到标准/传统的地址空间503,则地址解码器611应用已经被配置用于该传统的地址空间的任何传统的交织。具体地,启用通道内和通道间地址位操纵块613_1、613_2中的一个或多个来操纵物理地址,使得根据所配置的交织方案将访问定向到适当的存储器位置。这里,配置寄存器空间615例如在系统启动期间由BIOS或UEFI固件编程,以针对传统的存储器空间503建立交织配置。
相比之下,如果请求包含映射到分配给AI模型中的一个的存储器空间的存储器地址612和/或包含特定AI模型的标识符(例如,AI模型ID),则该地址解码器611针对包含目标AI模型的信息的特定的存储器子范围(例如,子范围502_1)寻找存储器空间分配定义和交织配置信息。
然后,地址解码器611利用针对该子部分启用的任何(例如,有限的)交织方案614(如果有的话)来操纵地址。这里,(多个)位操纵块614可以包含例如与传统的通道内位操纵块相比相同或有限的通道内交织位操纵,和/或与传统的通道间位操纵相比有限的通道间位操纵。在根本不发生交织的情况下,绕过所有的位操纵块614。这里,配置寄存器空间615例如在系统启动期间由BIOS或UEFI固件编程,以针对存储器空间子部分/AI模型中的每一个建立存储器空间分配和交织配置。
在一些实施例中,例如,在针对相同的AI模型的所有信息被保持在相同的存储体、列或模块上的情况下,对于AI模型存储器子部分,不存在各种类型的交织,并且在系统地址解码器内沿着针对映射到特殊AI存储器空间502的地址的地址处理路径,不存在位操纵块中的一个或多个。
图7示出了扩展的系统地址解码功能,该扩展的系统地址解码功能在容纳存储器控制器间交织(连续地址跨多个存储器控制器分布)的系统中使用。大型多处理器计算系统典型地具有多个存储器控制器,其中每个存储器控制器被分配了整个系统存储器地址空间中的其自身的“切片”。
缓存代理是功能层,其驻留在存储器控制器与处理器之间的某个位置,以检测/解决冲突请求,并且然后基于请求地址将请求分发到正确的存储器控制器。因此,缓存代理是用于实现存储器控制器间交织的合适的架构位置。
图7描绘了具有集成的地址解码器721的缓存代理720,该集成的地址解码器721具有传统的地址位操纵逻辑723,如果启用该地址位操纵逻辑723,则针对具有映射到传统/标准的存储器空间503的地址的系统存储器请求实现存储器控制器间交织。相比之下,如果接收到的请求包括映射到AI模型的经分配的存储器空间子部分(或标识AI模型)的地址722,则至少对于不支持针对AI模型的任何类型的存储器控制器间交织的系统,地址位操纵逻辑723被绕过。因此,标准的存储器请求流可以跨存储器控制器进行交织,但是针对AI模型的请求流将不会这样交织。
图8涉及另一方法,其中通过对象ID来标识AI模型在其上进行操作的数据集。如本领域中已知的,首先在“训练”数据集上训练AI模型。训练过程(也称为机器学习)包括例如调整神经网络中的神经元间连接的权重值,直到神经网络响应于训练数据集的推理是正确的为止。一旦已经适当地训练了AI模型,就将该AI模型部署在例如具有集成在其存储器系统内的AI处理逻辑的计算系统中,例如,上面关于图4所描述的计算系统。然后,将真实的“实时”数据集应用于AI模型以用于实际推理。
这里,“实时”数据集可以被细化为“对象”。例如,面部识别AI模型可以对图像流进行操作以识别图像流内的面部的存在并提取它们(随后的第二个AI模型然后可以处理所提取的面部图像以标识感兴趣的人)。
这里,图像流中的每个图像(例如,每个帧或快照)可以被称为对象。然后,AI模型在逐个对象的基础上处理对象。在这种情况下,例如,边缘(或数据中心)计算系统接收(例如,来自相机的)稳定的对象流并将每个对象写入存储器中。然后,从存储器系统内(例如,在存储器模块上)操作的AI模型调用这些对象中的第一个,并对该对象进行推理(所寻找的(多个)面部是否存在)。在针对第一个对象写入其推理结果之后,AI模型然后移动并处理下一个对象。只要将新对象写入存储器中,该序列就会继续。
图8和图9的改进的系统包括架构钩,该架构钩允许对象在存储器中被访问,以用于将对象最初写入到存储器中以及用于通过AI模型对对象进行随后的读取和处理两者。
图8示出了具有通过网络803互连到多个缓存代理804的多个处理核心801的计算系统。每个缓存代理耦合到多个存储器控制器。存储器控制器和/或耦合到存储器控制器的缓存代理包括上面关于图4所讨论的AI处理逻辑。每个缓存代理804负责将存储器访问请求分发到正确的存储器控制器(例如,基于请求的存储器地址)。网络803负责将特定处理核心发出的存储器访问请求递送到正确的缓存代理(例如,基于请求的存储器地址)。
为简单起见,假设对于AI对象不可能进行存储器控制器间交织(即,对象必须完全存储在耦合到单个存储器控制器的存储器资源内)。这里,每个处理核心801的每个指令执行流水线的转换后备缓冲器(TLB)802在每个TLB条目中包括额外的信息项。
如本领域中已知的,利用必须映射到物理存储器地址的逻辑存储器地址来编写应用软件。TLB执行该转换。特别地,TLB使用存储器访问指令的逻辑地址作为跨执行存储器访问指令的执行流水线的TLB中的多个条目的查找参数。具有匹配逻辑地址的TLB条目包括针对该逻辑地址的物理地址。然后,构造包括物理地址的存储器访问请求(例如,分组),并且通过网络发送到由接收缓存代理对该存储器访问请求进行处理处。
在图8的改进的系统中,为保持AI对象所保留的存储器空间被注册到TLB 802。另外地,每个TLB条目被增强以包括指示该条目是否对应于AI对象的信息。因此,在向TLB 802注册AI对象之后,具有映射到该存储器空间的物理地址的任何TLB条目都被标记为指示该物理地址对应于AI对象。此后,在执行试图到达存储器中的AI对象的存储器访问指令之后,将指示访问被定向到AI对象的返回的TLB信息嵌入到通过网络803发送到适当的缓存代理的分组中。
接收缓存代理804包括逻辑电路805,该逻辑电路805在识别到该信息之后,使得缓存代理的存储器控制器间交织地址位操纵处理被绕过,并将存储器访问请求发送到其存储器资源保持AI对象的特定的存储器控制器。被定向到AI对象的所有存储器请求都以相同的方式处理(因此,被定向到AI对象的所有存储器请求都被定向到相同的存储器控制器)。因此,在正在由计算系统接收对象流并将其作为针对特定AI模型的数据集写入存储器中的情况下,从处理器核心发出的用于使得这些写入发生的写入请求都以这种方式处理。
这里,处理核心801的指令集架构可以被扩展806以包括新的存储器访问指令,以支持将数据集写入用于AI模型的存储器中。这里,该指令在技术上是存储器访问指令,因为该指令被定向到存储器。然而,该指令实际上是针对设置在存储器本地的AI处理逻辑的嵌入式命令。在理解新写入的数据要由AI模型进行操作的情况下,新指令还标识了哪个AI模型要对新写入的数据进行操作。
因此,根据第一写入指令的实施例,该写入指令格式标识:1)对象的写入地址;2)有效载荷(要写入的数据,其可以参考大容量存储装置中的位置、网络接口和/或网络接口入站队列(在这种情况下,写入指令触发有效载荷从大容量存储装置或网络接口到存储器中的DMA传输));3)要执行有效载荷中的数据的AI模型;以及4)存储器或寄存器地址,其中将存储来自由上述3)的AI模型对上述2)的有效载荷的处理的结果。
这里,由于分布在存储器系统内的AI处理逻辑实例类似于协处理器,因此上述指令的信息采用协处理器命令的形式,该协处理器命令的形式标识:a)要执行的功能(在上述3)中指定);b)要从哪里取回输入数据(在上述2)中指定);c)要将输入数据存储在存储器中的哪里(在上述1)中指定——假定当AI处理逻辑准备好对来自存储器的数据进行操作时能够从存储器中读取数据,这在当c)的数据与要处理该数据的AI处理逻辑存储在相同的存储器模块上时的“模块上”AI处理逻辑的情况下是最简单的);以及d)AI模型对输入数据的执行的结果(推理)要写入哪里(可以在存储器或寄存器空间中)。
因此,当根据这样的指令格式化的存储器请求最终到达存储器中的AI处理逻辑时,AI处理逻辑将具有对新存储的数据集/对象执行所需要的所有信息。
在另一实施例中,指示特定的条目对应于AI对象的TLB条目可以包括该条目所指代的AI对象的ID(“AI对象ID”)。AI对象ID可以被包括在发送给缓存代理的分组中,例如,用于更容易地参考要将请求发送到哪个存储器控制器。
这里,对象(以及对应地其对象ID)可以对应于特定的数据集(特定的帧或快照),或更一般地,该对象可以对应于存储器空间,在该存储器空间中要存储相同数据的多于一个数据集(来自相同视频流的多于一个帧或快照)。在后者的情况下,例如,回顾图像流的前述示例,不是将对象ID指派给图像流中的每个帧或快照,而是“AI对象”和对应的AI对象ID仅仅指代数据流本身和/或其存储器空间。因此,来自相同数据流的多个帧/快照可以与相同的对象和对象ID相关联。
在这样的实施例中,指令集架构可以被扩展为包括上面刚刚讨论的指令的扩展。即,在实施例中,指令集架构被扩展806以包括指令,该指令标识:1)对象的基址;2)到基址的偏移量(其例如标识特定帧或快照在存储器中的起始点);3)有效载荷(与上述指令中的2)相同);4)用于对例如从偏移量开始的固定数量的有效载荷数据执行的AI模型;以及5)存储器或寄存器地址,其中将存储来自处理在上述1)和2)中标识的有效载荷数据的AI模型的推理。
在各种实施例中,特定存储器控制器内的交织(例如,通道内交织和/或通道间交织)可以例如根据类似于上面关于图5所描述的每个AI模型分配502的针对对象配置的存储器子部分分配来由目标存储器控制器针对特定对象执行。
注意,在各种实施例中,可以以指令格式标识多于一个AI模型,使得多个不同的AI模型可以根据相同的数据集进行推理。例如,如果第一AI模型被训练以标识第一特定面部,并且第二AI模型被训练以标识第二特定面部,则来自相机的图像流的数据可以一次写入存储器中,并且然后由单个写入指令中标识的不同AI模型进行处理。
图9提供了计算系统900(例如,智能电话、平板计算机、膝上型计算机、台式计算机、服务器计算机等)的示例性描绘。如在图9中观察到的,基本计算系统900可以包括设置在多核心处理器或应用处理器上的中央处理单元901(其可以包括例如多个通用处理核心915_1到915_X)和主存储器控制器917、系统存储器902、显示器903(例如,触摸屏、平板)、本地有线点对点链路(例如,USB)接口904、各种网络I/O功能905(例如,以太网接口和/或蜂窝调制解调器子系统)、无线局域网(例如,WiFi)接口906、无线点对点链路(例如,蓝牙)接口907和全球定位系统接口908、各种传感器909_1到909_Y、一个或多个相机910、电池911、功率管理控制单元912、扬声器和麦克风913以及音频编码器/解码器914。
应用处理器或多核心处理器950可以包括其CPU 901内的一个或多个通用处理核心915、一个或多个图形处理单元916、存储器管理功能917(例如,存储器控制器)和I/O控制功能918。通用处理核心915典型地执行操作系统和计算系统的应用软件。图形处理单元916典型地执行图形密集型功能以例如生成在显示器903上呈现的图形信息。存储器控制功能917与系统存储器902接合以向系统存储器902写入数据/从系统存储器902读取数据。功率管理控制单元912通常控制系统900的功耗。
触摸屏显示器903、通信接口904-907、GPS接口908、传感器909、(多个)相机910、扬声器/麦克风913和编解码器914中的每一个都可以看作是相对于整个计算系统的各种形式I/O(输入和/或输出),该计算系统在适当情况下还包括集成的外围设备(例如,一个或多个相机910)。取决于实现方式,这些I/O组件中的各种I/O组件可以集成在应用处理器/多核心处理器950上,或者可以位于应用处理器/多核心处理器950的管芯外或封装的外部。计算系统还包括非易失性存储装置920,该非易失性存储装置920可以是系统的大容量存储组件。
图9的计算系统可以包括上面关于图1至图8所描述的特征中的任一个或与之相关联。例如,计算系统可以包括:1)分布在其存储器系统内的AI处理逻辑;2)专门保留的存储器空间,其具有与传统的存储器相比定制的/不同的交织设置,以更轻松地实现/使用AI处理逻辑;3)存储器控制器和/或缓存代理中的地址解码器,以利用与被定向到非AI信息的存储器访问相比不同的交织处理来提供被定向到AI信息的存储器访问;4)具有指示存储器地址是否对应于AI信息和/或ISA增强的TLB的处理核心,以将AI信息写入和/或AI处理逻辑命令嵌入到从处理核心发送到存储器控制器的存储器访问请求中。
前述的AI处理逻辑、存储器控制器、缓存代理和/或处理核心可以利用设置在一个或多个半导体芯片上的逻辑电路来实现。逻辑电路可以利用专用的硬连线的逻辑电路、可编程逻辑电路(例如,现场可编程门阵列(FPGA)电路)和/或被设计为执行程序代码的逻辑电路(例如,处理器、处理核心)来实现。
存储器可以由易失性存储器(例如,动态随机存取存储器(DRAM))、非易失性存储器(例如,电池备份的DRAM、新兴的不可字节寻址的易失性存储器技术(例如,诸如相变存储器之类的电阻式存储器、铁电存储器、磁存储器、自旋移矩存储器等))或易失性存储器和非易失性存储器的组合构成。
本发明的实施例可以包括上面阐述的各种进程。这些进程可以体现在机器可执行指令中。这些指令可以用于使通用处理器或专用处理器执行某些进程。可替代地,这些进程可以由包含用于执行进程的硬连线逻辑电路或可编程逻辑电路(例如,FPGA、PLD)的特定/定制硬件组件来执行,或者由经编程的计算机组件和定制硬件组件的任何组合来执行。例如,机器可读存储介质可以用于存储本文描述的组件的图和/或本文描述的自动插座组装/制造过程的图。
因此,本发明的元件也可以被提供作为用于存储机器可执行指令的机器可读介质。机器可读介质可以包括但不限于软盘、光盘、CD-ROM和磁光盘、闪速存储器、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或适于存储电子指令的其他类型的介质/机器可读介质。例如,本发明可以作为计算机程序下载,该计算机程序可以经由通信链路(例如,调制解调器或网络连接)通过载波中体现的数据信号或其他传播介质的方式从远程计算机(例如,服务器)传输到请求计算机(例如,客户端)。
在前述说明书中,已经参考本发明的特定示例性实施例描述了本发明。然而,将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛的精神和范围的情况下,可以对本发明进行各种修改和改变。因此,说明书和附图应被认为是说明性的而不是限制意义的。

Claims (22)

1.一种半导体芯片,包括:
存储器地址解码器逻辑电路,其包括不同的存储器地址位操纵路径,以针对被定向到存储器中的人工智能信息和被定向到所述存储器中的非人工智能信息的存储器访问分别实施不同的存储器交织方案,其中,所述人工智能信息要利用被设置在所述存储器本地的人工智能逻辑电路来处理。
2.根据权利要求1所述的半导体芯片,其中,所述存储器地址解码器逻辑电路在缓存代理内。
3.根据权利要求1所述的半导体芯片,其中,所述存储器地址解码器逻辑电路在存储器控制器内。
4.根据权利要求3所述的半导体芯片,其中,所述存储器控制器包括人工智能处理逻辑。
5.根据权利要求1所述的半导体芯片,其中,所述存储器的地址空间被划分为人工智能地址空间和标准地址空间,所述人工智能地址空间进一步被划分为可单独配置的部分,每个可单独配置的部分被分配给针对特定AI模型的信息。
6.根据权利要求5所述的半导体芯片,其中,在AI模型的经分配的可配置存储器部分中定义了所述AI模型的存储器交织方案。
7.根据权利要求6所述的半导体芯片,其中,无交织是所述AI模型的经分配的可配置存储器部分的配置选项。
8.根据权利要求1所述的半导体芯片,其中,所述人工智能信息要在无交织的情况下被访问。
9.根据权利要求1所述的半导体芯片,其中,所述存储器包括存储器模块,所述存储器模块包括人工智能处理逻辑电路。
10.一种半导体芯片,包括:
处理核心,其包括以下各项中的至少一个:
a)具有条目格式的转换后备缓冲器,所述条目格式包括标识所述条目的对应的存储器空间是否包含要由人工智能模型处理的信息的信息;
b)用于执行存储器访问指令的指令执行流水线,所述存储器访问指令具有指令格式,所述指令格式具有标识以下各项的内容:i)存储器中要由人工智能模型处理的信息,所述人工智能模型利用被设置在所述存储器本地的逻辑电路来实现;ii)所述人工智能模型;iii)由所述人工智能模型生成的结果要存储的位置。
11.根据权利要求10所述的半导体芯片,还包括缓存代理,如果存储器请求包括来自所述转换后备缓冲器的这样的信息:所述存储器请求所针对的存储器空间包含要由人工智能模型处理的人工智能信息,则所述缓存代理绕过交织存储器地址位操纵逻辑。
12.根据权利要求10所述的半导体芯片,其中,所述指令格式利用对象ID来标识存储器中要由人工智能模型处理的所述信息。
13.一种计算系统,包括:
网络接口;
多个处理核心;
具有集成的AI处理逻辑的存储器系统;以及,
存储器地址解码器逻辑电路,其包括不同的存储器地址位操纵路径,以针对被定向到存储器中的人工智能信息和被定向到所述存储器中的非人工智能信息的存储器访问分别实施不同的存储器交织方案,其中,所述人工智能信息要利用被设置在所述存储器本地的人工智能逻辑电路来处理。
14.根据权利要求14所述的计算系统,其中,所述存储器地址解码器逻辑电路在缓存代理内。
15.根据权利要求14所述的计算系统,其中,所述存储器地址解码器逻辑电路在存储器控制器内。
16.根据权利要求14所述的计算系统,其中,所述存储器的地址空间被划分为人工智能地址空间和标准地址空间,所述人工智能地址空间进一步被划分为可单独配置的部分,每个可单独配置的部分被分配给针对特定AI模型的信息。
17.根据权利要求17所述的计算系统,其中,在AI模型的经分配的可配置存储器部分中定义了所述AI模型的存储器交织方案。
18.根据权利要求18所述的计算系统,其中,无交织是所述AI模型的经分配的可配置存储器部分的配置选项。
19.根据权利要求14所述的计算系统,其中,所述人工智能信息要在无交织的情况下被访问。
20.根据权利要求14所述的计算系统,其中,所述处理核心中的至少一个进一步包括以下各项中的至少一个:
a)具有条目格式的转换后备缓冲器,所述条目格式包括标识所述条目的对应的存储器空间是否包含要由人工智能模型处理的信息的信息;
b)用于执行指令的指令执行流水线,所述指令具有指令格式,所述指令格式具有标识以下各项的内容:i)存储器中要由人工智能模型处理的信息;ii)所述人工智能模型;iii)由所述人工智能模型生成的结果要存储的位置。
21.根据权利要求21所述的计算系统,还包括缓存代理,如果存储器请求包括来自所述转换后备缓冲器的这样的信息:所述存储器请求所针对的存储器空间包含要由人工智能模型处理的人工智能信息,则所述缓存代理绕过交织存储器地址位操纵逻辑。
22.根据权利要求21所述的计算系统,其中,所述指令格式利用对象ID来标识存储器中要由人工智能模型处理的所述信息。
CN202010222954.2A 2019-04-26 2020-03-26 用于具有设置在存储器本地的人工智能逻辑的计算系统的架构增强 Pending CN111858023A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/396,576 US11036642B2 (en) 2019-04-26 2019-04-26 Architectural enhancements for computing systems having artificial intelligence logic disposed locally to memory
US16/396,576 2019-04-26

Publications (1)

Publication Number Publication Date
CN111858023A true CN111858023A (zh) 2020-10-30

Family

ID=67541676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010222954.2A Pending CN111858023A (zh) 2019-04-26 2020-03-26 用于具有设置在存储器本地的人工智能逻辑的计算系统的架构增强

Country Status (3)

Country Link
US (1) US11036642B2 (zh)
EP (1) EP3731101A1 (zh)
CN (1) CN111858023A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487006A (zh) * 2021-07-09 2021-10-08 上海新氦类脑智能科技有限公司 一种可移动人工智能辅助计算设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019211089A1 (en) * 2018-04-30 2019-11-07 Koninklijke Philips N.V. Adapting a machine learning model based on a second set of training data
US20220179787A1 (en) 2019-03-15 2022-06-09 Intel Corporation Systems and methods for improving cache efficiency and utilization
JP7408671B2 (ja) 2019-03-15 2024-01-05 インテル コーポレイション シストリックアレイに対するブロックスパース演算のためのアーキテクチャ
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
US11487339B2 (en) * 2019-08-29 2022-11-01 Micron Technology, Inc. Operating mode register
US20210064971A1 (en) 2019-08-29 2021-03-04 Micron Technology, Inc. Transfer data in a memory system with artificial intelligence mode
US11017842B2 (en) 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
US11861761B2 (en) * 2019-11-15 2024-01-02 Intel Corporation Graphics processing unit processing and caching improvements
CN113157602B (zh) * 2020-01-07 2024-01-26 中科寒武纪科技股份有限公司 一种对内存进行分配的方法、设备及计算机可读存储介质
US11295206B2 (en) * 2020-02-07 2022-04-05 Google Llc Interleaving memory requests to accelerate memory accesses
JP2023539955A (ja) * 2020-08-28 2023-09-20 ディープ ヴィジョン インコーポレイテッド スケジューリングされた並列プロセスの実行中にデータ転送帯域幅を増加させるためのプロセッサシステムおよび方法
CN115794913B (zh) * 2020-12-30 2024-03-15 华为技术有限公司 一种人工智能系统中数据处理方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341486A (en) * 1988-10-27 1994-08-23 Unisys Corporation Automatically variable memory interleaving system
US5619471A (en) * 1995-06-06 1997-04-08 Apple Computer, Inc. Memory controller for both interleaved and non-interleaved memory
WO2004006103A1 (en) * 2002-07-09 2004-01-15 Globespanvirata Incorporated Method and system for improving access latency of multiple bank devices
EP1607879A1 (en) * 2004-06-14 2005-12-21 Dialog Semiconductor GmbH Memory interleaving in a computer system
US7318114B1 (en) * 2004-10-29 2008-01-08 Sun Microsystems, Inc. System and method for dynamic memory interleaving and de-interleaving
US7657818B2 (en) * 2005-06-22 2010-02-02 Adaptive Spectrum And Signal Alignment, Inc. Dynamic minimum-memory interleaving
CN103946813B (zh) * 2011-09-30 2017-08-25 英特尔公司 基于使用统计量追踪的远存储器访问信号的生成
US20170162235A1 (en) 2015-12-02 2017-06-08 Qualcomm Incorporated System and method for memory management using dynamic partial channel interleaving
US9697118B1 (en) * 2015-12-09 2017-07-04 Nxp Usa, Inc. Memory controller with interleaving and arbitration scheme
WO2017129325A1 (en) 2016-01-29 2017-08-03 Fotonation Limited A convolutional neural network
KR20180012439A (ko) * 2016-07-27 2018-02-06 삼성전자주식회사 회선 신경망에서 가속기 및 이의 동작 방법
CN110874332B (zh) 2016-08-26 2022-05-10 中科寒武纪科技股份有限公司 内存管理单元及其管理方法
US10956813B2 (en) 2018-09-28 2021-03-23 Intel Corporation Compute-in-memory circuit having a multi-level read wire with isolated voltage distributions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487006A (zh) * 2021-07-09 2021-10-08 上海新氦类脑智能科技有限公司 一种可移动人工智能辅助计算设备
CN113487006B (zh) * 2021-07-09 2022-08-09 上海新氦类脑智能科技有限公司 一种可移动人工智能辅助计算设备

Also Published As

Publication number Publication date
EP3731101A1 (en) 2020-10-28
US20190251034A1 (en) 2019-08-15
US11036642B2 (en) 2021-06-15

Similar Documents

Publication Publication Date Title
US11036642B2 (en) Architectural enhancements for computing systems having artificial intelligence logic disposed locally to memory
CN110520856B (zh) 处理不邻近存储器作为邻近存储器以提高神经网络的性能
US11416295B2 (en) Technologies for providing efficient access to data in an edge infrastructure
US20230334294A1 (en) Multi-memory on-chip computational network
US11025544B2 (en) Network interface for data transport in heterogeneous computing environments
US11093148B1 (en) Accelerated volumes
US20190180183A1 (en) On-chip computational network
US20190179795A1 (en) Fast context switching for computational networks
US20210295168A1 (en) Gradient compression for distributed training
US20160350261A1 (en) Memory Deduplication Support for Remote Direct Memory Access (RDMA)
US10552936B2 (en) Solid state storage local image processing system and method
CN110531923A (zh) 包括可重配置的逻辑的存储设备和操作该存储设备的方法
WO2019118363A1 (en) On-chip computational network
US11605016B2 (en) Quantum computing service supporting local execution of hybrid algorithms
US11605033B2 (en) Quantum computing task translation supporting multiple quantum computing technologies
US20220050722A1 (en) Memory pool management
US11487342B2 (en) Reducing power consumption in a neural network environment using data management
WO2020264275A1 (en) Dynamic code loading for multiple executions on a sequential processor
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
US11650869B2 (en) Quantum computing service with local edge devices supporting multiple quantum computing technologies
Sumimoto et al. The design of advanced communication to reduce memory usage for exa-scale systems
US20210158425A1 (en) Quantum computing service supporting multiple quantum computing technologies
US20210073033A1 (en) Memory management using coherent accelerator functionality
US10078601B2 (en) Approach for interfacing a pipeline with two or more interfaces in a processor
US20240053897A1 (en) Fast memory clear of system memory

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