当前位置: 首页 > news >正文

PDX列式存储

向量数据示例
在这里插入图片描述

传统顺序(水平)存储
在这里插入图片描述

向量列式存储
在这里插入图片描述

向量列存

在这里插入图片描述

1. 水平方向(Horizontal)的流程与含义

核心思想:单条查询向量 vs. 多个数据维度(单指令多数据,SIMD)

  • 适用场景:计算一条查询向量(如 Vector₀)与一个数据向量(如 D₀-D₇)的所有维度之间的距离。
  • 并行粒度:在单个数据向量的不同维度上并行计算(如同时计算 D₀、D₁、D₂…的距离部分)。
    步骤解析:
  1. D₀-D₇:数据向量的 8 个维度(或 8 个数据点)。
  2. Query Vector₀:需要匹配的目标查询向量。
  3. load(1), load(2):分批次加载数据(如先加载 D₀-D₃,再加载 D₄-D₇)。
  4. fmadd(1):计算load里面加载第一维度的数据平方再加上第五维度的平方,就是先计算乘积,再计算和。如((Query - D₀)²+(Query - D 5 D_5 D5)²)。
  5. SIMD result register:存储中间结果。
  6. SIMD reduce:对部分距离结果求和(如 D₀² + D₁² + … + D₇²),得到最终距离。

V₀ distance:查询向量与当前数据向量的完整距离。

2. 垂直方向(Vertical)的流程与含义

核心思想:单个维度 vs. 多条数据向量(批量处理)

  • 适用场景:计算查询向量的 某一个维度(如 Dim₀) 与 多条数据向量的同一维度 的距离部分。

  • 并行粒度:在多个数据向量的同一维度上并行计算(如同时计算 100 条向量的 D₀ 维度)。

步骤解析:

  1. D₀:所有数据向量的第 0 个维度(如 100 条向量的“颜色”维度)。

  2. Query Dim₀:查询向量的第 0 个维度被 广播(复制到所有处理单元)。

  3. load (重复操作):加载多条数据向量的 D₀ 值(如 Vector₁-D₀, Vector₂-D₀…)。

  4. fmadd(d):计算查询维度与所有数据向量 D₀ 的差值(如 (Query-D₀)²)。

  5. SIMD result registers:存储部分距离结果(每条向量的 D₀ 部分结果)。

  6. Partial Distances at D₀:当前维度的中间结果,后续需与其他维度累加。

关键点:

一次处理 一个维度 vs. 多条数据向量。

适合 批量查询(如数据库中对 100 条数据同时计算相似度)。

相关文章:

  • HarmonyOS 5 开发环境全解析:从搭建到实战
  • 鹰角:EMR Serverless Spark 在《明日方舟》游戏业务的应用
  • 2025年4月15日 百度一面 面经
  • MongoDB入门与安装指南
  • 递归查询的应用
  • Python自动化处理奖金分摊:基于连续空值的智能分配算法升级
  • 树莓派超全系列教程文档--(26)在 Raspberry Pi 上配置热点
  • html页面打开后中文乱码
  • 【树莓派Pico FreeRTOS】-事件标志(Event Flags)与事件组(Event Groups)
  • 【SpringBoot】深入解析自定义拦截器、注册配置拦截器、拦截路径方法及常见拦截路径、排除拦截路径、拦截器的执行流程
  • 通过人类和机器人演示进行联合逆向和正向动力学的机器人训练
  • 开源智慧巡检——无人机油田AI视频监控的未来之力
  • 科普:想想神经网络是参数模型还是非参数模型
  • 首次打蓝桥杯总结(c/c++B组)
  • 无人机的群体协同与集群控制技术要点!
  • DIB:Drone in Box- 室内外场景无人机无人化自主巡检技术方案
  • FPAG IP核调用小练习
  • 无人机自主导航与路径规划技术要点!
  • 6.DJI-PSDK:psdk订阅无人机高度/速度/GPS/RTK/时间/经纬度等消息及问题解决
  • Playwright与Selenium详细对比及Playwright快速入门
  • 蓝佛安:中方将采取更加积极有为的宏观政策,有信心实现今年5%左右增长目标
  • 人民日报今日谈:坚决克服麻痹思想,狠抓工作落实
  • 体坛联播|拜仁遭绝平未能提前夺冠,刘翔钻石联赛纪录作古
  • 中国队夺跳水世界杯总决赛首金
  • 国铁集团:5月1日全国铁路预计发送旅客2250万人次
  • 夜读丨春天要去动物园