当前位置: 首页 > 专利查询>英特尔公司专利>正文

使用SIMD指令集架构查找大数据集中最小和最大值的快速方法技术

技术编号:10438307 阅读:281 留言:0更新日期:2014-09-17 14:32
本公开涉及使用SIMD指令集架构查找大数据集中最小和最大值的快速方法。系统和方法可使用单指令多数据(SIMD)指令集架构和阵列条目的专门数据布局而与确定所确定的边界值数据单元到大数据集内的关联索引并行地确定该大数据集中的边界值数据单元。在一个示例中,该阵列条目的专门数据布局包括将数据值和它到阵列的关联索引组合到单个阵列条目内。

【技术实现步骤摘要】
使用SIMD指令集架构查找大数据集中最小和最大值的快 速方法
本文描述的实施例大体上涉及对于大数据集的数据处理,并且更特定地涉及使用 单指令多数据(SMD)处理器来处理大数据集。
技术介绍
单指令多数据(SMD)处理器大体上在展现大量数据并行的应用中使用而没有复 杂控制流或过量处理器间通信。对于SMD处理器的典型应用可包括低级视觉和图像处理, 例如模式识别、数据库搜索和统计分析。在图像处理中牵涉的一个常见操作是查找最小或 最大值或到大数据阵列内的其关联索引。大部分的SMD处理器提供可快速执行最小和最 大操作的指令。然而,如果SMD处理器必须保持跟踪产生这些值的索引,SMD指令的数据 并行可被破坏。 【附图说明】 本专利技术的实施例的各种优势将通过阅读下列说明和附上的权利要求并且通过参 考下列图而对本领域内技术人员变得明显,其中: 图1是根据实施例的计算系统的示例的框图; 图2A-2B是根据实施例的大数据集和该大数据集的数据布局的示例的图; 图3是根据实施例确定边界数据值单元和关联的索引的方法的示例的流程图;以及 图4A-4B是根据实施例的SMD指令列表和框图的示例的图。 图5是根据实施例的系统的框图;以及 图6是根据实施例的装置的图。 【具体实施方式】 现在转向图1,示出计算系统100,其包括中央处理单元(CPU) 120、系统存储器 130、存储装置140 (包括数据库150)、图形处理单元(GPU) 160和图形存储器170。图示的 系统100可以是移动平台的一部分,例如膝上型电脑、个人数字助理(PDA)、无线智能电话、 媒体播放器、成像装置、移动互联网装置(MID)、智能平板电脑等或其任何组合。系统100还 可以是例如个人计算机(PC)、服务器、工作站等固定平台的一部分。 CPU 120可包括存储器控制器(未示出),其提供对系统存储器130的访问,该系统 存储器130可包括随机存取存储器,例如双数据速率(DDR)同步动态随机存取存储器模块。 系统存储器130的模块可并入单直列存储器模块(SIMM)、双直列存储器模块(DIMM)、小型 DMM(SODMM)等内。CPU 120还可具有一个或多个驱动器和/处理器核(未示出),其中 每个核可功能齐全地具有取指令单元、指令解码器、一级(L1)高速缓存、执行单元,等。CPU 可包括一个或多个单指令多数据(SMD)处理器核。CPU 120还可执行操作系统(0S),例如 Microsoft Windows、Linux 或 Mac (Macintosh) 0S〇 存储装置140可用多种部件或子系统实现,包括例如磁盘驱动器、光驱动器、闪速 存储器或能够持久存储信息的其他装置。如在图1中图示的,存储装置140包括数据库150, 其存储大数据集。 图示的系统100还包括图形处理单元(GPU) 160,其耦合于图形存储器170。专用 图形存储器170可包括⑶DR (图形DDR)或DDR SDRAM模块,或适合用于支持图形渲染的任 何其他存储器技术。GPU 160和图形存储器170可安装在图形/视频卡上,其中GPU 160可 经由例如 PCI Express Graphics(PEG,例如外围部件互连/PCI Express xl6 图形 15W-ATX 规范1. 0、PCI特别兴趣组)总线或加速图形端口(例如,AGP V3. 0接口规范,2002年9月) 总线等图形总线而与CPU 120通信。图形卡可集成到系统母板上、到主CPU 120晶片(die) 内、配置为母板上的分立卡等。 作为图形应用的一部分,图示的GPU 160执行软件模块。图形应用可需要确定大 数据集中的最小或最大值以及到大数据阵列的其关联索引。在一个示例中,软件模块包括 代码,用于与确定值到大数据阵列内的关联索引并行地确定大数据集中的最小或最大值。 软件模块还可包括代码,用于将数据值和该数据值的关联索引组合到单个数据单 元内用于存储为大数据集中的数据条目。软件模块可用例如面向对象编程语言(例如C++) 等任何编程语目来编写。 GPU 160还可包括一个或多个单指令多数据(SMD)处理器核,用于提高和/或支 持图形性能。从而,图示的方法可以在牵涉高级数据并行和处理复杂性的图形环境中特别 有益。 现在转向图2A,图示大数据集,其中该大数据集包括阵列数据结构。图示的阵列中 的每个条目具有专门数据布局,其包括数据值和到大数据集的其关联索引,如在图2B中示 出的。数据值存储在数据条目的最高有效位中,并且索引被存储在数据条目的最低有效位 中。 软件模块可通过执行例如下列代码而构造并且组装大数据集的专门数据布局,其 中 N=16 : declare daiaArraylK], Ccrnsl lndexAiTay6] = i〇: I, 2, 3, 4. 5, 6, 8.. 9JO, 1113,14、15J: add (16)aci:i〇:15| (ndexArray{0;15] 0 mac (1datalndexArray[0:15】dataArray|_0:15J 65536 add (I iic.ei0:151 1 iKld4rmy [0:151 16 iliac (】6) daialncteikruyl 16:31 j dataArray|l6:31J 65536 数据条目的专门数据布局可通过将数据值和它的索引组合到单个数据条目内 而构造。软件模块可通过对每16个输入数据单元执行两个SIMD 16指令而构造并 且组装大数据集的专门数据布局。例如,对于前16个数据单元,软件模块可执行 add( 16) acc[D: 15] InckxAr種5] ?);矛口 ckUiJmtecA,rrayp:i5j da電aA.rray[i):l5] 65536,并且对于第二数据单元,软件模块可执行adcKld》aec阼LVnnctexAray[0 :b] ;和 m腻(16) daiaMexAmiy[16:3 daiaArray[16,31] 65536。 SMD 16指令并行地对十六个数据通道执行相同操作。SMD指令处理可比其中以 相继方式处理每个通道的方法更高效。尽管已经描述SMD16指令,可使用任何SMD指令。 在另一个示范性实施例中,离线构造专门数据布局并且数据库150预先填充有大 数据集。 图3示出与对确定的边界值数据单元到大数据集的关联索引进行确定并行地确 定大数据集中的边界值数据单元(例如,最小或最大数据值)的方法。该方法大体上可包括 在多个处理阶段期间连续确定大数据集内的较小数据单元的边界值数据单元直到产生单 个数据单元。 该方法可在可执行软件中实现为逻辑指令集,其存储在例如随机存取存储器 (RAM)、只读存储器(ROM)、可编程ROM (PR0M)、固件、闪速存储器等存储器的机器或计算机 可读存储介质中,在例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻 辑装置(CPLD)等可配置逻辑中,在使用汇编语言编程和电路技术的固定功能性硬件中,例 如专用集成电路(ASIC)、互补金属氧化物半导体(本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201410096786.html" title="使用SIMD指令集架构查找大数据集中最小和最大值的快速方法原文来自X技术">使用SIMD指令集架构查找大数据集中最小和最大值的快速方法</a>

【技术保护点】
一种方法,包括:通过以分级方式执行的多个处理阶段期间连续确定大数据集内较小数据集的边界值数据单元直到产生单个数据单元而与确定所确定的边界值数据单元到所述大数据集内的关联索引并行地确定所述大数据集中的边界值数据单元,其中每个数据集包括多个数据条目。

【技术特征摘要】
2013.03.15 US 61/798,288;2013.03.29 US 13/853,5891. 一种方法,包括: 通过以分级方式执行的多个处理阶段期间连续确定大数据集内较小数据集的边界值 数据单元直到产生单个数据单元而与确定所确定的边界值数据单元到所述大数据集内的 关联索引并行地确定所述大数据集中的边界值数据单元,其中每个数据集包括多个数据条 目。2. 如权利要求1所述的方法,其进一步包括: 将数据值和所述数据值的关联索引组合到单个数据单元内,并且将所述单个数据单元 存储为所述大数据集中的数据条目。3. 如权利要求1所述的方法,其中每个处理阶段与确定所确定的值到所述大数据集 内的关联索引并行地确定较小数据集的集之间的边界值数据单元。4. 如权利要求3所述的方法,其中确定较小数据集的集之间的边界值数据单元包括 使用单指令多数据(SIMD)指令并行地对每个数据集中的数据条目执行操作。5. 如权利要求4所述的方法,其中每个处理阶段的输出产生作为到下一个处理阶段 的新数据集输入而被接收的数据集。6. 如权利要求1所述的方法,其中第一处理阶段接收所述大数据集作为数据集输入。7. 如权利要求1所述的方法,其中所述大数据集作为结构化阵列存储在数据库中。8. 如权利要求1-7中任一项所述的方法,其中所述边界值数据单元是最小值数据单 元和最大值数据单元中的一个。9. 一种系统,包括: 确定模块,用于与确定所确定的边界值数据单元到大数据集内的关联索引并行地确定 所述大数据集中的边界值数据单元。10. 如权利要求9所述的系统,其进一步包括: 组合模块,用于将数据值和所述数据值的关联索引组合到单个数据单元内,并且将所 述单个数据单元存储为所述大数据集中的数据条目。11. 如权利要求10所述的系统,其中所述确定模块用于与确定所确定的边界值数据 单元到所述大数据内的关联索引并行地确定所述大数据集中的边界值数据单元,其包括以 分级方式执行的多个处理阶段期间连续确定所述大数据集内较小数据集的边界值数据单 元直到产生单个数据单元。12. 如权利要求11所述的系统,其中每个处理阶段接收数据集并且将所述数据集分成 多个较...

【专利技术属性】
技术研发人员:LA唐SH许
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1