Processing math: 0%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

HyperTree:高并发B+树索引加速器

吴婧雅, 卢文岩, 鄢贵海, 李晓维

吴婧雅, 卢文岩, 鄢贵海, 李晓维. HyperTree:高并发B+树索引加速器[J]. 计算机研究与发展, 2023, 60(7): 1661-1677. DOI: 10.7544/issn1000-1239.202111055
引用本文: 吴婧雅, 卢文岩, 鄢贵海, 李晓维. HyperTree:高并发B+树索引加速器[J]. 计算机研究与发展, 2023, 60(7): 1661-1677. DOI: 10.7544/issn1000-1239.202111055
Wu Jingya, Lu Wenyan, Yan Guihai, Li Xiaowei. HyperTree: High Concurrent B+tree Index Accelerator[J]. Journal of Computer Research and Development, 2023, 60(7): 1661-1677. DOI: 10.7544/issn1000-1239.202111055
Citation: Wu Jingya, Lu Wenyan, Yan Guihai, Li Xiaowei. HyperTree: High Concurrent B+tree Index Accelerator[J]. Journal of Computer Research and Development, 2023, 60(7): 1661-1677. DOI: 10.7544/issn1000-1239.202111055
吴婧雅, 卢文岩, 鄢贵海, 李晓维. HyperTree:高并发B+树索引加速器[J]. 计算机研究与发展, 2023, 60(7): 1661-1677. CSTR: 32373.14.issn1000-1239.202111055
引用本文: 吴婧雅, 卢文岩, 鄢贵海, 李晓维. HyperTree:高并发B+树索引加速器[J]. 计算机研究与发展, 2023, 60(7): 1661-1677. CSTR: 32373.14.issn1000-1239.202111055
Wu Jingya, Lu Wenyan, Yan Guihai, Li Xiaowei. HyperTree: High Concurrent B+tree Index Accelerator[J]. Journal of Computer Research and Development, 2023, 60(7): 1661-1677. CSTR: 32373.14.issn1000-1239.202111055
Citation: Wu Jingya, Lu Wenyan, Yan Guihai, Li Xiaowei. HyperTree: High Concurrent B+tree Index Accelerator[J]. Journal of Computer Research and Development, 2023, 60(7): 1661-1677. CSTR: 32373.14.issn1000-1239.202111055

HyperTree:高并发B+树索引加速器

基金项目: 国家自然科学基金项目(62002340,61872336,61572470);中国科学院青促会基金项目(Y404441000)
详细信息
    作者简介:

    吴婧雅: 1994年生. 博士. CCF会员. 主要研究方向为专用计算体系结构和异构计算系统优化

    卢文岩: 1990年生. 博士,副研究员,硕士生导师. CCF会员. 主要研究方向为深度学习加速器、数据库加速器、专用计算体系结构和异构计算系统优化

    鄢贵海: 1982年生. 博士,研究员,博士生导师. CCF会员. 主要研究方向为计算机体系结构、专用加速器设计和智能芯片体系结构

    李晓维: 1964年生. 博士,研究员,博士生导师. CCF会士. 主要研究方向为超大规模集成电路设计、可靠性设计和容错计算

    通讯作者:

    鄢贵海(yan@ict.ac.cn

  • 中图分类号: TP302

HyperTree: High Concurrent B+tree Index Accelerator

Funds: This work was supported by the National Natural Science Foundation of China (62002340,61872336,61572470) and the Program of the Youth Innovation Promotion Association, CAS (Y404441000).
More Information
    Author Bio:

    Wu Jingya: born in 1994. PhD. Member of CCF. Her main research interests include domain-specific computer architecture and heterogeneous computing system optimization

    Lu Wenyan: born in 1990. PhD, associate professor, master supervisor. Member of CCF. His main research interests include deep learning accelerator, database accelerator, domain-specific computer architecture and heterogeneous computing system optimization

    Yan Guihai: born in 1982. PhD, professor, PhD supervisor. Member of CCF. His main research interests include computer architecture, domain-specific accelerator design and intelligent chip architecture

    Li Xiaowei: born in 1964. PhD, professor, PhD supervisor. Fellow of CCF. His main research interests include VLSI design, reliability design, fault-tolerant computing

  • 摘要:

    B+树是关系型数据库中用来加速查询的常用索引结构,通过构建平衡树维护关键属性的顺序. 索引提升了数据库查询性能,但其严格的有序关系增加了数据库表的维护开销. 特别是在大数据场景下,数据量激增使得索引查询和维序性能进一步下降. 如何平衡B+树的查询和维序性能,以及在大数据场景下提升索引查询和维序的效率,对提升索引系统性能具有重要意义. 由此设计了一种专用的B+树索引加速系统,对存储和计算进行协同优化,均衡提升索引查询和维序性能. 利用内存突发读写高带宽的特性设计规则的树和节点存储格式以提升内存带宽利用效率,设计高效的同构计算架构和多数据通道以提升索引操作并行度. 同时设计解耦合的子树结构缓解索引维护时的树读写冲突. 实验结果表明,相比于CPU,B+树索引加速系统能够提升系统查询性能超过6.84倍,提升索引维序性能提升超过29.14倍.

    Abstract:

    B+tree is the most commonly used index structure to improve query performance in relational databases. It maintains the order of key attributes in the database by building a balanced tree. The index improves database query performance but introduces index maintenance overheads, which include index updating, index deletion and index insertion, because of the high sequential order of the B+tree. Additionally, the performance of the B+tree will be further damaged by the huge amount of data under the circumstance of big data. Therefore, it is significant to balance index performance between the requirement of query and maintenance in B+tree systems while improving the index operation efficiency. To tackle these problems in big data applications, a domain-specific B+tree accelerator, called HyperTree, is proposed to boost the performance of B+tree operations including both index query and index maintenance. HyperTree co-optimizes both memory bandwidth and computation efficiency to fully utilize resources on the domain-specific accelerator. Specifically, to improve memory bandwidth utilization, the structures of the node and the B+tree are designed based on the characteristic of high bandwidth utilization in memory burst read/write; to improve computation parallelism and concurrency, multiple homogeneous computing engines and multiple data channels are configured to fully utilize hardware resources and reduce control overheads. In addition, to eliminate the block of index maintenance operations, a sub-tree system is proposed to uncouple the nodes in B+tree. The results of experiments show that compared with CPU, the FPGA-based B+tree accelerator achieves 6.84 times boosts in the throughput of query transactions and 29.14 times boosts in the throughput of index insertion.

  • 日常生活中,人们经常会使用到移动电话和微信聊天等,在这些语音通信中,环境噪声和其他干扰不可避免地影响了通话质量. 因此,降低背景噪声,提高语音的质量和清晰度一直都是语音处理应用中的一个关键问题. 语音增强的目的就是消除噪声和干扰,最大可能地提高语音的听觉质量和可懂度. 目前很多的语音增强算法仅仅改善了语音质量,在可懂度方面存在很大不足,即在低信噪比环境下,噪声得到了控制,但引入了较大的语音失真. 因此,如何保证在语音不失真的前提下,有效抑制噪声和干扰,是语音增强领域一个主要挑战.

    语音增强方法主要有传统方法和深度学习方法. 传统方法如谱减法[1]、维纳滤波[2]和最小均方误差(minimum mean square error, MMSE)估计[3]在语音处理领域得到了广泛地研究, 其主要采用无监督数字信号分析方法,通过对语音信号进行分解,确定干净语音和噪声的特征,实现语音和噪声的分离. 然而,这些方法都是基于稳定噪声的假设,在处理非平稳噪声时性能会大大降低,为了解决这些局限性,基于深度学习的方法被提出,深度学习方法主要有基于时频掩蔽的语音增强方法和基于特征映射的语音增强方法. 基于时频掩蔽的语音增强方法主要将噪声和干净语音相互关系的时频掩蔽作为学习目标,该方法需要假设纯净语音和噪声具有一定的独立性;而基于特征映射的语音增强方法主要学习干净语音特征和带噪语音特征之间的复杂关系,从而找到两者间的映射,网络的输入与输出通常是同种类型的声学特征,且在实现过程中几乎不会对语音和噪声信号做任何假设. 研究人员在此基础上提出了许多基于神经网络的模型[4-6],如深度神经网络(deep neural network, DNN)[7-9]、循环神经网络(recurrent neural network, RNN)[10-12]、卷积神经网络(convolutional neural network, CNN)[13-17]和其他一些变体. Xu等人[8]首先使用了一种基于DNN的回归方法,学习噪声语音到干净语音的对数功率谱的映射函数. 该方法取得了令人满意的结果,从而证明了基于深度学习方法的有效性. 然而,DNN由几个完全连通的层组成,这些层对语音信号[18]的时域结构建模困难. 此外,参数的数量随着层数和节点数的增加而迅速增加,从而增加了计算量.

    近年来CNN被不断应用于语音处理领域,使得其在减少参数量的同时,可以显著捕捉语音信号中的隐含信息. 在一定范围内,CNN可以保持语音特征在频域内的小幅度移动,从而应对说话人和环境的变化. 为了提高去噪性能和重构语音,很多方法会利用跳跃连接帮助模型恢复频谱. 然而,目前广泛使用的跳跃连接机制在特征信息传输时会引入噪声成分,不可避免地降低了去噪性能;除此之外,CNN中普遍使用的固定形状的卷积核在处理各种声纹信息时效率低下. 基于上述考虑,本文提出了一种基于跨维度协同注意力机制(cross-dimensional collaborative attention mechanism)和形变卷积(deformable convolution)的端到端编-解码器网络CADNet. 具体地:1) 在跳跃连接中引入卷积注意模块,跳跃连接自适应分配注意权值来抑制噪声成分. 不同于单一方面的注意力机制设计,我们从通道和空间2个维度及其相互依赖等方面对其进行了细化,进一步提高信息控制能力,从而有效解决噪声引入的问题. 2) 在编码器和解码器之间,将多个自注意力模块串联起来对信息进行处理,为了防止注意力操作堆叠造成的信息遗忘,在每个自注意力模块(self-attention block, SAB)中添加残差连接,将每个原始输入直接传递到下一层. 3) 在每个标准卷积层之后引入可形变卷积层,以更好地匹配声纹的自然特征,增强信息的解析能力.

    本文的主要贡献包括3个方面:

    1) 提出了一种基于通道和空间的跨维度协同注意力机制方法,通过在跳跃连接中协同学习注意力机制来抑制噪声成分,进一步提高信息控制能力,且该方法只涉及很少的参数;

    2) 在解码器的每个标准卷积层后引入形变卷积层,对解析结果进行重新校准和校正,以获得更好的特征处理能力;

    3) 在TIMIT公开数据集上对多个基准模型进行了充分实验,并与本文所提出的模型进行了比较分析,实验验证了所提出的算法在语音质量和可懂度的评价指标方面的有效性.

    随着CNN被引入到语音处理中,Fu等人[14]提出了一种信噪比感知的CNN来估计话语的信噪比,然后自适应增强,从而提高泛化能力. Hou等人[16]使用了音频和视觉信息来进行语音增强. Bhat等人[17]提出了一个多目标学习CNN,并将其作为应用程序在智能手机上实现. 由于CNN在特征提取方面更为有效,所以近年来的研究多采用基于卷积编码器-解码器(convolutional encoder-decoder)的网络进行语音增强. 此外,Park等人[19]去掉了CNN中的全连接层,将全卷积网络(fully convolutional network, FCN)引入语音增强领域. 近年来,基于FCN的工作层出不穷. Tan等人[20]提出了卷积循环网络(convolutional recurrent network, CRN),它在FCN的编码器和解码器之间插入了2个长短期记忆网络(long-short-memory, LSTM)层,可以有效地捕获局部和序列属性. Grzywalski等人[21]将门控循环单元(gate recurrent unit,GRU)层添加到FCN的每个构建块中. 文献[141617192021]所述的模型利用神经网络的时间建模能力,提高了自身的信息表示能力. FCN中的最大池化层用于提取特定区域中最活跃的部分,但会导致细节信息的丢失. 因此,FCN在一些只需要获得整体特征的语音识别领域中就可以取得良好的效果. 但在语音增强领域中,细节信息是恢复干净语音的关键,如果没有细节信息,将会大大影响语音增强的效果. 为了解决这个问题,文献[19]中还提出了冗余卷积编码器-解码器(redundant convolutional encoder-decoder, RCED)网络,该网络丢弃了FCN中的最大池化层和相应的上采样层,保持特征图的大小,从而达到保留细节信息的目的,提高了语音增强的性能. 为了进一步提高去噪性能,Lan等人[22]在每个卷积层之后引入注意力块来捕获复杂的依赖关系. 此外,考虑到深度神经网络通常缺乏细粒度的信息,使得语音重构更加困难,文献[22]所述的方法还利用了跳跃连接帮助模型恢复频谱.

    注意力机制最初被用于机器翻译工作[23],现在已经成为了神经网络领域中的一个重要概念. 在人工智能领域,注意力机制已经作为神经网络结构的重要组成部分,并在自然语言处理、语音和计算机等领域得到了广泛地应用. 注意力机制来源于人类视觉机制,通常人类的视觉系统倾向于关注图像中重要的信息和忽略掉不相关的信息[24]. 而注意力的基本思想是:在预测输出时允许模型动态地关注有利于执行任务输入的部分,并将这种相关性概念结合起来. 注意力机制不仅能够告诉模型应该注意什么,同时也能增强特定区域的表征能力. 传统的注意力方法是将网络的特征图的权重传递到下一层,而Hu等人[25]提出了一种注意力机制,其学习了每一个卷积模块的通道注意力,提升了CNN的性能. 其核心思想在于建模通道之间的相互依赖关系,通过网络的全局损失函数自适应地重新矫正通道之间的权重.

    在此基础上,本文首先在通道维度使用了注意力机制,依赖于特征图的全局信息来确定每个通道的重要性. 但由于卷积操作是将跨通道信息和空间信息融合在一起来提取信息特征,因此从通道级全局视角进行细化、确定每个通道的重要性之后,我们还利用特征的空间关系生成空间注意图,以区分不同权重的内空间关系特征,把2个分支的信息融合在一起,从而形成了一种跨维度的协同注意力机制.

    本节介绍基于跨维度协同注意力机制和形变卷积的单通道语音增强算法及应用.

    通常情况下,一条带噪语音可以表示为

    {\boldsymbol{Y}}({{t}})={\boldsymbol{ X}}({{t}})+{\boldsymbol{ N}}({{t}}) , (1)

    其中{{t}}表示时间帧的索引,YXN表示对应时间帧的含噪语音信号、纯净语音信号及噪声波形. 从含噪语音信号{\boldsymbol{Y}}中消除噪声{\boldsymbol{N}},得到纯净语音{\boldsymbol{X}}的过程就是语音增强的任务. 一般情况下,不同语音往往具有不同的时间长度,因为语音的时间帧的总数不是固定的. 语音的时域信号通过分帧、加窗以及短时傅里叶变换得到短时傅里叶变换幅度谱. 给定一个长度为L的实值向量{\boldsymbol{Y}},可通过短时傅里叶变换(short-time Fourier transform, STFT ) 将其转换为时频域,即

    {\boldsymbol{Y}} \to {{\boldsymbol{Y}}_{t,f}} , (2)

    式(1)可以重写为

    {{\boldsymbol{Y}}_{t,f}} = {{\boldsymbol{X}}_{t,f}} + {{\boldsymbol{N}}_{t,f}} , (3)

    其中{{\boldsymbol{Y}}_{t,f}}{{\boldsymbol{X}}_{t,f}}{{\boldsymbol{N}}_{t,f}}分别代表含噪语音、纯净语音和噪声在时间帧t和频点f时的值. 通过神经网络模型,获取增强后的幅度谱,并利用带噪相位和快速傅里叶逆变换还原到时域空间,最终得到降噪后的语音波形.

    图1所示,CADNet的整体框架图一共包含了4个模块,分别为:编码层(encoder)、自注意力模块(self-attention blocks, SAB)、解码层(decoder)和跨维度协同注意力模块(cross-dimensional collaborative attention blocks).

    图  1  CADNet的总体架构
    Figure  1.  The overall architecture of CADNet

    1) 编码层

    在特征处理和语音重构的后续步骤中,充分的特征表示将会起到很重要的作用. 考虑到特定的帧长和时间轴与频率轴之间的分辨率关系,我们决定采用一个更大的卷积核来对特征进行提取,从而在层数较少的情况下能够获得更大的感受野[26]. 首先,利用短时傅立叶变换将语音波形转换为频谱域,并以幅度谱作为输入. 然后,使用由4个大小为11×11的卷积核组成的卷积层进行特征提取,并在每个卷积层之后使用PReLU激活函数. 除此之外,我们将输出特征通道数分别设置为4,8,16,32,并将步长和膨胀率值均设置为1,以避免信息丢失.

    2) 自注意力模块

    受到文献[27]的启发,将6个SAB串联起来对信息进行处理.每个SAB的第1步是使用1层卷积(卷积核大小为11×11)进行线性变换.然后,将特征输入到2个并行的卷积层中(卷积核大小均为11×11),其中一个卷积层生成重要权值来控制另一个卷积层的信息流. 使用注意力机制的本意是更好地获取全局信息,但堆叠的注意力层也会使模型丧失了捕捉局部特征的能力,使得特征图包含的图像信息会逐层减少,造成一定的信息遗忘.为了防止注意力操作堆叠造成的信息遗忘,还在每个SAB中添加了残差连接[28],将每个原始的输入直接传递到下一层.在具体的实现过程中,将每个SAB的输入和输出通道的数量都固定为32个,并在每个卷积层之后应用PReLU激活函数.

    3) 解码层

    标准卷积使用固定的卷积核在输入的特征图上采样时,将卷积核与特征图中对应位置的数值逐个相乘,最后求出加权和,就得到该位置的卷积结果,不断移动卷积核,就可算出各个位置的卷积结果. 在同一层标准卷积中,所有的激活单元的感受野是一样的. 但由于不同位置可能对应着不同尺度或形变的特征信息,因此在提取特征信息的过程中对尺度或者感受野大小进行自适应地调整是必须的. 受到文献[29]的启发,我们在解码层的卷积模块中引入了形变卷积,即在每个标准的卷积层之后添加了形变卷积层来重新校正解析结果. 形变卷积基于一个平行网络学习偏移量,对卷积核中每个采样点的位置都增加了一个偏移变量,可以实现在当前位置附近随意采样而不局限于之前的规则格点.

    R = \left\{ {({{ - }}1,{{ - }}1),({{ - }}1,0), … ,(0,1),(1,1)} \right\}表示以 {p_0} 为中心的3×3邻域区域,则位置 {p_0} 处的偏移增广特征映射为

    h({p}_{0})={\displaystyle \sum _{{p}_{n}\in R}w({p}_{n})}·u({p}_{0}+{p}_{n}+\Delta {p}_{n}) . (4)

    我们可以看到,形变卷积可以通过操纵偏移 {p_n} 来改变感受野的大小,从而更好地匹配声纹的自然特征. 在具体实现中,我们在每个核大小为11×11的标准卷积之后应用核大小为3×3的形变卷积. 解码器的8层输入、输出通道数目分别为(32,32,16,16,8,8,4,4)和(16,16,8,8,4,4,1,1). 形变卷积的结构如图2所示.

    图  2  形变卷积细节
    Figure  2.  Details of deformable convolution

    4) 跨维度协同注意力模块

    为了区分不同类型的信息,抑制不相关的噪声部分,我们在跳跃连接操作中插入一个跨维度协同注意力模块[24],如图3所示. 由于卷积是将跨通道信息和空间信息融合在一起来提取信息特征的,因此我们沿着这2个主要维度设计了跨维度协同注意力机制. 首先,我们采用一种基于通道的注意力机制,该机制依赖于特征图的全局信息来确定每个通道的重要性.

    图  3  跨维度协同注意力机制模块
    Figure  3.  Cross-dimensional collaborative attention mechanism blocks

    设一个卷积层的输出为X\in {\mathbb{R}^{W \times H \times C}},其中W,H,C分别表示宽度、高度和通道维度. 我们用{{\boldsymbol{X}}_{\rm{e}}}{{\boldsymbol{X}}_{\rm{d}}}分别表示编码器和解码器的一个卷积块的输出. 首先,我们通过元素求和的方式融合{{\boldsymbol{X}}_{\rm{e}}}{{\boldsymbol{X}}_{\rm{d}}},即

    {\boldsymbol{X}} = {{\boldsymbol{X}}_{\rm{e}}} + {{\boldsymbol{X}}_{\rm{d}}} . (5)

    其次,采用全局平均池化方法,沿通道维度对信息进行挤压,即聚合特征

    {\boldsymbol{y}} = g({\boldsymbol{X}}) = \frac{1}{{W \times H}}\sum_{i = 1,j = 1}^{W,H} {{X_{ij}}} . (6)

    由于注意力机制的有效性,Lan等人[22]使用了SE-Net,SE-Net学习了每一个卷积模块的通道注意力从而提升了网络的性能,但是SE-Net中的2个全连接层之间的维度缩减不利于学习通道注意力的权重,且文献[30]表明降维会对学习通道注意力产生副作用,效率较低,没有必要捕获所有通道之间的依赖关系. 适当的跨通道交互对于保持性能和显著降低模型复杂度很有价值. 因此我们提出了一种获取局部跨通道交互的方法,旨在保证效率和有效性. 假设经过全局平均池化后的聚合特征为 {\boldsymbol{y}} \in {\mathbb{R}^C} 且没有降维,其中 C 为特征维度,即过滤器的数量. \sigma(\cdot) 表示sigmoid函数,则可以通过式(7)来学习通道注意力{\boldsymbol{\omega}}

    {\boldsymbol{\omega}} = \sigma ({{\boldsymbol{W}}_{\boldsymbol{y}}}) , (7)

    其中{{\boldsymbol{W}}_{\boldsymbol{y}}}是一个 C \times C 的矩阵, C 表示通道维度.

    我们使用一个带状矩阵{{\boldsymbol{W}}_k}来学习通道注意力:

    {{\boldsymbol{W}}_k} = \left( {\begin{array}{*{20}{c}} {{w^{1,1}}} & … & {{w^{1,k}}} & 0 \\ 0 & {{w^{2,2}}} & … & {{w^{2,k + 1}}} \\ \vdots & \vdots & {} & \vdots \\ 0 & {\text{0}} & … & 0 \end{array}\begin{array}{*{20}{c}} 0 & {\text{0}} & … & 0 \\ 0 & {\text{0}} & … & 0 \\ \ddots & \vdots & {} & \vdots \\ … & {{w^{C,C - k + 1}}} & … & {{w^{C,C}}} \end{array}} \right), (8)

    其中{{\boldsymbol{W}}_k}包含 k \times C 个参数.

    我们可以仅考虑 {y_i} 和它相邻的k个通道之间的相互关系来计算 {y_i} 的权值,让所有的通道共享相同的学习参数,即

    {\omega _i} = \sigma \left(\sum\limits_{i = 1}^k {{\omega ^j}} y_i^j\right),y_i^j \in \varOmega _i^k , (9)

    其中\varOmega表示 {y_i} k个相邻通道的集合,并且该种方法可以使用卷积核大小为k的快速一维卷积来实现:

    {\boldsymbol{\omega}} = \sigma ({\rm{C1D}}{_k}({\boldsymbol{y}})) . (10)

    其中{\rm{ C1D}}指一维卷积,且该一维卷积仅包含k个参数就可以获取局部跨通道交互的信息.

    由于该模块旨在适当地捕获跨通道信息交互,因此需要确定交互的覆盖范围(即一维卷积核的大小k),我们可以通过手动调整具有不同通道数的卷积块来确定跨通道交互信息的范围,但是手动调优会消耗大量计算机资源,组卷积已经成功运用于改进 CNN 架构[31-33],其中高维通道拥有较长的固定组卷积,而低维通道拥有较短的固定组卷积. 因此,我们可以得到通道交互的覆盖范围(即一维卷积的核大小 k)与通道维度 C 成正比. 也就是说,kC之间存在映射\phi

    C = \phi (k) . (11)

    最简单的映射是一个线性函数,即

    \phi (k)=\gamma \times k-b , (12)

    其中, \gamma b 是线性函数的参数. 然而,以线性为特征的关系功能太有限了.另一方面,通道维度C通常设置为2的幂因子,我们可以通过此关系将线性函数(式(12))扩展到非线性函数,即

    C=\phi (k)={2}^{\gamma \times k-b} . (13)

    那么,给定通道维度C,内核大小 k 可以是自适应地确定:

    k = \psi (C) = \left|\frac{{{\rm{lb}}(C)}}{\gamma } + \frac{b}{\gamma }\right|_{{\text{odd}}} , (14)

    其中|t{|_{{\rm{odd}}}}表示最接近t的奇数.

    本文中,我们把所有实验中的yb分别设置为2和1. 显然,通过映射函数\psi (\cdot) ,高维通道具有更远距离的相互作用. 在自适应地确定了内核大小k之后,执行一维卷积,然后,使用sigmoid激活函数来标准化每个权值,通过乘法求出权值来细化{{\boldsymbol{X}}_{\rm{e}}}{{\boldsymbol{X}}_{\rm{d}}}. 从通道级全局视角进行细化后,利用特征的空间关系生成空间注意图,以区分不同权重的内空间关系特征. 首先融合2个分支的信息,然后应用一系列的操作(ReLU激活函数, 1 \times 1 的卷积操作和sigmoid激活函数)来获得空间注意图. 特别地,将卷积层的输出通道维度C设置为1,以通过通道尺寸缩小注意图(参见图3).

    本节详细介绍实验的数据集及其实验配置,以及基准模型和不同模型的实验结果对比分析.

    本文在TIMIT语料库[34]上进行了实验,同时选取NOISEX92[35]中的噪声以及其他105种噪声作为实验中的噪声数据集,并从TIMIT语料库的训练数据集中分别选取2000和100条干净语音进行训练和验证,并选择TIMIT核心测试中的192条语音进行测试.

    训练过程中我们采用了105种噪声,其中包括100种非言语噪音[29]和自助餐厅、餐厅、公园、办公室和会议这5种不同环境的生活噪音[36]. 在−5~10 dB的信噪比(signal noise rate,SNR)范围内以1 dB为间隔混合训练集的共2100条干净语音分别创建了训练和验证数据集. 测试过程中,我们在105种噪声的基础上还增加了NOISEX92中的5种噪音(babble, f16, factory2, m109, white),并在4种信噪比(−5 dB,0 dB,5 dB,10 dB)条件下混合192条干净测试语音创建测试数据集.

    在混合语音的过程中,我们首先把所有的噪声拼接成一个长向量;然后随机选择一个切割点,在一定的信噪比条件下将其与待混合的干净语音进行混合.如表1所示,混合语言分别生成了36 h的训练数据、1.5 h的验证数据和1 h的测试数据.

    表  1  实验数据集
    Table  1.  Dataset of Our Experiment
    语音种类数据集分类数量时长/h
    干净语音训练20001.2
    验证1000.06
    测试1920.12
    噪声可见1050.17
    不可见50.4
    混合语音训练2000036
    验证20001.5
    测试7681
    下载: 导出CSV 
    | 显示表格

    我们将实验中所使用到的所有语音片段均采样到16 kHz. 在数据预处理过程中,使用窗口大小为20 ms的汉明窗对语音信号进行短时傅里叶变换,将语音信号分割成一组帧,相邻帧重叠50%. 每帧对应一个161维的特征向量. 我们将epoch大小设置为30,并将学习率固定为0.0002,使用平均绝对误差(mean absolute error, MAE)作为损失函数,并通过Adam优化器来优化模型参数. 我们通过短时客观可解性(STOI)[37]、感知评价语音质量(PESQ)[38]和比例不变信号失真比(SI-SDR)[39]来评估不同模型的性能.对于这3个评价指标,我们分别计算了每一个基准模型在不同信噪比下的评价指标的平均值,避免了实验结果的偶然性.本文实验所用到的实验平台是Ubuntu LTS 18.04,其带有i7-9700和RTX 2060.

    我们在近3年较为流行的几个时频域网络中选取了4个模型(CRN[20],GRN[40],AUNet[41],DARCN[42]),与本文所提出的方法CADNet进行了对比,验证了CADNet方法的有效性.

    1) CRN将卷积编码器-解码器网络和长短期记忆网络结合到CRN体系结构中,并引入了跳跃连接操作,从而形成了一个适用于实时处理的单通道语音增强系统;

    2) GRN将语音增强视为序列到序列的映射,结合了扩展卷积和门控机制进行序列建模,在扩大感受野的同时使用简单的聚合操作来保留重要特征,从而实现语音增强;

    3) AUNet在编码器和解码器之间采用了一种空间上的注意机制,用于学习聚焦不同形状和大小的目标结构,以尽可能地消除噪声,从而提升语音增强的准确率;

    4) DARCN设计了一个并行注意子网络来控制信息流,同时引入动态注意力机制和递归学习,通过在多个阶段重用网络来动态减少可训练参数的数量,增强单通道语音.

    表2分别显示了不同模型的性能,其中Noisy表示带噪语言的语音质量. 我们可以观察到:在不同的信噪比条件下,CRN的3项指标结果都优于带噪语音Noisy,但在低信噪比水平上(−5dB)性能会严重下降;采用了空间注意力机制的AUNet获得了比CRN更好的结果;DARCN利用注意力机制动态控制信息流,即使在低信噪比的情况下也能取得良好的效果,而在低信噪比的情况下,跳跃连接引入的噪声更加明显,从而降低了去噪性能,这与之前的分析一致;没有采用跳跃连接的GRN即使性能指标不是最佳,但也获得了相对较好的结果,这可能是由于其简单的聚合操作,以一种粗略的方式提供所有流程信息. 与目前最先进的模型相比,本文所提出的CADNet性能提升显著,即在STOI,PESQ,SI-SDR 指标方面, CADNet的性能分别提高了0.70%,3.83%,2.61%.

    表  2  不同信噪比条件下各个模型的指标比较
    Table  2.  Indicators Comparison of Different Models Under Different SNR Conditions
    信噪比/dB指标 Noisy模型
    CRNGRNAUNetDARCNCADNet
    −5STOI/%60.8268.2374.1372.2975.3576.35
    071.8980.0383.7182.3484.5985.14
    581.8388.0890.1189.0290.5891.02
    1089.0992.5993.7692.9294.0594.46
    平均/%75.9182.2285.4284.1386.1486.74
    −5PESQ1.431.782.041.972.092.17
    01.762.222.492.412.532.59
    52.152.642.892.802.922.97
    102.472.943.193.103.193.25
    平均1.952.392.652.572.682.75
    −5SI-SDR-5.003.394.924.625.345.72
    00.007.758.998.769.269.67
    54.9911.7812.7812.5112.9313.33
    1010.0015.4316.3415.9416.4216.88
    平均2.499.5910.7510.4510.9811.40
    注:黑体数字表示每种实验设置下的最佳结果.
    下载: 导出CSV 
    | 显示表格

    为了进一步研究模型中单个模块对性能的影响,我们进行了消融实验,分别构建了去掉形变卷积模块的CANet网络、去掉协同注意力模块的DNet网络以及同时去掉这2个模块的基本网络. BASENet分别比较了这3个模型和CADNet在不同信噪比下(−5dB,0dB, 5dB,10dB)的STOI,PESQ,SI-SDR值,实验结果如图4所示. 跨维度协同注意力模块和形变卷积模块均能够较好地提升模型BASENet的性能指标,从而改善实验结果. 更为重要的是,两者的贡献是相辅相成的,因此消融实验结果也表明了跨维度协同注意力和形变卷积这2种机制的重要性.

    图  4  不同信噪比下的消融实验结果
    Figure  4.  Experimental results of ablation studies under different SNRs

    通道注意力模块中包含一个参数k,即卷积核大小,在第2节我们提到卷积核大小k和通道维度具有某种关系并且给出了推导,因此,我们做了参数敏感性实验来证明我们的结论. 通过设置k=3,5,7,9,我们分别对模型进行了训练,然后在混合信噪比语音测试集上进行了测试. 结果如表3所示,可以观察到当k=5时,模型可以获得最优的结果.

    表  3  不同k值对应的通道注意力模块的实验结果
    Table  3.  Experimental results of Channel-Based Attention Modules with Various k values
    kPESQSTOI/%SI-SDR
    32.7486.6111.36
    52.7586.7311.40
    72.7386.5111.17
    92.7586.6011.30
    注:黑体数字表示最优值.
    下载: 导出CSV 
    | 显示表格

    为了证明CADNet的效率,我们还对模型复杂度进行了分析. 表4显示了不同模型的训练参数量和测试每个样本(即每条语音)的测试时长. 可以看到,与其他模型相比,CADNet的参数量相对较少. 这是由于在模型设计过程中使用了小通道搭配较大的卷积核,从而降低了模型的参数复杂度,达到令人满意的性能. 因此,CADNet由于内存消耗少且推理时间快,具有广泛的应用性.

    表  4  不同模型的训练参数量和测试时间(每个样本)
    Table  4.  Number of Training Parameters and Inference Time (for Each Sample) of Different Models
    模型训练参数量测试时间/s
    CRN1719万0.15
    GRN313万0.11
    DARCN123万0.17
    CADNet72万0.17
    注:黑体数字表示最优值.
    下载: 导出CSV 
    | 显示表格

    本文首先剖析了近年来基于CNN的语音增强模型,并提出了其所面临的挑战. 然后,提出了一种新的CADNet方法,该方法包含2个具体的设计:1) 在编码器和解码器之间引入了一个跨维度协同注意力模块,首先依赖于特征图的全局信息来确定每个通道的重要性,从通道级全局视角进行细化后;再利用特征的空间生成空间注意力图,以区分不同权重的内空间关系特征;最后将2个维度的信息进行融合,从而更好地控制信息,抑制不相关的噪声部分. 2) 在解码器部分引入形变卷积模块,对尺度或者感受野大小进行自适应地调整,提取不同位置对应的不同尺度或形变的特征信息,更好地匹配声纹的自然特征,从而增强了信息解析能力. 为了进一步验证模型的有效性和效率,我们在TIMIT语料库上进行了一系列实验. 实验结果表明,所提出的模型能够在降低参数量的同时,性能始终优于现有的先进模型. 由于低级的粒度特征和高级语义表示之间的直接连接会削弱自注意力模块的重要性,我们未来的工作将会重点研究如何在上述条件下提高自注力模块的重要性.

    作者贡献声明:康宏博和冯雨佳对本文具有相同的贡献. 其中康宏博提出了算法思路和实验方案并撰写论文;冯雨佳负责完成实验并撰写论文.台文鑫提出论文修改意见;蓝天、吴祖峰和刘峤提出了指导意见.

  • 图  1   B+树的关键字查询

    Figure  1.   Keyword search in B+tree

    图  2   B+树的关键字插入

    Figure  2.   Keyword insertion in B+tree

    图  3   DDR4的实际有效读写带宽

    Figure  3.   Practical efficient read/write bandwidth of DDR4

    图  4   流式计算与批量计算的区别

    Figure  4.   Difference between streaming computing and batch computing

    图  5   同构计算单元与异构计算单元的区别

    Figure  5.   Difference between homogeneous and heterogeneous computing units

    图  6   系统整体结构

    Figure  6.   System overall architecture

    图  7   树表的数据结构定义

    Figure  7.   Data structure definition of tree-table

    图  8   TMMU的地址映射

    Figure  8.   Address mapping in TMMU

    图  9   单个计算引擎结构

    Figure  9.   Single computing engine architecture

    图  10   指令控制系统

    Figure  10.   Instruction control system

    图  11   同构的全功能多处理引擎设计

    Figure  11.   Design of homogenous fully functional multi-processing engines

    图  12   子树结构和TMMU管理

    Figure  12.   Sub-tree structure and TMMU management

    图  13   子树结构和查询优化

    Figure  13.   Sub-tree structure and query optimization

    图  14   B+树加速系统的索引查询

    Figure  14.   Index query of B+tree accelerating system

    图  15   B+树加速器的归一化吞吐量

    Figure  15.   Normalized throughput of B+tree accelerator

    图  16   归一化的并行数据查询指令吞吐量

    Figure  16.   Normalized throughput of parallel data query instructions

    图  17   子树并行性

    Figure  17.   Parallelism of sub-tree

    表  1   指令集设计

    Table  1   Design of Instruction Set

    类型指令名称作用
    基本指令tree-creat创建新树
    tree-delet删除树
    key-query单值查询
    range-query范围查询
    key-update关键字更新
    key-delete关键字删除
    key-insert关键字插入
    附加指令low-key范围查询:区间下界
    high-key范围查询:区间上界
    old-key关键字更新:待修改的旧值
    new-key关键字更新:应改为的新值
    下载: 导出CSV

    表  2   FPGA硬件资源配置

    Table  2   FPGA Hardware Resource Configuration

    资源类型参数U200U50U280
    存储DDR4空间/GB6432
    DDR4带宽/GBps7738
    HBM2空间/GB88
    HBM2带宽/GBps316*460
    BRAM214213442016
    URAM960640960
    SRAMSRAM空间/MB432843
    SRAM带宽/TBps372435
    逻辑
    资源
    LUT118.2万87.2万130.4万
    寄存器236.4万174.3万260.7万
    DSP单元684059529024
    注:“*”标称201 GBps,峰值316 GBps.
    下载: 导出CSV

    表  3   基于Alveo U200 FPGA板卡的B+树索引加速器硬件配置

    Table  3   Hardware Configuration of B+tree Index Accelerator Using Alveo U200 FPGA Board

    配置指标配置信息
    计算引擎数目32
    带宽/GBps51.2
    下载: 导出CSV

    表  4   B+树加速器的可扩展性

    Table  4   The Scalability of B+tree Accelerator

    计算引
    擎数量
    FPGA板卡资源性能
    U200实际带宽/
    GBps
    QPS
    (CPU=1)
    LUT
    数量
    寄存器
    数量
    BRAM
    数量
    4330523725280 6.4 26.78
    867088703689612.5 52.26
    1611230412352412023.3 97.96
    3218604821774016841.8174.78
    6432770839763626468.8
    12858836874190445675.8
    2561098488141378884076.2
    总资源118224023644802142 76.8
    计算引
    擎数量
    FPGA板卡资源性能
    U50实际带宽/
    GBps
    QPS
    (CPU=1)
    LUT
    数量
    寄存器
    数量
    BRAM
    数量
    4330523725280 6.4 26.68
    8671007038496 12.6 52.46
    16112352123540120 23.4 98.32
    32186060217756168 42.0174.87
    64327708397644264 69.2289.12
    128588372741916456120.2512.92
    总资源87187517437501 344316
    计算引
    擎数量
    FPGA板卡资源性能
    U280实际带宽/
    GBps
    QPS
    (CPU=1)
    LUT
    数量
    寄存器
    数量
    BRAM
    数量
    43305237 25280 6.4 26.64
    8670847035696 12.6 52.45
    16112288123504120 23.2 96.56
    32186032217728168 42.0 174.80
    64327660397992264 76.1 316.72
    128588328741872456152.4 634.28
    25610984881413788840302.31258.12
    总资源130368026073602016460
    下载: 导出CSV
  • [1]

    Hennessy J, Patterson D. A new golden age for computer architecture[J]. Communications of the ACM, 2019, 62(2): 48−60 doi: 10.1145/3282307

    [2]

    Papaphilippou P, Luk W. Accelerating database systems using FPGAs: A survey [C]//Proc of the 28th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2018: 125−130

    [3]

    Breß S, Heimel M, Siegmund N, et al. GPU-accelerated database systems: Survey and open challenges[G]// LNCS 8920: Proc of the 17th East European Conf on Advances in Databases and Information Systems. Berlin: Springer, 2014: 1−35

    [4] 吴林阳,罗蓉,郭雪婷,等. CPU和DRAM加速任务划分方法:大数据处理中Hash Joins的加速实例[J]. 计算机研究与发展,2018,55(2):289−304 doi: 10.7544/issn1000-1239.2018.20170842

    Wu Linyang, Luo Rong, Guo Xueting, et al. Partitioning acceleration between CPU and DRAM: A case study on accelerating Hash Joins in the big data era[J]. Journal of Computer Research and Development, 2018, 55(2): 289−304 (in Chinese) doi: 10.7544/issn1000-1239.2018.20170842

    [5]

    Daga M, Nutter M. Exploiting coarse-grained parallelism in B+ tree searches on an APU[C]//Proc of the Workshop of the Performance Computing, Networking Storage and Analysis (SC Companion). Los Alamitos, CA: IEEE Computer Society, 2012: 240−247

    [6]

    Fix J, Wilkes A, Skadron K. Accelerating braided B+ tree searches on a GPU with CUDA [C/OL]// Proc of the 2nd Workshop on Applications for Multi and Many Core Processors: Analysis, Implementation, and Performance (in Conjunction with 38th Annual Int Symp on Computer Architecture). 2011[2021-08-27].https://hgpu.org/?p=6508

    [7]

    Yan Zhaofeng, Lin Yuzhen, Lu Peng, et al. Harmonia: A high throughput B+tree for GPUs [C]// Proc of the 24th Symp on Principles and Practice of Parallel Programming. New York: ACM, 2019: 133−144

    [8]

    Zhang Werihua, Yan Zhaofeng, Lin Yuzhe, et al. A high throughput B+tree for SIMD architectures[J]. IEEE Transactions on Parallel and Distributed Systems, 2020, 31(3): 707−720 doi: 10.1109/TPDS.2019.2942918

    [9]

    Shahvarani A, Jacobsen H A. A hybrid B+tree as solution for in-memory indexing on CPU-GPU heterogeneous computing platforms [C]//Proc of the Int Conf on Management of Data. New York: ACM, 2016: 1523–1538

    [10]

    Heinrich D, Werner S, Stelzner M, et al. Hybrid FPGA approach for a B+ tree in a semantic web database system [C/OL]// Proc of the 10th Int Symp on Reconfigurable Communication-centric Systems-on-Chip. Piscataway, NJ: IEEE, 2015[2022-06-12].https://ieeexplore.ieee.org/document/7238093

    [11]

    Heinrich D, Werner S, Blochzite Z, et al. Search & update optimization of a B+ tree in a hardware aided semantic web database system [C]// Proc of the 7th Int Conf on Emerging Databases. Singapore: Springer, 2018: 172−182

    [12]

    Kaczmarski K. B+-tree optimized for GPGPU [G] // LNCS 7566: Proc of the on the Move to Meaningful Internet Systems: OTM Conf. Berlin: Springer, 2012: 843−854

    [13]

    Cho J, Choi K. An FPGA implementation of high-throughput key-value store using Bloom filter [C/OL] //Proc of the Int Symp on VLSI Design, Automation and Test. Piscataway, NJ: IEEE, 2014[2021-10-08].https://ieeexplore.ieee.org/document/6834868

    [14]

    Transaction Processing Performance Council (TPC). TPC-C benchmark [CP/OL]. 2013 [2021-09-12]. http://www.tpc.org/tpcc

  • 期刊类型引用(3)

    1. 田雨哲. 基于人工智能的高校图书馆智能咨询系统设计. 电脑编程技巧与维护. 2024(01): 136-138 . 百度学术
    2. 汤静,艾莉,毕佳明,刘莹,苏金凤. 基于区块链的无线通信数据安全传输方法. 信息记录材料. 2024(02): 205-207 . 百度学术
    3. 祝荣华. 基于大数据技术的传感设备数据传输路径优化方法. 无线互联科技. 2024(24): 72-75 . 百度学术

    其他类型引用(0)

图(17)  /  表(4)
计量
  • 文章访问数:  232
  • HTML全文浏览量:  46
  • PDF下载量:  119
  • 被引次数: 3
出版历程
  • 收稿日期:  2021-10-26
  • 修回日期:  2022-08-23
  • 网络出版日期:  2023-04-13
  • 刊出日期:  2023-06-30

目录

/

返回文章
返回