CN118284887A - 基于存储器设备的加速的深度学习系统 - Google Patents
基于存储器设备的加速的深度学习系统 Download PDFInfo
- Publication number
- CN118284887A CN118284887A CN202280076892.6A CN202280076892A CN118284887A CN 118284887 A CN118284887 A CN 118284887A CN 202280076892 A CN202280076892 A CN 202280076892A CN 118284887 A CN118284887 A CN 118284887A
- Authority
- CN
- China
- Prior art keywords
- data storage
- storage device
- controller
- data
- training
- 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
- 238000013135 deep learning Methods 0.000 title claims abstract description 74
- 238000013500 data storage Methods 0.000 claims abstract description 108
- 238000013528 artificial neural network Methods 0.000 claims abstract description 102
- 238000012549 training Methods 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims description 31
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 210000004027 cell Anatomy 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000012005 ligant binding assay Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/1016—Performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据存储设备包括存储器以及耦接到存储器设备的控制器。该控制器被配置为耦接到主机设备。控制器被进一步配置为接收多个命令,针对多个命令中的每个命令生成逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射,以及根据所生成的L2P映射将多个命令的数据存储到相应PBA。基于使用神经网络(NN)结构的深度学习(DL)训练模型的结果生成每个L2P映射。该控制器包括NN命令判读单元以及耦接到该NN命令判读单元的L2P映射生成器。控制器被配置为从存储器设备获取训练数据和NN参数。
Description
相关申请的交叉引用
本申请出于所有目的要求于2022年2月4日提交的名称为“Memory Device BasedAccelerated Deep-Learning System(基于存储器设备的加速的深度学习系统)”的美国非临时申请17/592,953号的全部内容的权益并且据此以引用方式并入。
背景技术
技术领域
本公开的实施方案整体涉及诸如固态驱动器(SSD)之类的数据存储设备,并且更具体地,涉及利用存储在非易失性存储器中的深度学习训练模型来提升数据存储设备的读取和写入性能。
相关领域的描述
深度学习(DL)系统是在各个领域中具有能力的逐步升级的技术。然而,由于DL系统的能力得到提高,因此DL系统的对应硬件资源消耗也增加。由于DL模型和数据集的大小,DL系统可能需要非常大容量的快速存储器。此类存储器可以是随机存取存储器(RAM)。然而,诸如NAND存储器设备之类的非易失性存储器可交错用于DL硬件计算。
通常,DL模型保持在数据存储设备的动态RAM(DRAM)处。随着DL模型的大小增加,可能需要更多的DRAM,因此增加了数据存储设备的成本。然而,诸如NAND存储器之类的非易失性存储器的每容量成本密集可能不如DRAM。但是,NAND存储器在性能输出方面可能无法与DRAM的性能输出相当。例如,数据集的大小可以是约100GB或以上。数据集是用于对DL模型进行微调的数据样本和标签的集合。
因此,在本领域中需要一种改进的使用非易失性存储器以供训练DL模型的DL系统。
发明内容
本公开整体涉及诸如固态驱动器(SSD)之类的数据存储设备,并且更具体地,涉及利用存储在非易失性存储器中的深度学习训练模型来提升数据存储设备的读取和写入性能。一种数据存储设备包括存储器以及耦接到存储器设备的控制器。该控制器被配置为耦接到主机设备。控制器被进一步配置为接收多个命令,针对多个命令中的每个命令生成逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射,以及根据所生成的L2P映射将多个命令的数据存储到相应PBA。基于使用神经网络(NN)结构的深度学习(DL)训练模型的结果生成每个L2P映射。该控制器包括NN命令判读单元以及耦接到该NN命令判读单元的L2P映射生成器。控制器被配置为从存储器设备获取训练数据和NN参数。
在一个实施方案中,数据存储设备包括存储器以及耦接到该存储器设备的控制器。该控制器被配置为耦接到主机设备。控制器被进一步配置为接收多个命令,针对多个命令中的每个命令生成逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射,以及根据所生成的L2P映射将多个命令的数据存储到相应PBA。基于使用神经网络(NN)结构的深度学习(DL)训练模型的结果生成每个L2P映射。
在另一个实施方案中,数据存储设备包括存储器以及耦接到存储器设备的控制器。该控制器包括神经网络(NN)命令判读单元以及耦接到NN命令判读单元的逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射生成器。控制器被配置为从存储器设备获取训练数据和NN参数。
在另一个实施方案中,数据存储设备包括非易失性存储器构件以及耦接到该非易失性存储器构件的控制器。控制器被配置为将神经网络(NN)参数和一个或多个超参数值存储在非易失性存储器构件中,执行全自主深度学习(DL)训练模型或执行半自主DL训练模型,并且根据所执行的DL训练模型存储数据。
附图说明
因此,通过参考实施方案,可以获得可详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,该实施方案中的一些实施方案在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据某些实施方案的存储系统的示意性框图,其中数据存储设备可用作主机设备的存储设备。
图2是示出根据某些实施方案的深度神经网络的示例性图示。
图3是示出根据某些实施方案的LBA/PBA寻址系统的示意性框图。
图4是示出根据某些实施方案的LBA/PBA寻址系统的示意性框图。
图5是示出根据某些实施方案的在深度学习训练期间进行的完全自主数据存储设备操作的方法的流程图。
图6是示出根据某些实施方案的在深度学习训练期间进行的半自主数据存储设备操作的方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想,在一个实施方案中公开的元件可有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开整体涉及诸如固态驱动器(SSD)之类的数据存储设备,并且更具体地,涉及利用存储在非易失性存储器中的深度学习训练模型来提升数据存储设备的读取和写入性能。一种数据存储设备包括存储器以及耦接到存储器设备的控制器。该控制器被配置为耦接到主机设备。控制器被进一步配置为接收多个命令,针对多个命令中的每个命令生成逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射,以及根据所生成的L2P映射将多个命令的数据存储到相应PBA。基于使用神经网络(NN)结构的深度学习(DL)训练模型的结果生成每个L2P映射。该控制器包括NN命令判读单元以及耦接到该NN命令判读单元的L2P映射生成器。控制器被配置为从存储器设备获取训练数据和NN参数。
图1是根据某些实施方案的存储系统100的示意性框图,其中主机设备104与数据存储设备106通信。例如,主机设备104可以利用包括在数据存储设备106中的非易失性存储器(NVM)110来存储和检索数据。主机设备104包括主机DRAM 138。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,该多个数据存储设备被配置为共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
主机设备104可以向一个或多个存储设备(诸如数据存储设备106)存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备,或能够从数据存储设备发送或接收数据的其他设备。
数据存储设备106包括控制器108、NVM 110、电源111、易失性存储器112、接口114和写入缓冲器116。在一些示例中,为了清楚起见,数据存储设备106可以包括图1中未示出的附加部件。例如,数据存储设备106可以包括印刷电路板(PCB),数据存储设备106的部件机械地附接到该印刷板,并且该印刷板包括电互连数据存储设备106的部件等的导电迹线。在一些示例中,数据存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因子包括但不限于3.5"数据存储设备(例如,HDD或SSD)、2.5"数据存储设备、1.8"数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCI Express(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe Mini卡、MiniPCI等)。在一些示例中,数据存储设备106可以直接耦接(例如,直接焊接或插入到连接器中)到主机设备104的母板。
接口114可以包括用于与主机设备104交换数据的数据总线和用于与主机设备104交换命令的控制总线中的一者或两者。接口114可以根据任何合适的协议工作。例如,接口114可以根据以下协议中的一个或多个协议来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI和PCIe、非易失性存储器express(NVMe)、OpenCAPI、GenZ、高速缓存相干接口加速器(CCIX)、开放信道SSD(OCSSD)等。接口114(例如,数据总线、控制总线或两者)电连接到控制器108,从而提供主机设备104与控制器108之间的电连接,允许在主机设备104与控制器108之间交换数据。在一些示例中,接口114的电连接还可以允许数据存储设备106从主机设备104接收电力。例如,如图1所示,电源111可以经由接口114从主机设备104接收电力。
NVM 110可包括多个存储器设备或存储器单元。NVM 110可被配置为存储和/或检索数据。例如,NVM 110的存储器单元可接收数据和来自控制器108的指示存储器单元存储该数据的消息。类似地,存储器单元可从控制器108接收指示存储器单元检索数据的消息。在一些示例中,存储器单元中的每个存储器单元可以被称为裸片。在一些示例中,NVM 110可包括多个裸片(例如,多个存储器单元)。在一些示例中,每个存储器单元可被配置为存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,每个存储器单元可以包括任何类型的非易失性存储器设备,诸如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其他类型的非易失性存储器设备。
NVM 110可包括多个闪存存储器设备或存储器单元。NVM闪存存储器设备可包括基于NAND或NOR的闪存存储器设备,并且可基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NVM闪存存储器设备中,闪存存储器设备可被划分成多个裸片,其中多个裸片中的每个裸片包括多个物理或逻辑块,这些物理或逻辑块可被进一步划分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NVM单元。NVM单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NVM闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。控制器108可在页面层级向NVM闪存存储器设备写入数据以及从其读取数据,以及在块层级从NVM闪存存储器设备擦除数据。
电源111可以向数据存储设备106的一个或多个部件提供电力。当以标准模式操作时,电源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可包括一个或多个电力存储部件,所述一个或多个电力存储部件被配置而当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是该等一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换言之,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
易失性存储器112可由控制器108用来存储信息。易失性存储器112可包括一个或多个易失性存储器设备。在一些示例中,控制器108可使用易失性存储器112作为高速缓存。例如,控制器108可将高速缓存的信息存储在易失性存储器112中,直到高速缓存的信息被写入到NVM 110。如图1所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4等))。
控制器108可以管理数据存储设备106的一个或多个操作。例如,控制器108可以管理从NVM 110读取数据和/或将数据写入该NVM。在一些实施方案中,当数据存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM110并且监测数据存储命令的进度。控制器108可以确定存储系统100的至少一个操作特性,并且将该至少一个操作特性存储到该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送至NVM 110之前将与写入命令相关联的数据暂时存储在内部存储器或写入缓冲器116中。
图2是示出根据某些实施方案的深度神经网络(DNN)200的示例性图示。DNN 200包括输入层202、第一隐藏层204a、第二隐藏层204b、第三隐藏层204c和输出层206。所示出的隐藏层的数量并非旨在进行限制,而是提供可能的实施方案的示例。此外,输入层202、第一隐藏层204a、第二隐藏层204b、第三隐藏层204c和输出层206各自包括多个节点。输入层202的每个节点可以是用于数据输入的输入节点。第一隐藏层204a、第二隐藏层204b和第三隐藏层204c的每个节点将来自数据的输入与一组系数或权重组合,该组系数或权重放大该输入或使其衰减,从而向与算法正在尝试学习的任务有关的输入分配重要性。第三隐藏层204c的结果被传递到输出层206的节点。
DNN 200中的单个节点激活的基本正向计算运算(例如,前馈)可由以下公式表示:对乘积累加(MAC)运算进行求和并且计算激活函数,该激活函数可以是最大值(例如,整流器激活函数或ReLU)或S形函数(sigmoid function)。换言之,正向计算运算是应用于权重乘以网络中的每个神经元或节点的输入值加上偏置的总和的激活S形函数。DNN 200学习方案基于用于更新神经网络(NN)权重的反向传播公式。对于输出层206的节点以及第一隐藏层204a、第二隐藏层204b和第三隐藏层204c的节点,反向传播公式基于计算得出的使用以下以矩阵和向量形式给出的Δ项的加权和。
δl=((wl+1)Tδl+1)⊙σ′(zl) (BP2)
反向传播公式(BP1、BP2、BP3和BP4)示出存在不发生改变并且可以在静态存储器(例如,图1的NVM 110)中进行处理的固定输入(z),并且存在临时进行调整或计算并且可以在动态存储器(例如,DRAM)中进行处理的可调整的值(C、δ和w)。另一存储器消耗元件是DL模型本身(即,NN参数,其可以是“权重”或C、δ和w)。随着DNN 200的能力提升,DL模型的大小也增加。尽管例示了全连接NN架构,但是应当理解,本文所述实施方案可应用于其它NN架构。
图3是示出根据某些实施方案的逻辑块地址(LBA)/物理块地址(PBA)寻址系统300的示意性框图。LBA/PBA寻址系统300包括耦接到数据存储设备308的主机设备302。数据存储设备308耦接到包括多个NVM 316a至316n的NVM存储系统。应当理解,多个NVM 316a至316n可设置在数据存储设备308中。在一些示例中,多个NVM 316a至316n是NAND设备。主机设备302包括CPU/GPU单元304以及基于块的命令生成器单元306。基于块的命令生成器单元306生成命令,该命令待编程到多个NVM 316a至316n中的NVM的块。主机设备302知道存储数据所在位置的LBA,并且数据存储设备308知道存储数据在多个NVM 316a至316n中的所在位置的PBA。
数据存储设备308包括命令判读单元310、基于块的闪存转换层(FTL)转换单元312和闪存接口单元314,所有这些均可设置在控制器中,诸如图1的控制器108。命令判读单元310可被配置为从基于块的命令生成器单元306接收或检索命令。命令判读单元310可处理命令并且生成用于经过处理的命令的相关控制信息。然后,将命令传递到基于块的FTL转换单元312,在该FTL转换单元中,命令从LBA转换成PBA。闪存接口单元314基于PBA将读取/写入命令传递到多个NVM 316a至316n中的相关NVM。换言之,LBA与PBA之间的转换层存储在数据存储设备308中,使得每当命令从主机设备302传递到数据存储设备308时,就从转换层获取与该命令相关联的LBA的对应PBA。
图4是示出根据某些实施方案的LBA/PBA寻址系统400的示意性框图。LBA/PBA寻址系统400包括耦接到数据存储设备408的主机设备402。数据存储设备408耦接到包括多个NVM 416a至416n的NVM存储系统。应当理解,多个NVM 416a至416n可设置在数据存储设备408中。主机设备402包括CPU/GPU单元404和NN接口命令生成器单元406。NN接口命令生成器单元406生成命令,该命令待编程到多个NVM 416a至416n中的NVM的块。在一些示例中,多个NVM 416a至416n是NAND设备。命令可包括NN结构和一个或多个超参数值。NN结构和一个或多个超参数值存储在多个NVM 416a至416n中的一个或多个NVM中。一个或多个超参数值可定义DL模型的训练程序。主机设备402知道存储数据所在位置的LBA,并且数据存储设备408知道存储数据在多个NVM 416a至416n中的所在位置的PBA。
数据存储设备408包括NN接口命令判读单元410、基于计划表的FTL转换单元412和闪存接口单元414,所有这些均可设置在控制器中,诸如图1的控制器108。NN接口命令判读单元410可被配置为从NN接口命令生成器单元406接收或检索命令。NN接口命令判读单元410可处理命令并且生成用于经过处理的命令的相关控制信息。在一些实施方案中,为了减少开销以及提高动态参数(例如,“权重”和成本计算)和诸如存储在多个NVM 416a至416n中的NVM中的数据之类的静态参数两者的存储利用率,数据存储设备可保持部分或全部NN结构和超参数值。
然后,命令被传递到基于计划表的FTL转换单元412,在该FTL转换单元中,基于从主机设备402传递到数据存储设备408的计划表(例如,DL模型)将命令从LBA转换成PBA。闪存接口单元414基于PBA将读取/写入命令传递到多个NVM 416a至416n中的相关NVM。换言之,LBA与PBA之间的转换层存储在数据存储设备408中,使得每当命令从主机设备402传递到数据存储设备408时,就从转换层获取与该命令相关联的LBA的对应PBA。
图5是示出根据某些实施方案的在深度学习训练期间进行的完全自主数据存储设备操作的方法500的流程图。可通过图4的数据存储设备408或图1的控制器108来实现方法500。出于示例性目的,本文可参考LBA/PBA寻址系统400的各方面。完全自主数据存储设备操作可省略将特定读取和写入命令的NN参数显式从CPU/GPU单元404传送到数据存储设备408。在除了CPU之外还利用GPU的情况下,可允许在GPU与多个NVM 416a至416n之间进行双读取/写入直接存储访问。
相反,数据存储设备408可保持NN结构和超参数值。NN接口命令判读单元410可在训练过程之前接收NN结构和/或超参数值,或者选择存储在静态配置中(即,离线存储)的NN结构和/或超参数值。因此,可通过“完全自主”方式完成训练过程以及将数据放置在缓冲器中(即,基于L2P映射将数据放置进入多个NVM 416a至416n中的NVM中),例如不需要来自主机设备402的反馈。
在框502处,主机设备402从预定义配置中选择NN结构或者显式传递NN结构。预定义配置可以是先前进行训练的NN结构或默认NN结构。在框504,主机设备402通过将数据位置传递通过专用接口来开始训练过程。例如,可通过将值或数据位置放置在图2的输入层202的节点中来开始训练过程。在框506处,数据存储设备408(或更具体地,控制器108)根据预定义计划表进行读取和写入。预定义计划表可以是在训练过程之前从主机设备402传递到数据存储设备408或者保持在离线位置(例如,多个NVM 416a至416n中的NVM)中的数据存储设备408中的NN结构和/或超参数值。在框508处,主机设备402通过读取数据并将数据放置在指向数据存储设备408的缓冲器中来进行计算。
方法500可独立实现框506和框508中任一者,或者一起实现框506和框508两者。例如,控制器108可执行框506而不执行框508。在一些示例中,可将框506的结果传递到主机设备402以在框508中实现或者和/或可将框508的结果传递到数据存储设备408以在框506中实现。随着减少对随机读取和写入的需求,可以以全块大小或部分块大小寻址数据。因此,可通过起始点和偏移在预定义计划表中寻址NN参数。在框510处,如果已经达到迭代的阈值数量(即,预定义训练计划表结束)或诸如由于成本计算保持恒定而通过主机设备402终止训练过程,则DL模型训练结束。
在替代寻址方案中,可使用密钥值(KV)对接口而不是PBA到LBA映射。可通过使用密钥来寻址每个数据实例(例如,值)。可在与迭代或部分迭代相关的结构中寻址NN参数。例如,可通过单个密钥来寻址属于第一迭代的所有NN参数(例如,节点多于100的列表中的节点1至100)。
为了减少模型过度拟合(例如,冗余计算、不必要的移位等),DL模型训练可采用丢弃法。丢弃法致使在算法的每次迭代中禁用一个或多个隐藏层的一些节点,以提高DL模型的稳健性,从而提高算法的性能。然而,丢弃法引入一定程度的不确定性。因为网络连接在每次迭代中有效地发生变化,所以可按不同方式使用NN参数。如果可在训练过程之前应用丢弃法,则经过修改的NN连接可能已经反映在NN超参数中。例如,控制器108或数据存储设备408可通过逐次迭代解析NN结构迭代或者通过指示每次迭代应当跳过哪些节点来将丢弃法应用于特定节点。在一些示例中,数据存储设备408或控制器108可根据预定义随机化设置来使每次迭代丢弃的节点随机化。
图6是示出根据某些实施方案的在深度学习训练期间进行的半自主数据存储设备操作的方法600的流程图。可通过图4的数据存储设备408或图1的控制器108来实现方法600。出于示例性目的,本文可参考LBA/PBA寻址系统400的各方面。当数据存储设备408在半自主模式下工作时,CPU/GPU单元404可指出要在每次迭代中读取的NN参数。因此,当基于L2P映射将数据存储在多个NVM 416a至416n中时,可减少使读取/写入同步的挑战并且减少处理丢失。
数据存储设备408或控制器108可利用DL模型训练工作量唯一特征,并且在每次读取和损耗计算之后以预定义确定性方式更新NN参数。因此,数据存储设备408或控制器108可通过以半自主方式实施写入命令来更新“权重”。换言之,对NN参数或“权重”进行的每次更新或写入均完成到与先前读取相同的地址。因此,可能不需要发送特定的写入命令。相反,CPU/GPU单元404将会在每次迭代之后将要更新的NN参数“权重”的列表传送到数据存储设备408。
在框602处,主机设备402从预定义配置中选择NN结构或者为一次迭代显式传递NN结构。预定义配置可以是先前进行训练的NN结构或默认NN结构。在框604,主机设备402通过将数据位置传递通过专用接口来开始训练过程。例如,可通过将值或数据位置放置在图2的输入层202的节点中来开始训练过程。在框606处,数据存储设备408(或更具体地,控制器108)根据为一次训练迭代预定义的计划表进行读取和写入。预定义计划表可以是在训练过程之前从主机设备402传递到数据存储设备408或者保持在离线位置(例如,多个NVM 416a至416n中的NVM)中的数据存储设备408中的NN结构和/或超参数值。在框608处,主机设备402通过读取数据并将数据放置在指向数据存储设备408的缓冲器中来进行计算。
方法600可独立实现框606和框608中任一者,或者一起实现框606和框608两者。例如,控制器108可执行框606而不执行框608。在一些示例中,可将框606的结果传递到主机设备402以在框608中实现或者和/或可将框608的结果传递到数据存储设备408以在框606中实现。随着减少对随机读取和写入的需求,可以以全块大小或部分块大小寻址数据。因此,可通过起始点和偏移在预定义计划表中寻址NN参数。在框610处,数据存储设备408或控制器108确定DL模型训练是否已经结束。例如,如果已经达到迭代的阈值数量(即,预定义训练计划表结束)或者主机设备402诸如由于成本计算保持恒定而终止训练过程,则训练已经结束。如果在框610处训练尚未结束,则方法600返回到框602。然而,如果在框610处训练已经结束,则方法600结束于框612处。
通过减少运行机器学习应用程序的主机设备与数据存储设备的闪存存储器之间的命令传送和解判的开销,可减少电力消耗并且可提高吞吐量。
在一个实施方案中,数据存储设备包括存储器以及耦接到该存储器设备的控制器。该控制器被配置为耦接到主机设备。控制器被进一步配置为接收多个命令,针对多个命令中的每个命令生成逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射,以及根据所生成的L2P映射将多个命令的数据存储到相应PBA。基于使用神经网络(NN)结构的深度学习(DL)训练模型的结果生成每个L2P映射。
控制器被进一步配置为接收NN结构和一个或多个超参数值,以及将NN结构和超参数值存储在存储器设备中。接收来自主机设备的NN结构。存储器设备是非易失性存储器设备。一个或多个超参数值定义DL训练模型的训练程序。在训练程序开始时将NN结构和一个或多个超参数值提供给DL训练模型。DL训练模型使用一个或多个预定义参数集的预定义超参数值。在生成每个L2P映射之后更新DL训练模型。控制器被进一步配置为根据NN结构读取权重。在生成每个L2P映射之后更新权重。控制器被进一步配置为将多个命令的数据放置在指定缓冲器中。在不涉及主机设备的情况下完成放置。
在另一个实施方案中,数据存储设备包括存储器以及耦接到存储器设备的控制器。该控制器包括神经网络(NN)命令判读单元以及耦接到NN命令判读单元的逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射生成器。控制器被配置为从存储器设备获取训练数据和NN参数。
NN命令判读单元被配置为与设置在主机设备中的NN接口命令生成器连接。NN参数是KV对数据。在深度学习(DL)训练模型中利用训练数据和NN参数。禁用DL训练模型的一个或多个部分。控制器被配置为执行从存储器设备自主获取训练数据和NN参数。控制器被进一步配置为更新与深度学习(DL)训练模型相关联的一个或多个权重。在与该一个或多个权重的先前读取相同的地址进行该更新。
在另一个实施方案中,数据存储设备包括非易失性存储器构件以及耦接到该非易失性存储器构件的控制器。控制器被配置为将神经网络(NN)参数和一个或多个超参数值存储在非易失性存储器构件中,执行全自主深度学习(DL)训练模型或执行半自主DL训练模型,并且根据所执行的DL训练模型存储数据。
非易失性存储器构件是基于NAND的存储器构件。执行包括根据预定义训练计划表进行读取和写入。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种数据存储设备,所述数据存储设备包括:
存储器设备;
控制器,所述控制器耦接到所述存储器设备,其中,所述控制器被配置为耦接到主机设备,并且其中,所述控制器被进一步配置为:
接收多个命令;
针对所述多个命令中的每个命令生成逻辑块地址(LBA)
到物理块地址(PBA)(L2P)映射,其中,每个所述L2P映射是基于使用神经网络(NN)结构的深度学习(DL)训练模型的结果而生成的;以及
根据所生成的L2P映射将所述多个命令的数据存储到相应的PBA。
2.根据权利要求1所述的数据存储设备,其中,所述控制器被进一步配置为:
接收所述NN结构和一个或多个超参数值;以及
将所述NN结构和所述超参数值存储在所述存储器设备中。
3.根据权利要求2所述的数据存储设备,其中,从主机设备接收所述NN结构。
4.根据权利要求2所述的数据存储设备,其中,所述存储器设备是非易失性存储器设备。
5.根据权利要求2所述的数据存储设备,其中,所述一个或多个超参数值定义所述DL训练模型的训练程序。
6.根据权利要求5所述的数据存储设备,其中,在所述训练程序开始时将所述NN结构和所述一个或多个超参数值提供给所述DL训练模型。
7.根据权利要求5所述的数据存储设备,其中,所述DL训练模型使用一个或多个预定义参数集的预定义超参数值。
8.根据权利要求1所述的数据存储设备,其中,在生成每个所述L2P映射之后更新所述DL训练模型。
9.根据权利要求1所述的数据存储设备,其中,所述控制器被进一步配置为根据所述NN结构读取权重,并且其中,在生成每个所述L2P映射之后更新所述权重。
10.根据权利要求1所述的数据存储设备,其中,所述控制器被进一步配置为将所述多个命令的数据放置在指定的缓冲器中,并且其中,在不涉及主机设备的情况下完成放置。
11.一种数据存储设备,所述数据存储设备包括:
存储器设备;
控制器,所述控制器耦接到所述存储器设备,所述控制器包括:
神经网络(NN)命令判读单元;和
逻辑块地址(LBA)到物理块地址(PBA)(L2P)映射生成器,所述生成器耦接到所述NN命令判读单元,其中,所述控制器被配置为从所述存储器设备获取训练数据和NN参数。
12.根据权利要求11所述的数据存储设备,其中,所述NN命令判读单元被配置为与设置在主机设备中的NN接口命令生成器连接。
13.根据权利要求11所述的数据存储设备,其中,所述NN参数是KV对数据。
14.根据权利要求11所述的数据存储设备,其中,在深度学习(DL)训练模型中利用所述训练数据和所述NN参数。
15.根据权利要求14所述的数据存储设备,其中,所述DL训练模型的一个或多个部分被禁用。
16.根据权利要求11所述的数据存储设备,其中,所述控制器被配置为执行从所述存储器设备自主获取所述训练数据和所述NN参数。
17.根据权利要求11所述的数据存储设备,其中,所述控制器被进一步配置为更新与深度学习(DL)训练模型相关联的一个或多个权重,并且其中,在与所述一个或多个权重的先前读取相同的地址进行更新。
18.一种数据存储设备,所述数据存储设备包括:
非易失性存储器构件;和
控制器,所述控制器耦接到所述非易失性存储器构件,所述控制器被配置为:
将神经网络(NN)参数和一个或多个超参数值存储在所述非易失性存储器构件中;
进行以下任一操作:
执行完全自主的深度学习(DL)训练模型;或者
执行半自主DL训练模型;以及
根据所执行的DL训练模型存储数据。
19.根据权利要求18所述的数据存储设备,其中,所述非易失性存储器构件是基于NAND的存储器构件。
20.根据权利要求18所述的数据存储设备,其中,执行包括根据预定义的训练计划表进行读取和写入。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/592,953 | 2022-02-04 | ||
US17/592,953 US20230251792A1 (en) | 2022-02-04 | 2022-02-04 | Memory Device Based Accelerated Deep-Learning System |
PCT/US2022/030419 WO2023149916A1 (en) | 2022-02-04 | 2022-05-21 | Memory device based accelerated deep-learning system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118284887A true CN118284887A (zh) | 2024-07-02 |
Family
ID=87520892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280076892.6A Pending CN118284887A (zh) | 2022-02-04 | 2022-05-21 | 基于存储器设备的加速的深度学习系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230251792A1 (zh) |
KR (1) | KR20240073167A (zh) |
CN (1) | CN118284887A (zh) |
DE (1) | DE112022004464T5 (zh) |
WO (1) | WO2023149916A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151346B (zh) * | 2023-10-30 | 2024-02-09 | 中国民航大学 | 一种基于智慧学习的民航专业教学培训系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2496798B (en) * | 2010-07-27 | 2016-10-12 | Ibm | Logical to physical address mapping in storage systems comprising solid state memory devices |
US11295202B2 (en) * | 2015-02-19 | 2022-04-05 | Seagate Technology Llc | Storage device with configurable neural networks |
KR102369209B1 (ko) * | 2017-02-23 | 2022-02-28 | 세레브라스 시스템즈 인코포레이티드 | 가속화된 심층 학습 |
JP6974697B2 (ja) * | 2017-05-26 | 2021-12-01 | 富士通株式会社 | 教師データ生成装置、教師データ生成方法、教師データ生成プログラム、及び物体検出システム |
US10963394B2 (en) * | 2018-04-16 | 2021-03-30 | Samsung Electronics Co., Ltd. | System and method for optimizing performance of a solid-state drive using a deep neural network |
EP3845023A4 (en) * | 2018-08-29 | 2022-06-15 | Carleton University | AUTHORIZING WIRELESS NETWORK CUSTOMIZATION USING TOLERANCE ZONE MODELING AND PREDICTIVE ANALYSIS |
CN110888588B (zh) * | 2018-09-07 | 2023-09-01 | 合肥沛睿微电子股份有限公司 | 快闪记忆体控制器及相关的访问方法及电子装置 |
US10838870B2 (en) * | 2019-04-17 | 2020-11-17 | EMC IP Holding Company LLC | Aggregated write and caching operations based on predicted patterns of data transfer operations |
US11556766B2 (en) * | 2020-03-23 | 2023-01-17 | Hewlett Packard Enterprise Development Lp | Loading of neural networks onto physical resources |
-
2022
- 2022-02-04 US US17/592,953 patent/US20230251792A1/en active Pending
- 2022-05-21 DE DE112022004464.0T patent/DE112022004464T5/de active Pending
- 2022-05-21 WO PCT/US2022/030419 patent/WO2023149916A1/en active Application Filing
- 2022-05-21 CN CN202280076892.6A patent/CN118284887A/zh active Pending
- 2022-05-21 KR KR1020247016204A patent/KR20240073167A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
DE112022004464T5 (de) | 2024-07-04 |
WO2023149916A1 (en) | 2023-08-10 |
KR20240073167A (ko) | 2024-05-24 |
US20230251792A1 (en) | 2023-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
JP2017503266A (ja) | フラッシュメモリ内に記憶されたデータの推測的プリフェッチ | |
KR20220010424A (ko) | 메모리 디바이스들의 병렬 부트 실행 | |
CN116888585A (zh) | 用于简单复制命令的基于高速缓存的流 | |
CN118284887A (zh) | 基于存储器设备的加速的深度学习系统 | |
KR102589609B1 (ko) | 분할된 저장장치에서의 스냅샷 관리 | |
US12045506B2 (en) | Combining operations during reset | |
US11720490B2 (en) | Managing host input/output in a memory system executing a table flush | |
US11513720B1 (en) | Data storage device having predictive analytics | |
US11669470B2 (en) | Storage system with capacity scalability and method of operating the same | |
JP2024525777A (ja) | ホストメモリバッファキャッシュ管理 | |
US20230251935A1 (en) | Storage device for storing model checkpoints of recommendation deep-learning models | |
JP2024540317A (ja) | メモリデバイスベースの加速化深層学習システム | |
US20230315285A1 (en) | Storage Optimization Of CAT Table During Background Operations | |
US11645009B2 (en) | Data storage with improved read parallelism | |
US12019878B2 (en) | Pre-validation of blocks for garbage collection | |
US20220066697A1 (en) | Memory Device With Reinforcement Learning With Q-Learning Acceleration | |
US11816349B2 (en) | Reduce command latency using block pre-erase | |
US20240078032A1 (en) | Metadata Management In Key Value Data Storage Device | |
US20240143512A1 (en) | Write buffer linking for easy cache reads | |
US11934686B2 (en) | Data reordering at a memory subsystem | |
JP2024102806A (ja) | 軽量bes近似 | |
US20240103723A1 (en) | Unaligned deallocated logical blocks datapath support | |
US20240272826A1 (en) | Optimization Of An Active Range Of mSets Stored In A Compressed Address Table | |
US20230418514A1 (en) | Key-To-Physical Table Optimization For Key Value Data Storage Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |