CN111581118B - 计算加速系统 - Google Patents
计算加速系统 Download PDFInfo
- Publication number
- CN111581118B CN111581118B CN201911424927.7A CN201911424927A CN111581118B CN 111581118 B CN111581118 B CN 111581118B CN 201911424927 A CN201911424927 A CN 201911424927A CN 111581118 B CN111581118 B CN 111581118B
- Authority
- CN
- China
- Prior art keywords
- data
- request
- processor
- features
- fpga
- 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
Links
Images
Classifications
-
- 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本申请提供了计算加速系统,包括第一设备和/或第二设备,以及处理器,其中,处理器向第一设备或第二设备发送第一请求,第一请求携带第一数据的特征,第一请求指示进行距离计算;响应于第一请求,第一设备或第二设备对第一数据的特征和预存的N个特征进行距离计算,获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征。在处理器的计算能力受限时,在不增加其它设备的前提下,利用系统中已有的、处理器之外的第一设备或第二设备的剩余计算能力进行特征的距离计算,不仅提高系统的计算能力,还使得处理器可以执行其它任务。从而解决现有技术中大型存储系统的实现难度高及成本高的技术问题。
Description
技术领域
本申请涉及存储技术,特别地,涉及计算加速系统。
背景技术
随着技术的更新换代,作为一种存储量大且高速的存储方式,固态硬盘已经进入了人们生活的各个方面。比如,作为人们个人电脑中的存储设备、作为大型数据库的存储设备等。相对于传统的机械硬盘等存储方式,固态硬盘具备高速读写特性,在一些针对读写速度有很高要求的应用中,固态硬盘也是首选的存储设备。
例如,在安防监控系统中,不仅需要存储海量的数据,也还需实现快速调取数据,固态硬盘就能满足这类系统的所有需求。又如,大型数据库也有存储数据量巨大且读取速度快的需求。但是,在存储的数据量很大时,如何在存储设备中快速的找到所需的数据也是一个重要的需求。对于安防监控系统之类的存放图像或视频的系统,一般会采用GPU(Graphics Processing Unit,图像处理器)来实现快速的图像对比等功能,但由于高性能的GPU的价格昂贵也会带来成本过高的问题。而对于存放非图像数据格式的系统,现有技术通常采用复杂的算法来管理存储的数据,例如,机器学习、深度学习等。因此,为了实现快速查找数据,大型存储系统通常需要采取高性能的硬件或复杂的实现方式,从而存在实现难度高且成本高的技术问题。
发明内容
为了解决现有技术中,大型存储系统的实现难度高且成本高的技术问题。根据本申请的第一方面,提供了根据本申请第一方面的第一计算加速系统,包括第一设备和/或第二设备,以及处理器,其中,处理器向第一设备或第二设备发送第一请求,第一请求携带第一数据的特征,第一请求指示进行距离计算;响应于第一请求,第一设备或第二设备对第一数据的特征和预存的N个特征进行距离计算,获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,N和M均为正整数,M小于等于N,N个特征存储在第一设备或第二设备中;第一设备包括闪存控制器和闪存芯片,第二设备包括现场可编程逻辑门阵列FPGA(Field Programmable Gate Array),距离计算包括欧式距离计算或欧式余弦计算。
本实施方式中,由第一设备或第二设备来进行数据特征的计算,利用低成本的闪存控制器或FPGA来代替高性能的处理器,从而在处理器性能一般的情况下,也能实现高速计算及高速读取数据的需求,解决现有技术中大型存储系统的实现难度高及成本高的技术问题。
根据本申请第一方面的第一计算加速系统,提供了根据本申请第一方面的第二计算加速系统,系统仅包括第一设备;处理器向第一设备发送第一请求;响应于第一请求,闪存控制器从闪存芯片中读取N个特征值,闪存控制器将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
根据本申请第一方面的第一计算加速系统,提供了根据本申请第一方面的第三计算加速系统,系统包括第一设备和第二设备;处理器向第二设备发送第一请求;响应于第一请求,FPGA从内存中读取N个特征值,FPGA将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
根据本申请第一方面的第一计算加速系统,提供了根据本申请第一方面的第四计算加速系统,系统包括第一设备和第二设备;处理器向第一设备发送第一请求;响应于第一请求,闪存控制器生成第二请求,并向FPGA发送第二请求,第二请求携带第一数据的特征;响应于第二请求,FPGA从内存中读取N个特征值,FPGA将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
以上提供了计算加速系统的多种不同的实施方式,其中,FPGA的计算速度通常高于闪存控制器,可根据计算速度需求灵活的选择具体的实施方式。
根据本申请第一方面的第二或第四计算加速系统,提供了根据本申请第一方面的第五计算加速系统,第一请求还指示第一设备进行数据存储;响应于第一请求,闪存控制器根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址;闪存控制器访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片。
根据本申请第一方面的第三计算加速系统,提供了根据本申请第一方面的第六计算加速系统,第一请求还指示第一设备进行数据存储;响应于第一请求,FPGA还向闪存控制器发送第三请求,第三请求指示闪存控制器进行数据存储,第三请求携带第一数据的特征;响应于第三请求,闪存控制器根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址;闪存控制器访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片。
根据本申请第一方面的第五或第六计算加速系统,提供了根据本申请第一方面的第七计算加速系统,FPGA还为第一数据的特征分配第二存储地址,第二存储地址指向内存;FPGA访问第二存储地址,将第一数据的特征保存至内存,以使内存保存N+1个特征。
本实施方式中,接收第一数据之后,将第一数据的特征保存到内存之中,从而下一次需要使用到第一数据的特征时,可以快速地从内存中读取,不需要从闪存中获取该特征,减少设备交互的时间和不同设备之间传送数据的时间,进一步减少计算过程中所消耗的数据传输时间。
根据本申请第一方面的第三、第六或第七计算加速系统,提供了根据本申请第一方面的第八计算加速系统,闪存管理器与FPGA通过内存接口、I2C接口、ONFI接口或QSPI接口耦合。
本实施方式中,闪存管理器可以通过多种接口与FPGA耦合,不同接口的数据传输速度不同,从而可根据数据传输速度的要求灵活的选择接口种类。
根据本申请第一方面的第四、第五或第七计算加速系统,提供了根据本申请第一方面的第九计算加速系统,闪存管理器与FPGA通过PCIe接口耦合。
根据本申请第一方面的第一至第九计算加速系统之一,提供了根据本申请第一方面的第十计算加速系统,在发送第一请求之前,处理器接收搜索请求;响应于搜索请求,处理器接收第一数据,根据第一数据计算第一数据的特征,并生成第一请求。
根据本申请第一方面的第一至第十计算加速系统之一,提供了根据本申请第一方面的第十一计算加速系统,第一设备或第二设备获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,包括:第一设备或第二设备进行距离计算,获取第一数据的特征和N个特征中每个特征的评分;第一设备或第二设备对N个评分根据取值按照从小到大进行排序,保留取值最小的M个评分;获取M个评分对应的M个特征,并向处理器反馈M个特征和M个评分。
根据本申请第一方面的第十一计算加速系统,提供了根据本申请第一方面的第十二计算加速系统,闪存控制器或FPGA向处理器反馈256个特征及256个评分;响应于反馈的特征及评分,处理器向闪存控制器发送读命令,读命令携带256个特征;响应于读命令,闪存控制器从闪存芯片中读取出256个原始数据,并向处理器反馈256个原始数据;接收到256个原始数据之后,处理器控制显示器显示256个原始数据,显示器与处理器耦合。
本申请提供了计算加速系统,包括第一设备和/或第二设备,以及处理器,其中,处理器向第一设备或第二设备发送第一请求,第一请求携带第一数据的特征,第一请求指示进行距离计算;响应于第一请求,第一设备或第二设备对第一数据的特征和预存的N个特征进行距离计算,获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,N和M均为正整数,M小于等于N,N个特征存储在第一设备或第二设备中。在处理器的计算能力受限时,在不增加其它设备的前提下,利用系统中已有的、处理器之外的第一设备或第二设备的剩余计算能力进行特征的距离计算,不仅提高系统的计算能力,还使得处理器可以执行其它任务。从而解决现有技术中大型存储系统的实现难度高及成本高的技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种计算加速系统的结构示意图;
图2为本申请提供的又一种计算加速系统的结构示意图;
图3为本申请提供的又一种计算加速系统的结构示意图;
图4为本申请提供的又一种计算加速系统的结构示意图;
图5为本申请提供的又一种计算加速系统的结构示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请说明、权利要求书及附图中的术语“第一”、“第二”和“第三”等是用于区分不同对象,而不是用于限定特定顺序。此外,术语“包括”和“具有”以及它们的各种变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,二是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或模块。
本申请中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地或隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请中的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,表示单独存在A、同时存在A和B、或单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1示例性地给出了一种计算加速系统的结构示意图。如图1所示,计算加速系统100包括第一设备102和/或第二设备103和处理器101。处理器101分别与第一设备102和第二设备103耦合。图1中的虚线表示第一设备或第二设备是可选的。例如,计算加速系统100包括处理器101和第一设备102。又如,计算加速系统100包括处理器101和第二设备103。再如计算加速系统100包括处理器101、第一设备102和第二设备103。
处理器101向第一设备102或第二设备103发送第一请求,第一请求携带第一数据的特征,第一请求指示进行距离计算。响应于第一请求,第一设备102或第二设备103对第一数据的特征和预存的N个特征进行距离计算,获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器101返回M个特征,N和M均为正整数,M小于等于N,N个特征存储在第一设备102或第二设备103中。第一设备102包括闪存控制器104和闪存芯片105。第二设备103包括现场可编程逻辑门阵列FPGA 106,可选地,第二设备103还包括内存107。本实施例中距离计算包括欧式距离计算或欧式余弦计算。
可选地,在发送第一请求之前,处理器101接收搜索请求.响应于搜索请求,处理器101接收第一数据,根据第一数据计算第一数据的特征,并生成第一请求。例如,第一数据是图像数据时,第一数据的特征为处理器101采用图像处理算法计算出的图像的特征。又如,第一数据是文本数据,第一数据的特征为处理器101进行语义分析得到的语义特征。可选地,第一数据的特征为外部设备向处理器101发送的。例如,处理器101接收到外部设备发送的命令,该命令携带第一数据的特征,且该命令指示计算加速系统100反馈与第一数据的特征最接近的数据,从而处理器101生成并发送第一请求。
预存的N个特征可以理解为历史存储的“第一数据的特征”,处理器101计算出第一数据的特征之后,还会指示第一设备和/或第二设备保存第一数据的特征。在下一次处理器101发送第一请求时,预存的特征数量会变为N+1个。
本实施例中的计算加速系统100的距离计算是由处理器101之外的第一设备102或第二设备103进行的,第一设备102和第二设备103都具备计算能力,从而本实施例中的计算加速系统100可以采取以下的构成方式:
方式一,计算加速系统包括处理器和第一设备。
方式二,计算加速系统包括处理器、第一设备和第二设备。
方式三,计算加速系统包括处理器和第二设备。
参见图2,图2给出了如上述方式一的一种计算加速系统的结构示意图。计算加速系统200包括处理器201和第一设备202,第一设备202包括闪存控制器203和闪存芯片204。
处理器201向第一设备202发送第一请求。处理器201和第一设备202通过PCIe接口或M.2接口连接。例如,第一请求通过PCIe接口进入第一设备202,并由闪存控制器203处理。响应于第一请求,闪存控制器203从闪存芯片204中读取N个特征值,闪存控制器203将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。
本申请中的第一请求携带第一数据的特征、计算方式为欧式距离计算、返回计算结果的主机地址。可选地,第一请求还携带闪存芯片204中N个特征值的存储地址。以N=800000为例,第一请求的长度为4个双字(Double Word,DW),PCIe接口的传输速度为8Gb/s,第一请求从处理器201传输到闪存控制器203需要的时间为16×10-9s。闪存控制器203为ARM处理器,闪存控制器203每秒可以进行80万次定点计算。闪存控制器203从闪存芯片204中读取数据的速度为3.5G/s,一个特征的大小为2048bits,从而读取80万个特征需要约0.457s。最后保留256个特征,反馈256个特征的速度约为60ms。合计约需要1.457s。但本实施例中,闪存控制器203是在和闪存芯片204传输80万个特征的同时进行距离计算,也就是在传输1个特征之后,闪存控制器203即可开始计算,并不需要等待80万个特征全部传输到闪存控制器203之后才开始计算,从而特征传输时间是和特征计算时间重叠的,因此本实施例中进行从处理器201发送第一请求到闪存控制器203返回256个特征,共需要约1s。
进一步可选地,本实施例中的计算加速系统200可下挂多个第一设备202。例如,处理器201采用PCIe Gen 3*4接口,则处理器201与2个第一设备202耦合,则计算加速系统200的计算能力从80万次/s扩展为160万次/s。本实施例中,处理器201耦合的第一设备202的数量与PCIe接口有关,可根据需求进行进一步的横向扩展,扩展包括但不限于3个和4个,在此不做限制。
图3给出了如上述方式二的计算加速系统的一种结构示意图,如图3所示,计算加速系统300包括处理器301、第一设备302和第二设备303。第一设备302包括闪存控制器304和闪存芯片305,第二设备303包括FPGA306和内存307。处理器301和闪存控制器304耦合,闪存控制器304还和闪存芯片305以及FPGA306耦合。FPGA306与内存307耦合。
本实施例中,处理器301向第一设备302发送第一请求。响应于第一请求,闪存控制器304生成第二请求,并向FPGA306发送第二请求,第二请求携带第一数据的特征。响应于第二请求,FPGA306从内存307中读取N个特征值,FPGA306将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。其中,处理器301和闪存控制器304之间通过PCIe接口耦合,闪存控制器304和FPGA306之间通过内存接口耦合。
以N=1000000,M=1000为例,处理器301和闪存控制器304之间的PCIe接口的数据传输速度为8Gb/s,闪存控制器304和FPGA306之间的内存接口的数据传输速度为6.4Gb/s,FPGA306和内存307之间也是采用内存接口,其数据传输速度为6.4Gb/s。FPGA306从内存307读取出100万个特征需要约0.32s。FPGA306在从内存307读取出第一个特征之后就开始进行距离计算,FPGA306的计算能力通常超出ARM处理器的计算能力,会在读取100万个特征的同时完成计算,特征读取时间和计算时间几乎完全重合,因此FPGA306从内存307读取100万个特征并进行100万次计算的总时间约为0.32s。FPGA306向闪存控制器304反馈1000个特征需要约0.32ms,闪存控制器304向处理器301反馈1000个特征需要约0.256ms。因此,处理器301从发送第一请求到接收到计算结果总计需要约0.320576s。
进一步可选地,闪存管理器304与FPGA306之间通过内存接口、I2C接口、ONFI接口或QSPI接口耦合。其中,内存接口、I2C接口、ONFI接口和QSPI接口的数据传输速度各不相同,可灵活的根据需求选择适配的接口。例如,内存接口的速度为6.4Gb/s,I2C接口的速度为400Kb/s,QSPI接口的速度为25Mb/s,ONFI接口的速度为400MB/s,在追求高速时可以选择内存接口,而追求低成本且返回的结果数量少时可选择I2C接口。
参见图4,图4给出了如上述方式二的计算加速系统的又一种结构示意图。计算加速系统400包括处理器401,第一设备402和第二设备403。第一设备402包括闪存控制器404和闪存芯片405。第二设备403包括FPGA406和内存407。处理器401与FPGA406耦合,FPGA406与内存407以及闪存控制器404耦合,闪存控制器404与闪存芯片405耦合。
其中,处理器401向第二设备403发送第一请求。具体的,处理器401向FPGA406发送第一请求。响应于第一请求,FPGA406从内存407中读取N个特征值,FPGA406将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。本实施例中,FPGA406与处理器401通过PCIe接口耦合,FPGA406与闪存控制器404也通过PCIe接口耦合。
仍旧以N=1000000,M=1000为例,处理器401和FPGA406之间的PCIe接口的数据传输速度为8Gb/s,FPGA406和内存407之间也通过内存接口耦合,其数据传输速度为6.4Gb/s。FPGA406从内存407读取出100万个特征需要约0.32s。FPGA406在从内存407读取出第一个特征之后就开始进行距离计算,会在读取100万个特征的同时完成计算,FPGA406从内存407读取100万个特征并进行100万次计算的总时间约为0.32s。FPGA406向处理器401反馈1000个特征需要约0.256ms。因此,处理器401从发送第一请求到接收到计算结果总计需要约0.320256s。
如上述方式三中的计算加速系统未在图中示出,具体为计算加速系统包括处理器和第二设备,第二设备包括FPGA和内存。计算加速系统还设置有接口,该接口用于连接存储设备,此处并不限制存储设备的类型。处理器向第二设备发送第一请求。具体的,处理器向FPGA发送第一请求。响应于第一请求,FPGA从内中读取N个特征值,FPGA将第一数据的特征依次和N个特征进行距离计算,保留距离最近的M个特征。具体的计算过程可参见上述对计算加速系统400的描述,在此不进行展开。
可选地,第一请求还指示第一设备进行数据存储。响应于第一请求,闪存控制器根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址。闪存控制器访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片。
例如,继续参见图2中的计算加速系统200。处理器201发送的第一请求还指示第一设备202进行数据存储。闪存控制器203接收到该第一请求,闪存控制器203根据第一数据的长度和第一数据的特征分配第一存储地址。该第一存储地址用于存储第一数据和第一数据的特征。这里的第一数据和第一数据的特征可采取key-value存储方式,即第一数据和第一数据的特征存在对应关系,第一数据的特征作为key(关键字)可以索引到第一数据(value),从而不需要处理器201提前知道第一数据或第一数据的特征的存储地址,而是至利用第一数据的特征即可查找到第一数据。图3中的计算加速系统300存储数据的方式和计算加速系统200相同,在此不再赘述。
又如,参见图4中的计算加速系统400,第一请求由FPGA406处理,响应于该第一请求,FPGA406还向闪存控制器404发送第三请求,第三请求指示闪存控制器404进行数据存储,第三请求携带第一数据的特征。响应于第三请求,闪存控制器404根据第一数据的特征为第一数据和第一数据的特征分配第一存储地址。闪存控制器404访问第一存储地址,将第一数据和第一数据的特征保存到闪存芯片405。具体的,闪存控制器404还会获取第一数据,第一请求和第三请求还会携带第一数据在处理器401中的主机地址,从而闪存控制器404可以主动去获取第一数据,具体的获取方法可参见现有技术中的方法,在此不做限定。
参见图5,图5中给出了计算加速系统的又一结构示意图。计算加速系统500包括处理器501、第一设备502、第二设备503和内存507,第一设备502包括闪存控制器504和闪存芯片505,第二设备503包括FPGA506。其中,处理器501与闪存控制器504耦合。闪存控制器504和闪存芯片505、FPGA506以及内存507耦合。闪存控制器504在接收第一数据之后,除了将第一数据保存到闪存芯片505中,还将第一数据的特征保存到内存507之中,从而下一次需要使用到第一数据的特征时,可以快速地从内存中读取,不需要从闪存中获取该特征,减少设备交互的时间和不同设备之间传送数据的时间,进一步减少计算过程中所消耗的数据传输时间。
具体的,闪存控制器504为第一数据的特征分配第二存储地址,第二存储地址指向内存507,并访问第二存储地址,将第一数据的特征保存至内存507,以使内存507保存N+1个特征。或者,闪存控制器504向FPGA506发送第四请求,响应于第四请求,FPGA506为第一数据的特征分配第二存储地址,第二存储地址指向内存507,FPGA访问第二存储地址,将第一数据的特征保存至内存507,以使内存保存N+1个特征。
可选地,第一设备或第二设备获取N个特征中与第一数据的特征距离最近的M个特征,并向处理器返回M个特征,包括:第一设备或第二设备进行距离计算,获取第一数据的特征和N个特征中每个特征的评分;第一设备或第二设备对N个评分根据取值按照从小到大进行排序,保留取值最小的M个评分;获取M个评分对应的M个特征,并向处理器反馈M个特征和M个评分。具体的,M为预设值,例如M=256。在进行距离计算时,每次计算出的是第一数据的特征和预存的特征之间的评分,该评分为正数。评分的取值越小,表示两个特征之间的距离越近,从而可以采用从小到大排序的方式,保留取值最小的M个特征。例如,N=1000,M=50,第一设备在进行1000次距离计算得到1000个评分后,将这1000个评分进行排序,保留取值最小的50个。又如,第二设备每进行一次距离计算之后,将计算出的评分加入排序的序列,该序列长度为50,在前49次距离计算时,序列没有填满。而在51-1000次距离计算时,每次计算出一个评分,若该评分的取值小于序列中的第50位,则将该评分插入序列,并将原第50位中的评分删除。
进一步可选地,闪存控制器或FPGA向处理器反馈256个特征及256个评分。响应于反馈的特征及评分,处理器向闪存控制器发送读命令,读命令携带256个特征;响应于读命令,闪存控制器从闪存芯片中读取出256个原始数据,并向处理器反馈256个原始数据;接收到256个原始数据之后,处理器控制显示器显示256个原始数据,显示器与处理器耦合。
例如,原始数据为图像,则闪存控制器根据256个特征从闪存芯片中查找这256个特征对应的256个图像,并向处理器反馈这256个图像。处理器可控制显示器显示256个图像,作为搜索请求的反馈结果。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种计算加速系统,其特征在于,包括第一设备和第二设备,以及处理器,其中,
所述处理器向所述第二设备发送第一请求,所述第一请求携带第一数据的特征,所述第一请求指示进行距离计算;
响应于所述第一请求,所述第二设备对所述第一数据的特征和预存的N个特征进行距离计算,获取所述N个特征中与所述第一数据的特征距离最近的M个特征,并向所述处理器返回所述M个特征, N和M均为正整数,M小于等于N,所述N个特征存储在所述第二设备中;
所述第一设备包括闪存控制器和闪存芯片,所述第二设备包括现场可编程逻辑门阵列FPGA,所述距离计算包括欧式距离计算或欧式余弦计算;
响应于所述第一请求,所述FPGA从内存中读取所述N个特征,所述FPGA将所述第一数据的特征依次和所述N个特征进行所述距离计算,保留距离最近的所述M个特征;
所述第一请求还指示所述第一设备进行数据存储;
响应于所述第一请求,所述FPGA还向所述闪存控制器发送第三请求,所述第三请求指示所述闪存控制器进行数据存储,所述第三请求携带所述第一数据的特征;
响应于所述第三请求,所述闪存控制器根据所述第一数据的特征为所述第一数据和所述第一数据的特征分配第一存储地址;
所述闪存控制器访问所述第一存储地址,将所述第一数据和第一数据的特征保存到所述闪存芯片。
2.如权利要求1所述的系统,其特征在于,在发送所述第一请求之前,所述处理器接收搜索请求;
响应于所述搜索请求,所述处理器接收所述第一数据,根据所述第一数据计算所述第一数据的特征,并生成所述第一请求。
3.如权利要求1所述的系统,其特征在于,所述第二设备获取所述N个特征中与所述第一数据的特征距离最近的M个特征,并向所述处理器返回所述M个特征,包括:
所述第二设备进行距离计算,获取所述第一数据的特征和所述N个特征中每个特征的评分;
所述第二设备对N个评分根据取值按照从小到大进行排序,保留取值最小的M个评分;
获取所述M个评分对应的M个特征,并向所述处理器反馈所述M个特征和所述M个评分。
4.一种计算加速系统,其特征在于,所述系统包括第一设备和第二设备,以及处理器,所述第一设备包括闪存控制器和闪存芯片,所述第二设备包括现场可编程逻辑门阵列FPGA,距离计算包括欧式距离计算或欧式余弦计算,其中;
所述处理器向所述第一设备发送第一请求;所述第一请求携带第一数据的特征,所述第一请求指示进行距离计算;
响应于所述第一请求,所述闪存控制器生成第二请求,并向所述FPGA发送所述第二请求,所述第二请求携带所述第一数据的特征;
响应于所述第二请求,所述FPGA从内存中读取N个特征,所述FPGA将所述第一数据的特征依次和N个特征进行所述距离计算,保留距离最近的M个特征。
5.如权利要求4所述的系统,其特征在于,所述第一请求还指示所述第一设备进行数据存储;
响应于所述第一请求,所述闪存控制器根据所述第一数据的特征为所述第一数据和所述第一数据的特征分配第一存储地址;
所述闪存控制器访问所述第一存储地址,将所述第一数据和第一数据的特征保存到所述闪存芯片。
6.如权利要求4或5所述的系统,其特征在于,所述FPGA还为所述第一数据的特征分配第二存储地址,所述第二存储地址指向所述内存;
所述FPGA访问所述第二存储地址,将所述第一数据的特征保存至所述内存,以使所述内存保存N+1个特征。
7.如权利要求4所述的系统,其特征在于,所述闪存控制器与所述FPGA通过内存接口、I2C接口、ONFI接口或QSPI接口耦合。
8.如权利要求4所述的系统,其特征在于,在发送所述第一请求之前,所述处理器接收搜索请求;
响应于所述搜索请求,所述处理器接收所述第一数据,根据所述第一数据计算所述第一数据的特征,并生成所述第一请求。
9.如权利要求4所述的系统,其特征在于,所述第二设备获取所述N个特征中与所述第一数据的特征距离最近的M个特征,并向所述处理器返回所述M个特征,包括:
所述第二设备进行距离计算,获取所述第一数据的特征和所述N个特征中每个特征的评分;
所述第二设备对N个评分根据取值按照从小到大进行排序,保留取值最小的M个评分;
获取所述M个评分对应的M个特征,并向所述处理器反馈所述M个特征和所述M个评分。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424927.7A CN111581118B (zh) | 2019-12-31 | 2019-12-31 | 计算加速系统 |
CN202110303515.9A CN112948282A (zh) | 2019-12-31 | 2019-12-31 | 用于数据快速查找的计算加速系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424927.7A CN111581118B (zh) | 2019-12-31 | 2019-12-31 | 计算加速系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110303515.9A Division CN112948282A (zh) | 2019-12-31 | 2019-12-31 | 用于数据快速查找的计算加速系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111581118A CN111581118A (zh) | 2020-08-25 |
CN111581118B true CN111581118B (zh) | 2021-04-13 |
Family
ID=72112905
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911424927.7A Active CN111581118B (zh) | 2019-12-31 | 2019-12-31 | 计算加速系统 |
CN202110303515.9A Pending CN112948282A (zh) | 2019-12-31 | 2019-12-31 | 用于数据快速查找的计算加速系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110303515.9A Pending CN112948282A (zh) | 2019-12-31 | 2019-12-31 | 用于数据快速查找的计算加速系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111581118B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744611A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于固态硬盘为缓存的计算机系统及缓存加速方法 |
JP5493223B2 (ja) * | 2009-10-14 | 2014-05-14 | 株式会社日立製作所 | 振り分け処理装置、計算機システム及びリクエスト振り分け方法 |
CN108009099A (zh) * | 2017-11-30 | 2018-05-08 | 北京中科睿芯科技有限公司 | 一种应用于K-Mean聚类算法中的加速方法及其装置 |
CN110178126A (zh) * | 2017-01-24 | 2019-08-27 | 高通股份有限公司 | 使用片上存储器进行总线编码 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4701643B2 (ja) * | 2004-07-08 | 2011-06-15 | ブラザー工業株式会社 | 処理装置、処理方法、処理プログラム、及び記録媒体 |
CN100362462C (zh) * | 2005-07-15 | 2008-01-16 | 华为技术有限公司 | 磁盘阵列缓存的管理方法 |
TW200820261A (en) * | 2006-09-08 | 2008-05-01 | Samsung Electronics Co Ltd | Fusion memory device and method |
US20080126674A1 (en) * | 2006-09-13 | 2008-05-29 | Xiaohua Cheng | Portable storage device and method for improving data access speed |
US7941637B2 (en) * | 2008-04-15 | 2011-05-10 | Freescale Semiconductor, Inc. | Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions |
US9009424B2 (en) * | 2012-10-29 | 2015-04-14 | International Business Machines Corporation | Data placement for loss protection in a storage system |
CN103902467B (zh) * | 2012-12-26 | 2017-02-22 | 华为技术有限公司 | 压缩内存访问控制方法、装置及系统 |
CN104965798B (zh) * | 2015-06-10 | 2018-03-09 | 上海华为技术有限公司 | 一种数据处理方法、相关设备以及系统 |
CN110018971B (zh) * | 2017-12-29 | 2023-08-22 | 华为技术有限公司 | 缓存替换技术 |
-
2019
- 2019-12-31 CN CN201911424927.7A patent/CN111581118B/zh active Active
- 2019-12-31 CN CN202110303515.9A patent/CN112948282A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5493223B2 (ja) * | 2009-10-14 | 2014-05-14 | 株式会社日立製作所 | 振り分け処理装置、計算機システム及びリクエスト振り分け方法 |
CN103744611A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于固态硬盘为缓存的计算机系统及缓存加速方法 |
CN110178126A (zh) * | 2017-01-24 | 2019-08-27 | 高通股份有限公司 | 使用片上存储器进行总线编码 |
CN108009099A (zh) * | 2017-11-30 | 2018-05-08 | 北京中科睿芯科技有限公司 | 一种应用于K-Mean聚类算法中的加速方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111581118A (zh) | 2020-08-25 |
CN112948282A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262500B2 (en) | Memory system including key-value store | |
US8447896B2 (en) | Memory system having high data transfer efficiency and host controller | |
US20190057032A1 (en) | Cache Coherence Management Method and Node Controller | |
CN105426517A (zh) | 一种具有图像处理功能的智能存储设备 | |
CN115237618A (zh) | 请求处理方法、装置、计算机设备及可读存储介质 | |
CN111209243B (zh) | 数据处理装置、方法及相关产品 | |
WO2022007596A1 (zh) | 图像检索系统、方法和装置 | |
CN107870877B (zh) | 用于在存储系统中管理数据访问的方法和系统 | |
CN111581118B (zh) | 计算加速系统 | |
US20200341764A1 (en) | Scatter Gather Using Key-Value Store | |
CN114077690A (zh) | 向量数据处理方法、装置、设备及存储介质 | |
CN113672169A (zh) | 流处理系统的数据读写方法和流处理系统 | |
CN211349349U (zh) | 基于闪存的计算加速系统和基于fpga的计算加速系统 | |
CN112732431A (zh) | 一种基于云计算的人工智能系统 | |
CN115454344A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
US9037805B2 (en) | Managing a region cache | |
US20110066785A1 (en) | Memory Management System and Method Thereof | |
CN113806238A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN111581441B (zh) | 用于聚类计算的加速器 | |
CN105159836B (zh) | 一种信息处理方法及电子设备 | |
US20200167646A1 (en) | Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-raedable storage medium and computer program product | |
CN101796493B (zh) | 信息检索系统、信息检索方法及程序 | |
CN111858579A (zh) | 数据存储方法及装置 | |
CN116107763B (zh) | 一种数据发送方法、装置、设备及存储介质 | |
CN116955212A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |