首页 > 其他分享 >论文阅读: Co-design Hardware and Algorithm for Vector Search

论文阅读: Co-design Hardware and Algorithm for Vector Search

时间:2023-09-15 21:22:57浏览次数:63  
标签:Search PQ Co FPGA Algorithm IVF 加速器 FANNS 向量

1. Introduction

介绍一下论文背景,
向量检索常用于 搜索引擎,推荐系统,LLM和科学计算等
对应的常用的硬件向量检索方法,IVF-PQ
其中IVF:将多个向量聚类, PQ将向量压缩
而为了最大化IVF-PQ的效果,也会面临很多的挑战

在芯片设计的过程中,会遇到针对六个阶段如何设计合适的微架构?如何将有限的资源分配给六个阶段等问题。所以这篇文章对特定的算法参数进行优化,以实现performance-recall的平衡。

本篇文章提出了FANNS,一个端到端加速器生成框架(依据IVF-PQ算法),
会根据目标数据集和召回率的需求,实现硬件资源和算法的平衡,以最大化加速器的性能。
基本工作流如下:
image
首先,FANNS会评估数据集召回率要求和IVF-PQ参数间的关系,找到所有合适的加速器设计。
之后,FANNS性能评估模型预测每个算法参数和硬件组合的QPS(queris-per-second)
最后,选择最好的组合,生成合适的FPGA代码。
同时,FANNS支持在加速器中实例化TCP/IP栈。

结果:
和固定的FPGA设计,提升了23倍。和CPU相比,提升了37.2倍。
单个GPU的运算效率强于设计的FANNS,但是,多个单元配合时,FPGA效率明显更高。

标签:Search,PQ,Co,FPGA,Algorithm,IVF,加速器,FANNS,向量
From: https://www.cnblogs.com/zjz2333/p/17705941.html

相关文章

  • Elasticsearch倒排索引 与Mysql的区别
    Elasticsearch实现快速搜索功能的核心概念,从文件的内容查找,得到包含这些内容的文件列表,再得到文件对应的信息,将文档的内容通过算法进行分词,得到一个词条列表将词条列表当作key,包含该词条的文档id列表作为值,形成一张表词条是唯一的,所以给词条创建索引,提高搜索效率通过词条查询,......
  • 分布式搜索引擎Elasticsearch(1)
    ES的倒排索引倒排索引是ES实现快速搜索功能的核心概念,而倒排索引的概念是基于正向索引而言的。那么什么是正向索引呢?正向索引就是先通过文件名找到具体的文件,再获取文件中的内容过程。mysql的查询功能就是正向索引的思想,mysql查询数据时会先根据ID查询记录,再从记录中获取相关字......
  • 2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite (2022CCPC绵阳)ACG
    2022ChinaCollegiateProgrammingContest(CCPC)MianyangOnsite(2022CCPC绵阳)ACGHMhttps://codeforces.com/gym/104065昨天女队vp了一下,赛时4题223罚时A是一个dp,学妹已经写的差不多了,就是转移方向错了(给点时间应该能d出来)牛的牛的。我就看了点签到,又是作为蟑螂乱爬的一天......
  • Elasticsearch 命令行初识
    完整教程:https://www.cnblogs.com/shaner/p/5661071.htmlhttps://zhuanlan.zhihu.com/p/449555826http://192.168.1.10:9201/_cat/health?vhttp://192.168.1.10:9201/_cathttp://192.168.1.10:9201/_cat/indices?vES服务器命令行:----服务器命令行删除大索引curl-XDELETEhttp:......
  • halcon AI读取onnx模型并推理
    *程序功能:读取onnx模型并推理dev_update_off()dev_close_window()read_dl_model('squeezenet.onnx',DLModelHandle)set_dl_model_param(DLModelHandle,'type','classification')get_dl_model_param(DLModelHandle,'image_dimensions',......
  • CF662B Graph Coloring
    很一眼的题考虑枚举最后所有边的颜色,然后每个点是否变化可以用一个bool变量表示,就是个很典的2-SAT问题,根据当前边和目标的颜色相同与否连边即可但这题的难点在于要找一个操作次数最少的方案,乍一看很难搞但如果你对图论和2-SAT那一套理解比较深的话就很容易发现,这道题中所有边都......
  • Codeforces Round 764 (Div. 3) B. Make AP
    有三个正整数\(a,b,c\)。需要执行以下操作严格一次:选择任意一个正整数\(m\)并让严格一个\(a,b,c\)之一乘以\(m\)。但不能改变他们的顺序。回答是否可以经过一次操作后使\(a,b,c\)变为等差。分类讨论题:三种情况满足一种即可。(已知\(a,b,c\geq1\))\(ma......
  • 《The 2023 Guangdong Provincial Collegiate Programming Contest》vp记录
    队伍配置:\(Shui\_dream\)\(gaosichensb\)和我这个菜鸡。膜拜另外两个大佬赛况:\(PS:\)看高二的在那边打感觉挺有趣的我们也跑过来打了。首先我把\(A\)签到题给签了,然后去看\(D\),\(gsc\)去看\(C\),这时候\(lyq\)大佬还没有加入战场,还在调自己的题,不过问题不大。我......
  • Codeforces Round 773 (Div. 2) B. Power Walking
    有\(n\)个增幅道具,第\(i\)个道具种类为\(a_i\),一个人的强度\(w\)为他所有道具的种类数。对于\(k]\in[1,n]\),询问将\(n\)个道具分配给\(k\)个人且每个人至少分配到一个道具后,能够得到的最想强度和\(\sum_{i=1}^{n}w_i\)。观察一:最低强度和\(\sum_{i=1}^{k}w......
  • Launcher3 中 IconCache 缓存逻辑
    概述我们先看下IconCache的初始化过程,接着看下IconCache核心数据结构、算法,最后介绍与之关联的几个类。Launcher.javapublicclassLauncherextendsStatefulActivity<LauncherState>implements...{...publicstaticfinalStringTAG="Launcher";privateLau......