CN110533188A - 机器学习设备和使用其的机器学习系统 - Google Patents
机器学习设备和使用其的机器学习系统 Download PDFInfo
- Publication number
- CN110533188A CN110533188A CN201811542512.5A CN201811542512A CN110533188A CN 110533188 A CN110533188 A CN 110533188A CN 201811542512 A CN201811542512 A CN 201811542512A CN 110533188 A CN110533188 A CN 110533188A
- Authority
- CN
- China
- Prior art keywords
- data
- machine learning
- machine
- learning
- data storage
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 313
- 238000013500 data storage Methods 0.000 claims abstract description 72
- 230000005540 biological transmission Effects 0.000 claims abstract description 4
- 239000000872 buffer Substances 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1004—Compatibility, e.g. with legacy hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种包括通用存储器模块接口的机器学习设备和使用其的机器学习系统。所述机器学习设备包括:数据储存电路,其被配置为储存通过存储器模块接口从主机设备接收到的原始数据和命令数据,并且储存作为对所述原始数据的机器学习的结果的机器学习数据和所述机器学习数据的位置数据;机器学习逻辑电路,其被配置为通过根据预编程的机器学习逻辑而对所述原始数据的所述机器学习来产生所述机器学习数据;以及机器学习控制器,其被配置为基于所述命令数据来从所述数据储存电路读取所述原始数据,将读取的原始数据传输到所述机器学习逻辑电路,以及将所述机器学习数据和所述位置数据写入到所述数据储存电路中。
Description
相关申请的交叉引用
本申请要求于2018年5月25日提交的申请号为10-2018-0059754的韩国专利申请的优先权,其公开内容通过引用整体并入本文。
技术领域
本公开的各种实施例总体而言涉及一种机器学习设备。更具体地,这些实施例涉及包括通用存储器模块接口的机器学习设备。
背景技术
机器学习系统能够通过从外部部件接收到的数据进行学习,并且基于学习结果来估计要从输入数据获取的输出数据。
传统上,机器学习系统已经被实现为用于机器学习的专用板或用于机器学习的USB型设备,或者被实现为基于图形处理单元(GPU)的图形卡。
由于机器学习技术已经被集中开发并且已经迅速得到广泛使用,因此需要更多种类的机器学习设备。
发明内容
本公开的实施例涉及一种经由通用存储器模块接口与传统计算机系统兼容的机器学习设备。
根据本公开的一方面,一种机器学习设备包括:数据储存电路,其被配置为储存通过存储器模块接口从主机设备接收到的原始数据和命令数据,并且储存作为对所述原始数据的机器学习的结果的机器学习数据和所述机器学习数据的位置数据;机器学习逻辑电路,其被配置为通过根据预编程的机器学习逻辑而对所述原始数据的所述机器学习来产生所述机器学习数据;以及机器学习控制器,其被配置为基于所述命令数据来从所述数据储存电路读取所述原始数据,将读取的原始数据传输到所述机器学习逻辑电路,以及将所述机器学习数据和所述位置数据写入到所述数据储存电路中。
根据本公开的另一方面,一种机器学习系统包括:主机设备,其被配置为包括一个或更多个处理器;以及机器学习设备,其被配置为通过根据预编程的机器学习逻辑而对与写入命令一起从所述主机设备接收到的原始数据执行机器学习来产生机器学习数据,并且一旦从所述主机设备接收到读取命令,就将所述机器学习数据传输到所述主机设备。所述机器学习设备包括多个芯片引脚,所述机器学习设备通过所述多个芯片引脚可连接到计算机主板。
根据本公开的另一方面,一种双列直插式存储器模块(DIMM)型的机器学习设备包括:根据DIMM标准配置的数据储存电路,所述数据储存电路被配置为储存根据DIMM协议提供的机器学习命令和目标数据;机器学习电路,其具有在其中被编程的机器学习逻辑以对所述目标数据执行机器学习操作来产生机器学习数据;以及控制电路,其被配置为一旦检测到储存在所述数据储存电路中的所述机器学习命令,就通过将所述目标数据从所述数据储存电路提供到所述机器学习电路来控制所述机器学习电路执行所述机器学习操作,以及将所述机器学习数据提供给所述数据储存电路。所述数据储存电路还被配置为储存所述机器学习数据以响应于根据所述DIMM协议提供的读取命令来提供储存的机器学习数据。
应理解,前面的一般性描述和下面的实施方案的详细描述都是示例性和解释性的。
附图说明
当结合附图考虑时,通过参考下面的详细描述,本公开的上述特征和其他特征以及优点将变得显而易见,其中:
图1是示出根据本公开的实施例的机器学习系统的示例的示意图。
图2是示出图1中所示的主机设备与机器学习设备之间的关系的示例的概念图。
图3是示出根据本公开的实施例的图2中所示的机器学习设备的示例的示意图。
图4是示出存储元件的各个数据储存区域在物理上彼此分离的概念图。
图5是示出在图3中所示的机器学习逻辑电路中包含的各个现场可编程门阵列(FPGA)的示例的示意图。
图6是示出根据本公开的实施例的主机设备和机器学习设备的操作的视图。
图7是示出根据本公开另一实施例的机器学习设备的示例的示意图。
图8是示出根据本公开又一实施例的机器学习设备的示例的示意图。
具体实施方式
现在将详细参考本公开的实施例,实施例的示例在附图中示出。贯穿本公开,在附图中使用的相同附图标记指代相同或相似的部件。注意,对“一个实施例”的引用不一定仅意味着一个实施例,并且对“一个实施例”的不同引用不一定是同一实施例。
结合本公开的实施例,仅出于说明性目的公开了具体的结构性和功能性描述,在不脱离本公开的范围或精神的情况下,本公开的实施例可以以各种方式来实现。
在本公开的描述中,应当理解,术语“第一”、“第二”、“第三”等可以用于描述各种组件,但是这些组件不受这些术语的限制。这些术语可以用于将一个组件与另一个组件区分开。例如,在不脱离本公开的范围的情况下,第一组件可以被称为第二组件,并且第二组件可以被称为第一组件。
本申请中使用的术语仅用于描述特定实施例,并不旨在限制本公开。除非上下文另有明确说明,否则单数形式也可以包括复数形式,反之亦然。
还将理解,当在本说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指定所述元件的存在并且不排除存在或添加一个或更多个其他元件。如本文所使用的,术语“和/或”包括一个或更多个相关所列项目的任何组合和所有组合。
除非另外定义,否则本文中使用的所有术语,包括技术术语或科学术语,具有与本领域技术人员理解的含义相同的含义。除非在本申请中明确定义,否则在通常使用的字典中定义的术语可以被分析为具有与相关领域的上下文相同的含义,并且可以不被分析为具有理想含义或过度形式含义。本公开中使用的术语仅用于描述特定实施例的目的,并不旨在限制本公开。
图1是示出根据本公开的实施例的机器学习系统的示意图。
图1中所示的机器学习系统可以包括主机设备100、存储器件200和机器学习设备300。
参考图1,主机设备100可以包括设置有一个或更多个处理器的算术运算设备,诸如中央处理单元(CPU)或图形处理单元(GPU)。
主机设备100可以从存储器件200接收算术运算所需的数据,并且可以将运算结果储存在存储器件200中。主机设备100可以将用于执行机器学习的命令和机器学习所需的数据传输到机器学习设备300,并且可以从机器学习设备300接收机器学习的结果。在这种情况下,主机设备100可以通过在主机设备100中包括的存储器控制器(MC)来与存储器件200和机器学习设备300进行通信。
存储器件200可以储存从主机设备100接收到的数据或者要传输到主机设备100的数据,并且可以辅助主机设备100的算术运算。存储器件200可以被实现为包括易失性存储器的任何储存媒介。存储器件200可以是基于双列直插式存储器模块(DIMM)标准的模块。作为示例而非限制,存储器件200可以包括无缓冲双列直插式存储器模块(UDIMM)、寄存式双列直插式存储器模块(RDIMM)、低负载双列直插式存储器模块(LRDIMM)、非易失性双列直插存储器模块(NVDIMM)等。
机器学习设备300可以根据预编程的机器学习逻辑而对从主机设备100与写入命令一起接收到的原始数据进行处理,可以根据对原始数据的处理结果来产生机器学习数据,并且可以响应于来自主机设备100的读取命令来将机器学习数据传输到主机设备100。机器学习设备300可以被实现为包括在电路板之上形成的多个DRAM芯片的存储器模块,所述电路板设置有耦接到主板10的芯片引脚。例如,机器学习设备300可以是基于与存储器件200中相同方式的DIMM标准的存储器模块。即,主机设备100可以将机器学习设备300视为与存储器件200中的相同方式的DIMM。
在图1中,主机设备100、存储器件200和机器学习设备300可以被实现为安装在服务器(未示出,例如安装在数据中心中的服务器)的主板10上。
图2是示出图1中所示的主机设备100与机器学习设备300之间的关系的示例的概念图。
参考图2,主机设备100可以在需要机器学习时通过存储器控制器MC将机器学习所需的数据DATA_CMD和DATA_RAW传输到机器学习设备300,并且可以从机器学习设备300接收作为机器学习结果的机器学习数据DATA_ML。这里,以与用于将数据写入到存储器件200中或从存储器件200读取数据的方法相同的方式,主机设备100可以通过DIMM接口(未示出)和存储器控制器(MC)将数据写入到机器学习设备300或从机器学习设备300读取数据。更详细地,主机设备100可以以与用于将数据写入到存储器件200中的方法相同的方式将机器学习所需的数据DATA_CMD和DATA_RAW传输到机器学习设备300,并且可以以与用于从存储器件200读取数据的方法相同的方式从机器学习设备300接收机器学习数据DATA_ML。
例如,如果主机设备100希望机器学习设备300执行机器学习,则主机设备100使用写入命令CMD_W和地址信息ADDR不仅可以将要在机器学习中使用的原始数据DATA_RAW写入到机器学习设备300的存储元件(例如,DRAM)中而且还可以将命令数据DATA_CMD写入到其中。此后,主机设备100可以使用时钟信号CLK、读取命令CMD_R和地址信息ADDR来读取储存在机器学习设备300的存储元件中的数据,使得主机设备100可以接收机器学习数据DATA_ML。即,主机设备100可以将机器学习设备300视为DIMM,使得主机设备100可以使用机器学习设备300来写入或读取数据。在读取机器学习数据DATA_ML期间,主机设备100可以周期性地监测在机器学习设备300中包含的每个存储元件的特定位置,使得主机设备100可以根据周期性监测的结果来预先识别机器学习数据DATA_ML是否被储存。
机器学习设备300可以通过根据预编程的机器学习逻辑对从主机设备100接收的原始数据DATA_RAW进行处理来执行机器学习,并且可以将作为机器学习结果的机器学习数据DATA_ML传输到主机设备100。例如,机器学习设备300可以使用已经由主机设备100写入到一个或更多个存储元件中的命令数据DATA_CMD和原始数据DATA_RAW来执行机器学习,并且可以将作为机器学习结果的结果数据DATA_ML储存在存储元件中。机器学习设备300可以包括多个现场可编程门阵列(在图2中表示为“FPGA”),每个现场可编程门阵列包括被编程的机器学习逻辑。
图3是示出根据本公开的实施例的图2中所示的机器学习设备300的示例的示意图。
参考图3,机器学习设备300可以包括数据储存电路310、机器学习逻辑电路320和机器学习控制器330。
数据储存电路310可以储存从主机设备100接收到的数据DATA_CMD和DATA_RAW、通过机器学习设备300的机器学习操作产生的机器学习数据DATA_ML以及指示机器学习数据DATA_ML的储存位置的位置数据DATA_LOC。数据储存电路310可以以与DIMM接口的相关领域相同的方式通过主板10的信号线使用DIMM接口来将数据传输到主机设备100并从主机设备100接收数据。
图4是示出数据储存电路310的存储元件的概念图。
如图4所示,数据储存电路310的每个存储元件(例如,示出为图3中的DRAM)可以包括第一储存区域和第二储存区域,在第一储存区域中储存与主机设备100进行数据通信所需的数据DATA_CMD和DATA_LOC,而在第二储存区域中储存数据DATA_RAW和DATA_ML作为传输/接收目标。第一储存区域和第二储存区域可以在物理上彼此分离。
因此,主机设备100可以将命令数据DATA_CMD写入到存储元件的指定位置,并且可以访问指定位置并读取位置数据DATA_LOC。具体地,可以预先指定与主机设备100进行通信所需的数据DATA_CMD和DATA_LOC的储存位置(即,地址),使得主机设备100可以通过访问指定位置来写入命令数据DATA_CMD并且可以通过访问指定位置来读取位置数据DATA_LOC。数据储存电路310的存储元件可以包括多个易失性存储元件,例如DRAM。
返回参考图3,在从机器学习控制器330接收到原始数据DATA_RAW时,机器学习逻辑电路320可以通过根据预编程的机器学习逻辑而对原始数据DATA_RAW进行处理来执行机器学习,并且可以将机器学习数据DATA_ML传输到机器学习控制器330。机器学习逻辑电路320可以包括其中机器学习逻辑被编程的多个FPGA FPGA1至FPGAn。
在这种情况下,FPGA FPGA1至FPGAn中的每个FPGA可以通过独立地从机器学习控制器330接收原始数据DATA_RAW来执行机器学习,并且可以将机器学习数据DATA_ML传输到机器学习控制器330。可选地,FPGA FPGA1至FPGAn可以依次执行机器学习逻辑。例如,第一FPGA FPGA1可以使用接收到的原始数据DATA_RAW而基于预编程的逻辑来执行机器学习,并且可以将机器学习的结果数据传输到第二FPGA FPGA2。第二FPGA FPGA2可以使用由第一FPGA FPGA1处理的数据而基于预编程的逻辑来执行机器学习,并且可以将指示机器学习结果的数据传输到第三FPGA FPGA3。这样,在机器学习被依次应用到最后的FPGA FPGAn之后,最后的FPGA FPGA n可以将完成的机器学习数据DATA_ML传输到机器学习控制器330。
机器学习控制器330可以将在数据储存电路310中储存的原始数据DATA_RAW传输到机器学习逻辑电路320,并且可以将作为机器学习逻辑电路320的机器学习结果的机器学习数据DATA_ML储存在数据储存电路310中。例如,机器学习控制器330可以周期性地监测命令数据DATA_CMD是否已经储存在数据储存电路310的特定位置,可以基于命令数据DATA_CMD而从数据储存电路310读取原始数据DATA_RAW,并且然后可以将读取的原始数据DATA_RAW传输到机器学习逻辑电路320。
当机器学习逻辑电路320执行机器学习时,机器学习控制器330可以切断其自身与数据储存电路310之间的连接。在完成机器学习之后,机器学习控制器330可以从机器学习逻辑电路320接收机器学习数据DATA_ML,并且可以将接收到的机器学习数据DATA_ML写入到数据储存电路310中。随后,机器学习控制器330可以将指示机器学习数据DATA_ML的储存位置的位置数据DATA_LOC写入到数据储存电路310的预定位置。
图5是示出在图3所示的机器学习逻辑电路320中包含的多个FPGA FPGA1至FPGAn之中的个别FPGA的示例的示意图。为了便于描述和更好地理解本公开,图5示例性地示出了两个连续FPGA(例如,第一FPGA FPGA1和第二FPGA FPGA2)的结构以及机器学习控制器330与两个FPGA(即,第一FPGA FPGA1和第二FPGA FPGA2)之间的关系。
参考图5,每个FPGA可以包括逻辑电路322、输入缓冲器324和输出缓冲器326。
逻辑电路322可以包括被编程的机器学习逻辑,可以通过根据被编程的机器学习逻辑而对储存在输入缓冲器324中的原始数据DATA_RAW进行处理来产生机器学习数据DATA_ML,并且可以将产生的机器学习数据DATA_ML传输到输出缓冲器326。
输入缓冲器324可以耦接到机器学习控制器330,并且可以暂时储存从机器学习控制器330接收到的原始数据DATA_RAW。
输出缓冲器324可以耦接到机器学习控制器330或耦接到随后的FPGA的输入缓冲器,并且可以暂时储存由逻辑电路322处理的数据DATA_ML。最后的FPGA FPGAn的输出缓冲器324可以耦接到机器学习控制器330。
图6是示出根据本公开的实施例的主机设备100和机器学习设备300的操作的视图。
参考图6,机器学习设备300的机器学习控制器330可以周期性地访问数据储存电路310的预先指定的储存位置,并且因此可以在步骤①中监测来自主机设备100的命令数据DATA_CMD是否被储存在预先指定的储存位置中。
当需要机器学习时,主机设备100可以通过DIMM接口访问机器学习设备300的数据储存电路310,可以将原始数据DATA_RAW写入到数据储存电路310中的指定储存位置中,以及然后可以在步骤②中将包括用于命令机器学习开始的命令和用于指示原始数据DATA_RAW的储存位置的信息的命令数据DATA_CMD写入到指定位置中。
当主机设备100写入命令数据DATA_CMD和原始数据DATA_RAW时,机器学习控制器330可以通过步骤①中所示的周期性地监测来识别在数据储存电路310中储存的命令数据DATA_CMD的存在。
已经确认在数据储存电路310中储存的命令数据DATA_CMD的存在的机器学习控制器330可以访问由命令数据DATA_CMD指示的储存位置,并且可以在步骤③中读取原始数据DATA_RAW。
随后,在步骤④中,机器学习控制器330可以将读取的原始数据DATA_RAW传输到机器学习逻辑电路320的输入缓冲器324。
在步骤⑤中,机器学习逻辑电路320可以通过根据预编程的机器学习逻辑而对接收到的原始数据DATA_RAW进行处理来执行机器学习操作。
在这种情况下,机器学习逻辑电路320的FPGA FPGA1至FPGAn中的每个FPGA可以独立地对从机器学习控制器330接收到的原始数据DATA_RAW进行处理,然后可以将机器学习数据DATA_ML传输到机器学习控制器330。
如果由于大型机器学习程序而不可能仅使用一个FPGA来执行机器学习,则FPGAFPGA1至FPGAn可以依次执行机器学习。例如,第一FPGA FPGA1可以使用接收到的原始数据DATA_RAW而基于预编程的逻辑来执行机器学习,并且可以将机器学习的结果数据传输到第二FPGA FPGA2。第二FPGA FPGA2可以使用从第一FPGA FPGA1接收到的数据,或者从第一FPGA FPGA1接收到的数据和第二FPGA FPGA2的输入缓冲器324的数据,基于预编程的逻辑来执行机器学习,并且可以将指示机器学习结果的数据传输到第三FPGA FPGA3。通过这种方式,机器学习可以依次应用到最后的FPGA FPGAn。
在步骤⑥中,可以将作为完成机器学习的结果的机器学习数据DATA_ML传输到机器学习控制器330。
机器学习控制器330可以通过访问数据储存电路310来写入机器学习数据DATA_ML,并且可以在步骤⑦中将指示机器学习数据DATA_ML的储存位置的位置数据写入到预先指定的储存位置中。
在写入原始数据DATA_RAW之后,主机设备100可以周期性地访问数据储存电路310的预先指定的储存位置,并且因此可以在步骤⑧中监测在数据储存电路310中的相应位置中储存的位置数据DATA_LOC的存在或不存在。
已经确认在数据储存电路310中储存的位置数据DATA_LOC的存在的主机设备100可以访问由位置数据DATA_LOC指示的储存位置,并且因此可以在步骤⑨中读取机器学习数据DATA_ML。
图7是示出根据本公开的实施例的机器学习设备300的示例的示意图。
图3的机器学习设备300以与图5中相同的方式允许FPGA FPGA1至FPGAn中的每个FPGA包括缓冲器(即,输入缓冲器324和输出缓冲器326),并且通过缓冲器324和326向/从机器学习控制器330传输/接收原始数据DATA_RAW和机器学习数据DATA_ML。
相反,图7中所示的机器学习设备300的机器学习逻辑电路340可以包括在多个FPGA FPGA1'至FPGAn'外部形成的存储元件342。即,FPGA FPGA1'至FPGAn'和机器学习控制器350可以通过存储元件342来传输和接收原始数据DATA_RAW和机器学习数据DATA_ML。
参考图7,机器学习设备300可以包括数据储存电路310、机器学习逻辑电路340和机器学习控制器350。
数据储存电路310可以在结构和功能上与图3的数据储存电路310相同,因此,为了便于描述,这里将省略其详细描述。
机器学习逻辑电路340可以通过根据预编程的机器学习逻辑而对从机器学习控制器350接收到的原始数据DATA_RAW进行处理来产生机器学习数据DATA_ML,并且可以将产生的机器学习数据DATA_ML传输到机器学习控制器350。机器学习逻辑电路340不仅可以包括其中机器学习逻辑被编程的多个FPGA FPGA1'至FPGAn',而且也可以包括分别耦接到FPGAFPGA1'至FPGAn'的多个存储元件342。
FPGAFPGA1'至FPGAn'可以读取在存储元件342中储存的原始数据DATA_RAW,可以根据机器学习逻辑而对读取的原始数据DATA_RAW进行处理,以及可以将机器学习数据DATA_ML写入到存储元件342中。FPGA FPGA1'至FPGAn'的机器学习逻辑可以以与FPGAFPGA1至FPGAn中相同的方式被编程。然而,与图3中所示的FPGA FPGA1至FPGAn不同,图7中所示的FPGA FPGA1'至FPGAn'可以不通过其内部缓冲器来输入和输出数据,并且可以通过将数据写入到外部的存储元件342或者从存储元件342读取储存的数据来输入和输出数据。
FPGA FPGA1'至FPGAn'中的每个FPGA可以通过独立地对原始数据DATA_RAW进行处理来产生机器学习数据DATA_ML,或者可以执行依次机器学习,使得最后的FPGA FPGAn'可以最终产生机器学习数据DATA_ML。存储元件342可以用作嵌入到FPGA FPGA1'至FPGAn'中的每个FPGA中的输入缓冲器和输出缓冲器。
以与数据储存电路310的存储元件中相同的方式,在每个存储元件342中包含的多个储存区域可以在物理上彼此分离。更详细地,每个存储元件342可以包括在物理上彼此区分的用于储存命令数据DATA_CMD的储存区域、用于储存位置数据DATA_LOC的储存区域、用于储存原始数据DATA_RAW的储存区域以及用于储存机器学习数据DATA_ML的储存区域。
机器学习控制器350可以将在数据储存电路310中储存的原始数据DATA_RAW传输到存储元件342,并且可以将在存储元件342中储存的机器学习数据DATA_ML传输到数据储存电路310。即,机器学习控制器350可以读取通过主机设备100已经写入到数据储存电路310中的原始数据DATA_RAW,并且可以将读取的原始数据DATA_RAW写入到存储元件342中。此外,机器学习控制器350可以读取通过FPGA FPGA1'至FPGAn'已经写入到存储元件342中的机器学习数据DATA_ML,并且可以将读取的机器学习数据DATA_ML写入到数据储存电路310中。
在这种情况下,用于控制图7的机器学习控制器350通过数据储存电路310向/从主机设备100传输/接收原始数据DATA_RAW和机器学习数据DATA_ML的方法可以与用于控制图3的机器学习控制器330通过数据储存电路310向/从主机设备100传输/接收数据DATA_RAW和DATA_ML的方法相同。另外,用于控制图7的机器学习控制器350通过存储元件342向/从FPGA FPGA1'至FPGAn'传输/接收数据DATA_RAW和DATA_ML的方法可以与用于控制图3的机器学习控制器330通过数据储存电路310向/从主机设备100传输/接收数据DATA_RAW和DATA_ML的方法相同。因此,为了方便描述,这里将省略对上述方法的详细描述。
图8是示出根据本公开的实施例的机器学习设备300的示例的示意图。
与图3的实施例相比,图8的实施例包括与图3的数据储存电路310相对应的存储元件362,这些存储元件362被嵌入在机器学习控制器360中。存储元件362的结构和功能与在图3的数据储存电路310中包含的其他存储元件的结构和功能相同。
尽管为了便于描述图8仅示出了图3中所示结构的改进示例,但是应该注意在不脱离本公开的范围或精神的情况下,图7的数据储存电路310的存储元件也可以嵌入在机器学习控制器350中。
从以上描述显而易见的是,根据本公开的实施例的机器学习设备可以形成为通用存储器模块形状,使得机器学习设备可以容易地将机器学习功能应用于通用计算机。
本领域技术人员将理解,在不脱离本公开的精神和基本特征的情况下,可以以除了本文所述之外的其他特定方式来实施实施例。因此,上述实施例在所有方面都应被解释为说明性的而非限制性的。本公开的范围应由所附的权利要求及其合法等同物来确定,而不是由以上描述确定。此外,在所附权利要求的含义和等同范围内的所有变化都旨在包含在其中。另外,对于本领域技术人员显而易见的是,在所附权利要求中未明确彼此引用的权利要求可以作为实施例组合呈现,或者在提交申请之后通过随后的修改包括为新的权利要求。
尽管已经描述了许多说明性实施例,但是应该理解,本领域技术人员可以设计出许多其他修改和实施例,这些修改和实施例将落入本公开的原理的精神和范围内。特别地,在本公开、附图和所附权利要求的范围内的组成部件和/或布置中可以进行多种变化和修改。除了组成部件和/或布置的变化和修改之外,替代使用对于本领域技术人员而言也是显而易见的。
附图中每个元件的附图标记
10:主板
100:主机设备
200:存储器件
300:机器学习设备
310:数据储存电路
320、340:机器学习逻辑电路
322:逻辑电路
324:输入缓冲器
326:输出缓冲器
330、350、360:机器学习控制器
342、362:存储元件
Claims (20)
1.一种机器学习设备,包括:
数据储存电路,其被配置为储存通过存储器模块接口从主机设备接收到的原始数据和命令数据,并且储存作为对所述原始数据的机器学习的结果的机器学习数据和所述机器学习数据的位置数据;
机器学习逻辑电路,其被配置为通过根据预编程的机器学习逻辑而对所述原始数据的所述机器学习来产生所述机器学习数据;以及
机器学习控制器,其被配置为基于所述命令数据来从所述数据储存电路读取所述原始数据,将读取的原始数据传输到所述机器学习逻辑电路,以及将所述机器学习数据和所述位置数据写入到所述数据储存电路中。
2.根据权利要求1所述的机器学习设备,其中,所述数据储存电路被配置为通过双列直插式存储器模块DIMM接口向所述主机设备传输数据并且从所述主机设备接收所述数据。
3.根据权利要求1所述的机器学习设备,
其中,所述数据储存电路包括多个存储器件,以及
其中,所述多个存储器件中的每个存储器件以如下方式配置:用于储存所述原始数据的区域、用于储存所述命令数据的区域、用于储存所述机器学习数据的区域和用于储存所述位置数据的区域是预定的。
4.根据权利要求1所述的机器学习设备,其中,所述机器学习逻辑电路包括其中所述机器学习逻辑被编程的多个现场可编程门阵列FPGA。
5.根据权利要求4所述的机器学习设备,其中,所述多个FPGA中的每个FPGA独立地从所述机器学习控制器接收所述原始数据、执行机器学习以及将所述机器学习数据传输到所述机器学习控制器。
6.根据权利要求4所述的机器学习设备,其中,所述多个FPGA被配置为依次执行所述机器学习逻辑,使得最终FPGA中的最后一个FPGA将所述机器学习数据传输到所述机器学习控制器。
7.根据权利要求4所述的机器学习设备,其中,所述多个FPGA中的每个FPGA包括:
输入缓冲器,其被配置为储存从所述机器学习控制器接收到的所述原始数据;
输出缓冲器,其被配置为储存所述机器学习数据;以及
逻辑电路,其中所述机器学习逻辑被编程,所述逻辑电路被配置为根据编程逻辑来对储存在所述输入缓冲器中的所述原始数据进行处理,以及将处理后的原始数据输出到所述输出缓冲器。
8.根据权利要求4所述的机器学习设备,其中,所述机器学习逻辑电路还包括分别与所述多个FPGA相对应的多个存储元件,并且被配置为暂时储存在所述机器学习控制器与所述多个FPGA之间传送的所述原始数据和所述机器学习数据。
9.根据权利要求1所述的机器学习设备,其中,所述机器学习控制器被配置为周期性地监测所述命令数据是否被储存在所述数据储存区域的预定区域中,基于所述命令数据来从所述数据储存电路读取所述原始数据,以及将读取的原始数据传输到所述机器学习逻辑电路。
10.根据权利要求9所述的机器学习设备,其中,所述机器学习控制器被配置为将所述机器学习数据储存在所述数据储存电路中,并且将指示所述机器学习数据的储存位置的所述位置数据储存在所述数据储存区域的所述预定区域中。
11.根据权利要求1所述的机器学习设备,其中,所述机器学习控制器被配置为将所述机器学习数据储存在所述数据储存电路中,并且将指示所述机器学习数据的储存位置的所述位置数据储存在所述数据储存区域的预定区域中。
12.根据权利要求1所述的机器学习设备,其中,所述数据储存电路被嵌入在所述机器学习控制器中。
13.一种机器学习系统,包括:
主机设备,其被配置为包括一个或更多个处理器;以及
机器学习设备,其被配置为通过根据预编程的机器学习逻辑而对与写入命令一起从所述主机设备接收到的原始数据执行机器学习来产生机器学习数据,并且一旦从所述主机设备接收到读取命令,就将所述机器学习数据传输到所述主机设备,
其中,所述机器学习设备包括多个芯片引脚,所述机器学习设备通过所述多个芯片引脚可连接到计算机主板。
14.根据权利要求13所述的机器学习系统,其中,所述机器学习设备被形成为基于双列直插式存储器模块DIMM标准的存储器模块的形状。
15.根据权利要求13所述的机器学习系统,其中,所述机器学习设备包括:
数据储存电路,其被配置为将所述原始数据和所述机器学习数据储存在其中;
机器学习逻辑电路,其被配置为通过根据预编程的机器学习逻辑的所述机器学习来产生所述机器学习数据;以及
机器学习控制器,其被配置为从所述数据储存电路读取所述原始数据,将读取的原始数据传输到所述机器学习逻辑电路,以及将所述机器学习数据写入到所述数据储存电路中。
16.根据权利要求15所述的机器学习系统,其中,所述主机设备被配置为使用写入命令和第一地址信息来将所述原始数据和命令数据写入到所述数据储存电路中,并且使用读取命令和第二地址信息来读取储存在所述数据储存电路中的所述机器学习数据。
17.根据权利要求15所述的机器学习系统,其中,所述主机设备被配置为周期性地监测所述数据储存电路的预定区域,以基于所述监测的结果来判断所述机器学习数据是否被储存在所述数据储存电路中。
18.根据权利要求15所述的机器学习系统,其中,所述机器学习逻辑电路包括其中所述机器学习逻辑被编程的多个FPGA。
19.根据权利要求18所述的机器学习系统,其中,所述多个FPGA中的每个FPGA包括:
输入缓冲器,其被配置为储存从所述机器学习控制器接收到的所述原始数据;
输出缓冲器,其被配置为储存所述机器学习数据;以及
逻辑电路,其中所述机器学习逻辑被编程,所述逻辑电路被配置为根据编程逻辑来对储存在所述输入缓冲器中的所述原始数据执行机器学习,以及将处理后的原始数据输出到所述输出缓冲器。
20.根据权利要求15所述的机器学习系统,其中,所述数据储存电路被嵌入在所述机器学习控制器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0059754 | 2018-05-25 | ||
KR1020180059754A KR102615443B1 (ko) | 2018-05-25 | 2018-05-25 | 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110533188A true CN110533188A (zh) | 2019-12-03 |
Family
ID=68614695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811542512.5A Pending CN110533188A (zh) | 2018-05-25 | 2018-12-17 | 机器学习设备和使用其的机器学习系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11972328B2 (zh) |
JP (1) | JP7292039B2 (zh) |
KR (1) | KR102615443B1 (zh) |
CN (1) | CN110533188A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220051089A1 (en) * | 2020-08-17 | 2022-02-17 | Google Llc | Neural Network Accelerator in DIMM Form Factor |
US11592984B2 (en) | 2020-09-11 | 2023-02-28 | Seagate Technology Llc | Onboard machine learning for storage device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028447A (en) * | 1997-07-24 | 2000-02-22 | Lucent Technologies Inc. | FPGA having predictable open-drain drive mode |
US20080130156A1 (en) * | 2006-09-13 | 2008-06-05 | Hitachi Global Storage Technologies Netherlands B.V. | Disk drive with nonvolatile memory for storage of failure-related data |
US20170102950A1 (en) * | 2003-05-23 | 2017-04-13 | Ip Reservoir, Llc | Intelligent Data Storage and Processing Using FPGA Devices |
US20170169358A1 (en) * | 2015-12-09 | 2017-06-15 | Samsung Electronics Co., Ltd. | In-storage computing apparatus and method for decentralized machine learning |
KR20170100416A (ko) * | 2016-02-25 | 2017-09-04 | 에스케이하이닉스 주식회사 | 집적 회로 시스템 |
US20180025268A1 (en) * | 2016-07-21 | 2018-01-25 | Tessera Advanced Technologies, Inc. | Configurable machine learning assemblies for autonomous operation in personal devices |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3005141B2 (ja) * | 1993-06-07 | 2000-01-31 | 株式会社日立製作所 | 気象予測システムおよびニューロコンピュータ制御システム |
JPH0736699A (ja) | 1993-07-15 | 1995-02-07 | Omron Corp | ファジィ・コンピュータ・システムおよびその動作方法、ファジィ推論回路および方法、ならびにディバイス・ドライバおよびその動作方法 |
JPH1115773A (ja) | 1997-06-24 | 1999-01-22 | Matsushita Electron Corp | 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法 |
JP2002207713A (ja) | 2001-01-11 | 2002-07-26 | Matsushita Electric Ind Co Ltd | Cpu間データ通信方法および装置 |
US9766818B2 (en) * | 2014-12-31 | 2017-09-19 | Samsung Electronics Co., Ltd. | Electronic system with learning mechanism and method of operation thereof |
US10013212B2 (en) * | 2015-11-30 | 2018-07-03 | Samsung Electronics Co., Ltd. | System architecture with memory channel DRAM FPGA module |
JP6320439B2 (ja) * | 2016-03-10 | 2018-05-09 | 株式会社東芝 | メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法 |
EP3286638A4 (en) | 2016-03-31 | 2018-09-05 | Hewlett-Packard Enterprise Development LP | Logical operations |
US10268541B2 (en) * | 2016-08-15 | 2019-04-23 | Samsung Electronics Co., Ltd. | DRAM assist error correction mechanism for DDR SDRAM interface |
US11694066B2 (en) * | 2017-10-17 | 2023-07-04 | Xilinx, Inc. | Machine learning runtime library for neural network acceleration |
US10394706B2 (en) * | 2017-11-02 | 2019-08-27 | Western Digital Technologies, Inc. | Non-volatile storage with adaptive command prediction |
US11373088B2 (en) * | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
-
2018
- 2018-05-25 KR KR1020180059754A patent/KR102615443B1/ko active IP Right Grant
- 2018-12-11 US US16/216,054 patent/US11972328B2/en active Active
- 2018-12-17 CN CN201811542512.5A patent/CN110533188A/zh active Pending
-
2019
- 2019-01-17 JP JP2019005632A patent/JP7292039B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028447A (en) * | 1997-07-24 | 2000-02-22 | Lucent Technologies Inc. | FPGA having predictable open-drain drive mode |
US20170102950A1 (en) * | 2003-05-23 | 2017-04-13 | Ip Reservoir, Llc | Intelligent Data Storage and Processing Using FPGA Devices |
US20080130156A1 (en) * | 2006-09-13 | 2008-06-05 | Hitachi Global Storage Technologies Netherlands B.V. | Disk drive with nonvolatile memory for storage of failure-related data |
US20170169358A1 (en) * | 2015-12-09 | 2017-06-15 | Samsung Electronics Co., Ltd. | In-storage computing apparatus and method for decentralized machine learning |
KR20170100416A (ko) * | 2016-02-25 | 2017-09-04 | 에스케이하이닉스 주식회사 | 집적 회로 시스템 |
US20180025268A1 (en) * | 2016-07-21 | 2018-01-25 | Tessera Advanced Technologies, Inc. | Configurable machine learning assemblies for autonomous operation in personal devices |
Non-Patent Citations (1)
Title |
---|
王健: "《计算机信息技术》", 辽宁师范大学出版社, pages: 109 * |
Also Published As
Publication number | Publication date |
---|---|
KR102615443B1 (ko) | 2023-12-20 |
JP7292039B2 (ja) | 2023-06-16 |
JP2019204485A (ja) | 2019-11-28 |
US20190362261A1 (en) | 2019-11-28 |
KR20190134293A (ko) | 2019-12-04 |
US11972328B2 (en) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151027B2 (en) | Methods and apparatuses for requesting ready status information from a memory | |
US11386024B2 (en) | Memory module having an open-drain output for parity error and for training sequences | |
KR101668899B1 (ko) | 내부 프로세서와 외부 프로세서 간의 통신 | |
US10891243B2 (en) | Memory bus MR register programming process | |
WO2014025678A1 (en) | Stacked memory device with helper processor | |
Leidel et al. | Hmc-sim: A simulation framework for hybrid memory cube devices | |
EP2972916B1 (en) | Memory latency management | |
US20140032984A1 (en) | Memory module and a memory test system for testing the same | |
CN110533188A (zh) | 机器学习设备和使用其的机器学习系统 | |
US8843728B2 (en) | Processor for enabling inter-sequencer communication following lock competition and accelerator registration | |
US20230059620A1 (en) | eFUSE ONE-TIME PROGRAMMABLE MEMORY WITH INTER INTEGRATED CIRCUIT (I2C) COMMUNICATION AND OPERATION METHOD THEREOF | |
TWI781722B (zh) | 記憶體裝置 | |
US20130346735A1 (en) | Enhanced system management bus | |
CN116048770A (zh) | 用于进程调度的方法和设备 | |
JP2009527816A5 (zh) | ||
JP2007172129A (ja) | 不揮発性メモリアクセス制御装置および不揮発性メモリ制御システム | |
JP2020140380A (ja) | 半導体装置及びデバッグシステム | |
CN118506828A (zh) | 配置相关操作数的自适应选择 | |
CN115373928A (zh) | 一种debug方法、控制器、系统、电子设备及存储介质 | |
KR20240114630A (ko) | 다이-투-다이 상호 연결을 위한 장치 및 방법 | |
KR20220120963A (ko) | 머신러닝 기반의 빅데이터 분석 및 성능 감시 시스템 | |
TW201517049A (zh) | 儲存裝置及其記憶體控制方法 |
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 |