CN111553460A - 信息处理设备、运算处理装置和控制信息处理设备的方法 - Google Patents

信息处理设备、运算处理装置和控制信息处理设备的方法 Download PDF

Info

Publication number
CN111553460A
CN111553460A CN202010080583.9A CN202010080583A CN111553460A CN 111553460 A CN111553460 A CN 111553460A CN 202010080583 A CN202010080583 A CN 202010080583A CN 111553460 A CN111553460 A CN 111553460A
Authority
CN
China
Prior art keywords
data
feature data
processing
sensor
post
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.)
Granted
Application number
CN202010080583.9A
Other languages
English (en)
Other versions
CN111553460B (zh
Inventor
高田辽
日下田雅纪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN111553460A publication Critical patent/CN111553460A/zh
Application granted granted Critical
Publication of CN111553460B publication Critical patent/CN111553460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/253Fusion techniques of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Molecular Biology (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Optimization (AREA)
  • Human Computer Interaction (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Mathematical Analysis (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及信息处理设备、运算处理装置和控制信息处理设备的方法。一种信息处理设备,包括:第一预处理运算装置;以及第一后处理运算装置,其连接至第一预处理运算装置,其中,第一预处理运算装置包括:第一转换单元,其被配置成从第一传感器接收模拟数据并将模拟数据转换成数字数据;第一预处理运算单元,其被配置成基于对数字数据的特征提取处理的执行结果输出特征数据;以及第一输出单元,其被配置成输出特征数据,以及第一后处理运算装置包括:第一输入单元,其被配置成输入特征数据;第一存储单元,其被配置成存储特征数据;以及第一后处理运算单元,其被配置成基于对特征数据的识别处理的执行结果使第一存储单元存储识别结果数据。

Description

信息处理设备、运算处理装置和控制信息处理设备的方法
技术领域
本文讨论的实施方式涉及信息处理设备、运算处理装置和控制信息处理设备的方法。
背景技术
在诸如深层神经网络(以下也称为DNN)的神经网络中,每层中包括的多个神经元中的每一个神经元都连接至其他层中包括的多个神经元,并且每个神经元执行乘积-和运算等。因此,计算量变得巨大。因此,为了减少计算量,移除神经网络中包括的一些神经元,或者减小参数矩阵的维度(例如,参见专利文献1和专利文献2)。可替选地,为了减少计算量,在用于检测特征的层的神经元的输出值等于或小于预定阈值的情况下,该输出值不被存储在存储器中,并且在下一层操作中使用0代替未存储在存储器中的输出值(例如,参见专利文献3)。此外,通过由具有不同存储容量的处理装置分别执行参数量小于输入数据量的处理和参数量大于输入数据量的处理来提高处理效率(例如,参见专利文献4)。
日本公开特许专利公报第2018-129033号、日本公开特许专利公报第2018-109947号、日本公开特许专利公报第2005-346472号以及日本公开特许专利公报第2017-191458号被公开为相关技术。
例如,在用于分别提取由多种类型的传感器测量的数据的特征并基于所提取的特征获得识别结果的多模态DNN推理系统中,具有优化架构的运算处理装置(半导体芯片)被设计且实现在该系统中。同时,在基于由与所述多种类型的传感器不同的另一种类型的传感器测量的数据执行推理处理的情况下,使用具有针对预定的多模态DNN推理系统优化的架构的运算处理装置,由于运算处理装置的架构未针对另一种类型的传感器进行优化,因此处理性能可能劣化。为了抑制处理性能的降低,需要使用具有针对另一种类型的传感器优化的架构的运算处理装置。在这种情况下,系统成本增加并且向用户提供多模态DNN推理系统的时间增加。
在一方面,实施方式的目的是抑制神经网络的推理处理的处理性能的降低,而不管要使用的传感器的类型如何。
发明内容
根据实施方式的一方面,一种信息处理设备包括:第一预处理运算装置,其被配置成对来自第一传感器的模拟数据执行预处理;以及第一后处理运算装置,其连接至第一预处理运算装置,第一后处理运算装置被配置成对由第一预处理运算装置输出的第一预处理数据执行后处理,其中,第一预处理运算装置包括:第一转换单元,其被配置成从第一传感器接收模拟数据并将模拟数据转换成数字数据;第一预处理运算单元,其被配置成基于对数字数据的特征提取处理的执行结果输出特征数据;以及第一输出单元,其被配置成输出特征数据,以及第一后处理运算装置包括:第一输入单元,其被配置成输入特征数据;第一存储单元,其被配置成存储特征数据;以及第一后处理运算单元,其被配置成基于对特征数据的识别处理的执行结果使第一存储单元存储识别结果数据。
在一方面,该实施方式能够抑制神经网络的推理处理的处理性能的降低,而不管要使用的传感器的类型如何。
附图说明
图1是示出根据实施方式的信息处理设备的示例的图;
图2是示出根据另一实施方式的信息处理设备的示例的图;
图3是示出由图2中的信息处理设备实现的多模态深度神经网络(DNN)推理系统的示例的图;
图4是示出图2中的传感器SoC(片上系统)20A的示例的图;
图5是示出图2中的传感器SoC 20B的示例的图;
图6是示出图2中的传感器SoC 20C的示例的图;
图7A是示出在图2中的信息处理设备通过多模态DNN执行推理处理的情况下的操作流的示例的图;
图7B和图7C是示出图7A的延续的图;
图8是示出另一信息处理设备的示例的图;
图9是示出在图8中的信息处理设备110通过多模态DNN执行推理处理的情况下的操作流的示例的图;
图10是示出根据另一实施方式的信息处理设备的示例的图;
图11是示出图10中的类型转换单元的示例的图;
图12是示出由图11中的类型转换单元进行的数据类型转换规范的示例的图;
图13A和图13B是示出在图10中的信息处理设备通过多模态DNN执行推理处理的情况下的操作流的示例的图;
图14是示出根据另一实施方式的信息处理设备的示例的图;
图15A是示出在图14的信息处理设备通过多模态DNN执行推理处理的情况下的操作流的示例的图;
图15B是示出图15A的延续的图;
图16是示出根据另一实施方式的信息处理设备的示例的图;
图17是示出了在图16中的传感器SoC提取特征数据的每个操作周期内输出的特征数据的条数的示例的图;
图18是示出图16中的压缩单元的示例的图;
图19是示出图18中的数据排序电路的示例的图;
图20是示出图19中的每个比较电路的操作的示例的图;
图21是示出图18中的偏移排序电路的示例的图;
图22是示出图21中的每个比较电路的操作的示例的图;
图23是示出由图18中的压缩单元进行的压缩操作的示例的图;
图24是示出由图18中的压缩单元进行的压缩操作的操作流的示例的图;
图25是示出图16中的稀疏矩阵运算单元的示例的图;
图26是示出与图16中的边缘SoC连接的存储器存储的权重矩阵的示例的图;
图27是示出由图25中的稀疏矩阵运算单元进行的解码操作的示例的图;
图28是示出由图25中的稀疏矩阵运算单元进行的解码操作的操作流的示例的图;
图29是示出由图16中的信息处理设备对特征数据进行压缩和解码的概要的图;
图30是示出根据另一实施方式的信息处理设备的示例的图;
图31是示出在图30中的传感器SoC提取特征数据的每个操作周期内输出的特征数据的大小的示例的图;
图32是示出图30中的压缩单元的示例的图;
图33是示出其中压缩率被固定为25%的压缩单元的示例的图;
图34是示出根据另一实施方式的信息处理设备的示例的图;
图35是示出图34中的压缩单元的示例的图;
图36是示出图35中的数据排序电路的示例的图;
图37是示出图35中的偏移排序电路的示例的图;
图38是示出由图35中的压缩单元进行的压缩操作的示例的图;
图39是示出由图35中的压缩单元进行的压缩操作的操作流的示例的图;
图40A是示出图34中的稀疏矩阵运算单元的示例的图;
图40B是示出由图40A中的稀疏矩阵运算单元进行的解码操作的操作流的示例的图;
图41是示出根据另一实施方式的信息处理设备的示例的图;
图42A是示出在图41中的信息处理设备通过多模态DNN执行推理处理的情况下的操作流的示例的图;
图42B和图42C是示出图42A的延续的图;
图43是示出根据另一实施方式的信息处理设备的示例的图;以及
图44是示出根据另一实施方式的信息处理设备的示例的图。
具体实施方式
在下文中,将参照附图描述实施方式。
图1示出了根据实施方式的信息处理设备的示例。图1所示的信息处理设备100包括多个运算装置2(2A、2B和2C)和运算装置6,并且执行多模态深度神经网络(DNN)推理处理。运算装置2A、2B或2C是第一预处理运算装置的示例,并且运算装置6是第一后处理运算装置和运算处理装置的示例。
运算装置2A包括转换单元3A、运算单元4A和输出单元5A。运算装置2B包括转换单元3B、运算单元4B和输出单元5B。运算装置2C包括转换单元3C、运算单元4C和输出单元5C。转换单元3(3A、3B或3C)是第一转换单元的示例,并且运算单元4(4A、4B或4C)是第一预处理运算单元的示例。输出单元5(5A、5B或5C)是第一输出单元的示例。例如,运算装置2A、2B和2C中的每一个具有半导体芯片或半导体封装的形式。
转换单元3A将从连接至运算装置2A的传感器1A输入的数据转换为可由运算单元4A处理的数据。运算单元4A执行提取由转换单元3A转换的数据的特征的处理,并且将特征数据输出作为执行结果。运算单元4A具有优化的架构,以提取由传感器1A测量的数据的特征。输出单元5A将从运算单元4A输出的特征数据输出至运算装置6。
转换单元3B将从连接至运算装置2B的传感器1B输入的数据转换为可由运算单元4B处理的数据。运算单元4B执行提取由转换单元3B转换的数据的特征的处理,并且将特征数据输出作为执行结果。运算单元4B具有优化的架构,以提取由传感器1B测量的数据的特征。输出单元5B将从运算单元4B输出的特征数据输出至运算装置6。
转换单元3C将从连接至运算装置2C的传感器1C输入的数据转换为可由运算单元4C处理的数据。运算单元4C执行提取由转换单元3C转换的数据的特征的处理,并且将特征数据输出作为执行结果。运算单元4C具有优化的架构,以提取由传感器1C测量的数据的特征。输出单元5C将从运算单元4C输出的特征数据输出至运算装置6。
下文中,在没有区别地示出传感器1A、1B和1C的情况下,传感器1A、1B和1C也被称为传感器1。传感器1A、1B或1C是第一传感器的示例。例如,传感器1A是图像传感器,并且运算装置2A具有提取从图像传感器输出的图像数据的特征的功能。例如,传感器1B是声音传感器,并且运算装置2B具有提取从声音传感器输出的声音数据的特征的功能。例如,传感器1C是运动传感器,并且运算装置2C具有提取从运动传感器输出的运动数据的特征的功能。
如上所述,传感器1A、1B和1C的类型彼此不同,并且从传感器1A、1B和1C输出的数据格式和数据量彼此不同。此外,连接至运算装置2A的传感器1A的类型(例如,图像传感器)是预先确定的。连接至运算装置2B的传感器1B的类型(例如,声音传感器)是预先确定的。连接至运算装置2C的传感器1C的类型(例如,运动传感器)是预先确定的。例如,针对每种类型的传感器1确定运算装置2。
例如,在通过神经网络执行推理处理的情况下,每个转换单元3以预定周期顺序地转换从每个传感器1输入的数据。每个运算单元4顺序地执行提取从每个转换单元3输入的数据的特征的特征提取处理以生成特征数据。然后,每个输出单元5将从每个转换单元3接收的特征数据输出至运算装置6的输入单元7。
例如,能够通过使用从图像传感器和运动传感器获取的数据通过神经网络来实现估计移动终端例如智能电话的自身位置的处理。此外,能够通过神经网络根据界标的外观和加速度信息来实现估计移动终端的当前位置(绝对坐标)或移动终端所指向的方向(姿态)的处理。此外,能够通过使用从图像传感器和声音传感器获取的数据,除了通过声音数据进行声音识别之外,还可以通过执行通过根据移动图像检测到的讲话者的唇部的运动来执行声音识别来实现高准确度的声音识别。
运算装置6包括经由总线6a彼此连接的输入单元7、运算单元8和存储单元9。输入单元7和运算单元8可以包括在一个半导体芯片或一个半导体封装中,或者可以布置在系统板例如印刷板上。存储单元9可以作为存储模块布置在系统板上。输入单元7是第一输入单元的示例。运算单元8是第一后处理运算单元的示例。存储单元9是第一存储单元的示例。
每当从运算装置2A、2B和2C输入特征数据时,输入单元7使存储单元9存储所输入的特征数据。在图1所示的示例中,输入单元7包括用于分别从运算装置2A、2B和2C输入特征数据的多个输入端口。来自运算装置2A、2B和2C的特征数据可以经由选择器(未示出)输入。
运算单元8使用存储在存储单元9中的多种类型的特征数据基于由每个传感器测量的数据执行推理处理,并且使存储单元9存储作为推理处理的执行结果的识别结果数据。此后,存储在存储单元9中的识别结果数据被用于通过由处理器例如在运算装置6中包括的中央处理单元(CPU)执行的应用程序来执行各种类型的处理和各种服务。例如,各种类型的处理是用于控制连接至信息处理设备100的控制装置例如致动器的处理。执行应用程序的CPU可以包括在运算单元8中。
在图1所示的信息处理设备100中,可以将任意数目的运算装置2连接至运算装置6,该数目等于或小于最大可连接数目。为了将任意运算装置2连接至输入单元7,每个运算装置2和运算装置6通过公共接口规范连接。利用该公共接口规范,信息处理设备100可以通过将各种传感器1经由运算装置2连接至公共运算装置6来执行推理处理。例如,信息处理设备100可以使用一种类型的运算装置6来执行各种类型的推理处理。
注意,连接至输入单元7的运算装置2A、2B和2C的顺序和数目不限于图1所示的示例。例如,可以只有对应于传感器1A的运算装置2A连接至运算装置6。另外,对应于传感器1A和1C的运算装置2A和2C可以连接至运算装置6。此外,对应于四种或更多种类型的传感器1的四个运算装置2可以连接至运算装置6。在这种情况下,运算装置6的输入单元7具有四个或更多个输入端口。例如,信息处理设备100可以使用从除了传感器1A、1B和1C之外的传感器输出的数据来提取特征数据,并且执行特征数据识别处理。在这种情况下,例如,可以使用压力传感器、温度传感器、光学传感器等来代替作为运动传感器的传感器1C,并且将提取从要使用的传感器输出的数据的特征数据的运算装置连接至算术装置6而不是运算装置2C。
信息处理设备100可以通过将包括具有针对每种类型的传感器1优化的架构的运算单元4的运算装置2连接至公共运算装置6来通过神经网络执行推理处理。因此,可以在不降低处理性能的情况下执行通过每个运算装置2进行的特征数据的提取。注意,使用特征数据进行的识别处理的性能(处理时间)根据特征数据的大小而变化,而不取决于传感器1的类型。因此,算术装置6可以被专门设计用于使用特征数据进行的识别处理,并且即使在运算装置6被多种类型的运算装置2共享的情况下,也可以优化架构。
如上所述,在图1所示的实施方式中,从由多种类型的传感器1中的每一个获取的数据提取特征数据的处理以及使用多种类型的特征数据识别由传感器1检测到的信息的处理由彼此不同的运算装置2和6执行。因此,可以由与任意类型的传感器1相对应的运算装置2提取特征数据,并且可以由运算装置6使用所提取的特征数据来执行识别处理。因此,不管要使用的传感器1的类型如何,都可以将多个运算装置2连接至运算装置6,并且可以执行通过神经网络进行的推理处理,并且即使在自由组合传感器1的情况下,也可以抑制推理处理的效率的降低。例如,信息处理设备100可以通过自由组合传感器1通过多模态DNN执行推理处理。此外,可以在不设计与要组合的传感器1相对应的新的运算装置2的情况下执行推理处理。
通过利用公共接口规范连接运算装置2和运算装置6,可以将运算装置2连接至运算装置6的输入单元7的任意输入端口。因为每个运算装置2被设计成对应于要连接的传感器1,所以运算装置2可以专门用于每个传感器1的特征数据提取处理。因此,可以优化每个运算装置2的架构,并且可以使芯片尺寸最小化。由于运算装置6被专门设计用于使用特征数据进行的识别处理,因此可以优化架构,并且可以使包括运算单元8的半导体芯片的芯片尺寸最小化。因此,例如,可以向用户提供具有降低的系统成本的多模态DNN推理系统。
图2示出了根据另一实施方式的信息处理设备的示例。省略与图1中的元件类似的元件的详细描述。图2所示的信息处理设备101包括图像传感器10A、麦克风10B、陀螺仪传感器10C、多个传感器SoC(片上系统)20(20A、20B和20C)、边缘SoC 60、选择器77和存储器90。边缘SoC60、选择器77和存储器90安装在信息处理设备101的主板BRD上。例如,每个传感器SoC 20可以安装在外围部件互连(PCI)卡上并经由连接器(未示出)连接至主板BRD的PCI总线。信息处理设备101与图1中示出的信息处理设备100类似地执行多模态DNN推理处理。
传感器SoC 20A是第一预处理运算装置的示例。传感器SoC 20B是第一预处理运算装置或第二预处理运算装置的示例。传感器SoC 20C是第一预处理运算装置或第三预处理运算装置的示例。边缘SoC 60是第一后处理运算装置和运算处理装置的示例。
传感器SoC 20A包括经由总线21A彼此连接的模数(A/D)转换器30A、运算核40A、输入/输出(I/O)控制器50A和存储器55A。A/D转换器30A从图像传感器10A接收模拟图像数据,并将模拟图像数据转换为数字图像数据。运算核40A针对数字图像数据执行特征提取处理,并且使存储器55A存储所提取的图像特征数据。例如,存储器55A是静态随机存取存储器(SRAM)。
I/O控制器50A读取存储在存储器55A中的图像特征数据,并将图像特征数据输出至选择器77。I/O控制器50A可以具有从边缘SoC 60接收信息的功能。图像传感器10A是第一传感器的示例。A/D转换器30A是第一转换单元的示例。运算核40A是第一预处理运算单元的示例。I/O控制器50A是第一输出单元的示例。
传感器SoC 20B包括经由总线21B彼此连接的A/D转换器30B、运算核40B、I/O控制器50B和存储器55B。A/D转换器30B从麦克风10B接收模拟声音数据,并将模拟声音数据转换为数字声音数据。运算核40B针对数字声音数据执行特征提取处理,并且使存储器55B存储所提取的声音特征数据。例如,存储器55B是SRAM。
I/O控制器50B读取存储在存储器55B中的声音特征数据,并将声音特征数据输出至选择器77。I/O控制器50B可以具有从边缘SoC 60接收信息的功能。麦克风10B是第一传感器或声音传感器的示例。A/D转换器30B是第一转换单元或第二转换单元的示例。运算核40B是第一预处理运算单元或第二预处理运算单元的示例。I/O控制器50B是第一输出单元的示例。
传感器SoC 20C包括经由总线21C彼此连接的A/D转换器30C、运算核40C、I/O控制器50C和存储器55C。A/D转换器30C从陀螺仪传感器10C接收模拟运动数据,并将模拟运动数据转换为数字运动数据。运算核40C针对数字运动数据执行特征提取处理,并且使存储器55C存储所提取的运动特征数据。例如,存储器55C是SRAM。
I/O控制器50C读取存储在存储器55C中的运动特征数据,并将运动特征数据输出至选择器77。I/O控制器50C可以具有从边缘SoC 60接收信息的功能。陀螺仪传感器10C是第一传感器或运动传感器的示例。A/D转换器30C是第一转换单元或第三转换单元的示例。运算核40C是第一预处理运算单元或第三预处理运算单元的示例。I/O控制器50C是第一输出单元的示例。
选择器77具有分别连接至I/O控制器50A、50B和50C的输出的三个输入端口和连接至边缘SoC 60的输出端口。例如,选择器77具有保存每个输入端口的特征数据的队列,并向目的地(例如,由目的地指示的存储器90的区域)传送队列中保存的特征数据。从而,将从I/O控制器50A、50B和50C输出的特征数据顺序地传送至边缘SoC 60。
注意,选择器77中包括的输入端口的数目可以是四个或更多个。例如,在选择器77的输入端口的数目不充足的情况下,可以用具有更多数目的端口的另一选择器来代替选择器77。因此,可以在不重新设计边缘SoC 60的情况下增加可连接至边缘SoC 60的传感器SoC20的数目,并且可以执行不同类型的多模态DNN推理处理。
边缘SoC 60包括经由总线61彼此连接的I/O控制器70、运算核80和通信接口85。存储器90也连接至该总线。例如,存储器90是主存储装置,并且可以是包括同步动态随机存取存储器(SDRAM)的存储器模块,或者可以包括多个堆叠的存储器芯片。存储器90可以是除SDRAM以外的存储器。I/O控制器70是第一输入单元的示例。运算核80是第一后处理运算单元的示例。存储器90是第一存储单元的示例。
I/O控制器70使存储器90存储从选择器77传送的特征数据。I/O控制器70可以具有将数据等经由选择器77输出至边缘SoC 60的外部的功能。运算核80读取存储在存储器90中的图像特征数据、声音特征数据和运动特征数据,并对上述特征数据执行识别处理。运算核80使存储器90存储通过识别处理获得的识别结果数据。识别结果数据是如下数据的示例:作为图像数据的识别结果的图像识别结果数据、作为声音数据的识别结果的声音识别结果数据或者作为运动数据的识别结果的运动识别结果数据。例如,通信接口85可以具有控制与安装在主板BRD上的另外的处理器例如CPU的通信的功能,并且具有控制与连接至主板BRD的另外的装置的通信的功能。
I/O控制器50(50A、50B和50C)、选择器77和I/O控制器70具有彼此通用的接口规范,并且I/O控制器50A、50B和50C可以连接至选择器77的任何输入端口。此外,包括具有公共接口规范的另一I/O控制器50的传感器SoC可以连接至选择器77的输入端口。例如,在图2所示的信息处理设备101中,可以根据用于识别处理的特征数据自由地切换经由传感器SoC20连接至边缘SoC 60的传感器10的类型和数目。此外,例如,可以根据用于识别处理的特征数据的大小自由地切换边缘SoC 60(例如,主板BRD)。由于可以组合任何类型和数目的传感器SoC 20和任意边缘SoC 60,因此能够通过信息处理设备101实现执行各种推理的多模态DNN推理系统。
例如,公共接口规范可以是PCIe(注册商标)总线。此外,由每个传感器SoC 20提取的特征数据可以通过直接存储器存取(DMA)经由边缘SoC 60传送至存储器90。通过使用与每种类型的传感器10相对应的传感器SoC 20从由传感器10获取的数据提取特征数据,可以设计具有针对提取处理优化的架构的传感器SoC 20。在图4至图6中示出具有优化的架构的传感器SoC 20的示例。
图3示出了由图2中的信息处理设备101实现的多模态DNN推理系统的示例。图3中所示的多模态DNN推理系统包括执行特征数据提取处理的三个传感器SoC 20A、20B和20C以及使用特征数据执行识别处理的边缘SoC 60。在由每个传感器10获取作为测量值的数据之后,每个传感器SoC 20在特征数据提取处理之前执行处理S1、S2和S3。
在测量值是图像数据的情况下,在处理S1中,传感器SoC 20A将来自图像传感器10A的模拟图像数据转换成例如JPEG格式的数字数据。此外,传感器SoC 20A将JPEG格式的数字数据转换成三维阵列(竖直方向上256个像素,水平方向上256个像素,以及RGB等),并且根据后续处理进一步转换图像数据的数据结构。处理S1可以由运算核40A执行,可以由专用硬件执行,或者可以由软件执行。在处理S1之后,传感器SoC 20A使用运算核40A通过例如用于利用卷积层执行卷积处理以及利用池化层执行池化处理的处理C来提取图像数据的特征数据。
在测量值是声音数据的情况下,在处理S2中,传感器SoC 20B对从麦克风10B获取的模拟声音数据执行离散傅里叶变换以生成数字声音数据。处理S2可以由A/D转换器30B执行,可以由运算核40B执行,可以由专用硬件执行,或者可以由软件执行。在处理S2之后,传感器SoC 20B使用运算核40B通过例如利用递归神经网络(RNN)中的长短期记忆(LSTM)的处理L来提取声音数据的特征数据。
在测量值是运动数据的情况下,在处理S3中,传感器SoC 20C将从陀螺仪传感器10C获取的模拟运动数据转换成数字运动数据。在处理S3之后,传感器SoC 20C使用运算核40C通过用于利用全连接层(密集层)计算矩阵矢量积的处理F1来提取特征数据。
注意,能够在多模态DNN推理系统中使用的传感器不限于传感器10A、10B和10C。例如,可以使用大气压传感器、压力传感器、照度传感器等。此外,由传感器SoC 20执行的运算处理不限于利用卷积层进行的处理、利用LSTM进行的处理以及利用全连接层进行的处理。
边缘SoC 60基于所提取的特征数据执行识别处理F2以及基于识别结果执行处理A(应用)。例如,在识别处理F2中,执行利用全连接层的矩阵矢量积的计算(表达式1)和利用softmax层的softmax函数运算(表达式2)。由双线示出的R表示一组实数,并且R右上方的数字表示元素数目。
在表达式(1)中,x1、x2和x3分别表示要从传感器SoC 20A、20B和20C传送到边缘SoC 60的特征数据,x1表示具有2048个元素的矢量,并且x2和x3表示具有1024个元素的矢量。特征数据的总数x是x1、x2和x3的总数(=4096)。在表达式(1)中,W表示通过预先执行的学习处理获得的所学习的权重矩阵,并且是具有1000行和4096列的矩阵。然后,通过矩阵乘积(Wx)生成输出o,输出o是具有1000个元素的矢量。表达式(2)中示出的softmax函数是由表达式(3)定义的非线性函数。表达式(2)中的y是具有1000个元素的矢量,并且对应于多模态DNN的最终识别结果。
[数学式1]
Figure BDA0002380165230000121
[数学式2]
Figure BDA0002380165230000122
[数学式3]
Figure BDA0002380165230000123
注意,图3中示出的多模态DNN推理系统也可以由图1中示出的信息处理设备100实现。在这种情况下,用图1中的运算装置2A、2B和2C代替图2中的传感器SoC 20A、20B和20C,并且用图1中的运算装置6代替图2中的边缘SoC 60。
例如,图3中示出的处理C、处理L以及处理F1和F2使用32位(单精度)浮点数数据FP32(在下文中称为FP32)来执行。注意,可以使用除FP32以外的数据类型来执行处理C、处理L以及处理F1和F2。
图4示出了图2中的传感器SoC 20A的示例。传感器SoC 20A具有用于利用卷积层的卷积处理的优化架构,并且运算核40A包括以二维方式排列的多个矢量运算单元(矢量运算和逻辑单元(ALU))和高于存储器55A的高速存储器。矢量运算单元能够执行用于并行地对多个数据执行相同操作的矢量操作并且适于卷积处理。二维排列的矢量运算单元适于执行卷积处理,因为能够将用于计算的数据从某个矢量运算单元转发至相邻的另一矢量运算单元。
例如,高速存储器是SRAM。然而,可以使用铁电存储器、磁性随机存取存储器(MRAM)或电阻式随机存取存储器(ReRAM)。高速存储器的存储容量可以是任意大小,只要存储器可以容纳与要进行卷积的核(过滤器)中的用于一个输出通道的核相对应的运算目标数据(竖直大小×水平大小×输入通道数目)即可。注意,运算核40A不限于图4中所示的配置。此外,传感器SoC 20A可以包括多个运算核40A,并且运算核40A中包括的矢量运算单元的数目不限于九个。
图5示出了图2中的传感器SoC 20B的示例。传感器SoC 20B具有专用于利用LSTM的处理的优化架构,并且包括连接至总线的多个运算核40B。由于利用LSTM进行的主要运算内容是矩阵运算和非线性函数运算,所以每个运算核40B包括融合的乘-加(FMA)、特殊功能单元(SPF)和高速存储器。FMA是具有累加器的乘积-和运算单元,并且对于加速矩阵乘积有效。SPF包括用于在DNN中频繁使用的非线性函数例如S型函数和双曲正切(tanh)函数的运算单元。此外,高速存储器是SRAM、铁电存储器、MRAM、ReRAM等,并且存储要用于利用LSTM进行计算的数据。注意,传感器SoC 20B中包括的运算核40B的数目不限于四个。
图6示出了图2中的传感器SoC 20C的示例。传感器SoC 20C具有用于使用全连接层的矩阵矢量乘积运算的优化架构,并且运算核40C包括多个FMA、多个SPF和权重存储器。权重存储器预先存储要用于利用全连接层的计算的所学习的权重数据。权重存储器的容量理想地大于图4和图5中示出的高速存储器的容量。权重存储器是SRAM、铁电存储器、MRAM、ReRAM等。运算核40C可以采用将运算目标数据从权重存储器直接提供给FMA而无需使用寄存器文件的配置。利用该配置,可以从权重存储器顺序地读取非常长的数据,并且可以将读取的数据提供给每个FMA,使得可以有效地执行利用全连接层的计算。注意,FMA的数目和SPF的数目不限于图6中示出的示例。
如图4至图6所示出的,传感器SoC 20的最优架构取决于由DNN进行的运算处理的内容而不同。例如,传感器SoC 20的最优架构取决于获取数据的传感器10的类型而不同。例如,通过针对每种类型的传感器10或针对由DNN进行的每种类型的运算处理准备具有优化架构的SoC 20,与针对多种类型的传感器10使用共同传感器SoC的情况相比,可以提高DNN的处理性能。
图7A至图7C示出了在图2中的信息处理设备101通过多模态DNN执行推理处理的情况下的操作流的示例。例如,图7A至图7C示出了控制信息处理设备101的方法的示例。例如,基于信息处理设备101已经从用户接收到多模态DNN推理处理的服务请求,重复执行图7A至图7C中示出的操作,直到完成推理处理。图7A至图7C中示出的从开始到结束的处理时段被称为操作周期。在下文中,传感器SoC 20A、20B和20C也分别被称为传感器SoC 1、SoC 2和SoC 3,并且边缘SoC 60也被称为边缘SoC。此外,在无区别地描述传感器SoC 1、SoC 2和SoC3的情况下,传感器SoC 1、SoC 2和SoC 3也被称为传感器SoC。这也类似地适用于下面要描述的实施方式。传感器SoC 1、SoC 2和SoC 3彼此并行地操作,并且边缘SoC基于从所有传感器SoC接收到完成通知来执行识别处理。
在用于执行处理S1的步骤S101中,传感器SoC 1将测量请求发送至图像传感器10A,并且接收由图像传感器10A捕获(测量)的模拟图像数据(测量值)。传感器SoC 1将接收到的模拟数据转换成数字图像数据,并且然后将数字图像数据写入存储器55A中。接下来,在用于执行处理C的步骤S102中,传感器SoC 1使用存储在存储器55A中的图像数据执行利用卷积层的特征提取处理作为DNN运算处理,并将获得的特征数据写入存储器55A中。之后,传感器SoC 1将完成通知发送至边缘SoC。
在用于执行处理S2的步骤S201中,传感器SoC 2将测量请求发送至麦克风10B,并且接收由麦克风10B记录(测量)的模拟声音数据(测量值)。传感器SoC 2将接收到的模拟声音数据转换成数字音频数据,并且然后将数字声音数据写入存储器55B中。接下来,在用于执行处理L的步骤S202中,传感器SoC 2使用存储在存储器55B中的声音数据执行利用LSTM的特征提取处理作为DNN运算处理,并将获得的特征数据写入存储器55B中。之后,传感器SoC 2将完成通知发送至边缘SoC。
在用于执行处理S3的步骤S301中,传感器SoC 3将测量请求发送至陀螺仪传感器10C,并且接收由陀螺仪传感器10C测量的模拟测量数据。传感器SoC 3将接收到的模拟测量数据转换成数字测量数据,并且然后将数字测量数据写入存储器55C中。接下来,在用于执行处理F1的步骤S302中,传感器SoC 3使用存储在存储器55C中的数字测量数据执行利用全连接层的特征提取处理作为DNN运算处理,并将获得的特征数据写入存储器55C中。之后,传感器SoC 3将完成通知发送至边缘SoC。注意,各种传感器10可以一直操作,并且传感器SoC可以根据执行推理处理的操作周期的开始定时来获取由各种传感器10输出的模拟数据。
在步骤S401中,边缘SoC等待来自传感器SoC中的任何一个的完成通知。在已经从传感器SoC中的任何一个接收到完成通知的情况下,边缘SoC将操作转移至步骤S402。边缘SoC具有针对执行推理处理的每个操作周期存储来自传感器SoC的完成通知的功能。在步骤S402中,在边缘SoC在操作周期期间首次接收到来自传感器SoC 1的完成通知的情况下,边缘SoC向传感器SoC 1发出数据传送请求,并将操作转移至图7B和图7C中的步骤S403。在边缘SoC尚未接收到来自传感器SoC 1的完成通知的情况下,或者在边缘SoC在操作周期中已经接收到完成通知的情况下,边缘SoC将操作转移至步骤S403。在步骤S103中,在传感器SoC1已经接收到数据传送请求的情况下,传感器SoC 1将存储在存储器55A中的特征数据传送至边缘SoC。边缘SoC将从传感器SoC 1接收到的特征数据存储在存储器90中。特征数据从传感器SoC 1到存储器90的传送在传感器SoC 1经由选择器77连接至边缘SoC的状态下执行。
在图7B和图7C中的步骤S403中,在边缘SoC在操作周期期间已经接收到来自传感器SoC 2的完成通知的情况下,边缘SoC向传感器SoC 2发出数据传送请求,并将操作转移至步骤S404。在边缘SoC尚未接收到来自传感器SoC 2的完成通知的情况下,或者在边缘SoC在操作周期中已经接收到完成通知的情况下,边缘SoC将操作转移至步骤S404。在步骤S203中,在传感器SoC 2已经接收到数据传送请求的情况下,传感器SoC2将存储在存储器55B中的特征数据传送至边缘SoC。边缘SoC将从传感器SoC 2接收到的特征数据存储在存储器90中。特征数据从传感器SoC 2到存储器90的传送在传感器SoC 2经由选择器77连接至边缘SoC的状态下执行。
在步骤S404中,在边缘SoC在操作周期期间已经接收到来自传感器SoC 3的完成通知的情况下,边缘SoC向传感器SoC 3发出数据传送请求,并将操作转移至步骤S405。在边缘SoC尚未接收到来自传感器SoC 3的完成通知的情况下,或者在边缘SoC在操作周期中已经接收到完成通知的情况下,边缘SoC将操作转移至步骤S405。在步骤S303中,在传感器SoC 3已经接收到数据传送请求的情况下,传感器SoC 3将存储在存储器55C中的特征数据传送至边缘SoC。边缘SoC将从传感器SoC 3接收到的特征数据存储在存储器90中。特征数据从传感器SoC 3到存储器90的传送在传感器SoC 3经由选择器77连接至边缘SoC的状态下执行。
在步骤S405中,在已经接收到来自所有传感器SoC的完成通知的情况下,边缘SoC将操作转移至步骤S406,并且在存在边缘SoC尚未从其接收到完成通知的传感器SoC的情况下,边缘SoC将操作返回至步骤S401。例如,从步骤S401到步骤S405的处理可以通过由运算核80(图2)执行的控制程序进行的控制来执行,或者可以由边缘SoC中包括的控制器(硬件)来执行。
在步骤S406中,运算核80执行处理F2作为DNN运算处理,并且使用存储在存储器90中的特征数据执行识别处理,并获得识别结果。运算核80将获得的识别结果存储在存储器90中。
接下来,在步骤S408中,运算核80使用存储在存储器90中的识别结果作为输入来执行应用(程序)作为处理A,执行各种服务的处理,或者执行控制控制装置例如致动器的处理。各种服务的处理或控制控制装置的处理可以由边缘SoC 60外的诸如CPU的处理器经由通信接口85执行。然后,操作周期中的多模态DNN推理处理的执行结束。
图8示出了另一信息处理设备的示例。与图2中示出的信息处理设备101的元件类似的元件由相同的附图标记表示,并且省略详细描述。图8中示出的信息处理设备110包括图像传感器10A、麦克风10B、陀螺仪传感器10C、SoC 600和存储器90。信息处理设备110与图2中示出的信息处理设备101类似地执行多模态DNN推理处理。
SoC 600是用于DNN的通用芯片,并且包括用于将来自各种传感器10A、10B和10C的模拟数据转换成数字数据的多个A/D转换器612、选择器614和运算核616。选择器614将A/D转换器612的任何输出经由总线连接至存储器90,并且将从由传感器10A、10B或10C测量的模拟数据转换的数字数据存储在存储器90中。
运算核616是包括FMA、SPF、矢量运算单元(矢量ALU)和高速存储器的通用核,并且可以实现卷积层、LSTM和全连接层的功能。因此,图3中所示的所有多条处理S1、S2、S3、C、L、F1、F2和A可以由单个SoC 600执行。
同时,例如,由于安装的矢量运算单元的数目由于芯片大小的限制而受到限制,因此与图4中的传感器SoC 20A相比,SoC 600作为卷积层具有较低的运算性能。此外,由于安装的FMA和SPF的数目由于芯片大小的限制而受到限制,因此与图5中的传感器SoC 20B相比,SoC 600作为LSTM的处理层具有较低的运算性能。类似地,由于SPF和FMA的数量由于芯片大小的限制而受到限制,因此与图6中的传感器SoC 20C和边缘SoC 60相比,SoC 600作为全连接层具有较低的运算性能。
例如,虽然SoC 600可以通过各种类型的DNN执行处理,但是用于针对每个传感器数据的特征数据提取处理和识别处理的架构未被优化。因此,由信息处理设备110执行的多模态DNN推理处理的性能低于由图2中示出的信息处理设备101执行的多模态DNN推理处理的性能。在优化SoC 600的架构以提高特定推理处理的性能的情况下,关于不适于该架构的其他推理处理,处理性能降低。为了抑制处理性能的下降,需要针对每种类型的推理处理来设计SoC 600。
此外,在图8中,例如,由于图2中的三个传感器SoC和边缘SoC的功能通过一个SoC实现,所以芯片尺寸增加,作为芯片成品比率的成品率降低,并且芯片成本增加。结果是,与通过不同的半导体芯片分别针对每个传感器执行特征数据提取处理和识别处理的情况相比,信息处理设备110的成本增加。
图9示出了在图8中的信息处理设备110通过多模态DNN执行推理处理的情况下的操作流的示例。省略与图7A至图7C中的操作类似的操作的详细描述。类似于图7A至图7C,基于信息处理设备110已经从用户接收到多模态DNN推理处理的服务请求而开始图9中示出的操作。
在步骤S601中,通用SoC 600向图像传感器10A发出测量请求。接下来,在步骤S602中,SoC 600执行将从图像传感器10A接收到的图像数据转换成数字值并将该数字值写入存储器90中的处理S1。在步骤S603中,SoC 600向麦克风10B发出测量请求。接下来,在步骤S604中,SoC600执行将从麦克风10B接收的声音数据转换成数字值并将该数字值写入存储器90中的处理S2。在步骤S605中,SoC 600向陀螺仪传感器10C发出测量请求。接下来,在步骤S606中,SoC 600执行将从陀螺仪传感器10C接收的运动数据转换成数字值并将该数字值写入存储器90中的处理S3。
接下来,在步骤S607中,运算核616执行处理C、处理L和处理F1作为DNN运算处理,并且提取图像数据、声音数据和运动数据中的每一个的特征数据。与图7A中的步骤S102、S202和S302类似,处理C、处理L和处理F1的内容分别对应于卷积层、LSTM和全连接层。
接下来,在步骤S608中,运算核616使用存储在存储器90中的特征数据执行识别处理F2作为DNN运算处理,并获得识别结果。接下来,在步骤S609中,运算核616使用识别结果作为输入执行应用作为处理A,执行各种服务的处理,或者控制控制装置例如致动器。然后,多模态DNN推理处理的执行结束。
如上所述,在图2至图7C所示的实施方式中,类似于图1中示出的实施方式,通过组合任意类型的传感器10由多个传感器SoC 20提取特征数据,并且可以由边缘SoC 60使用所提取的特征数据来执行识别处理。例如,信息处理设备101可以使用分别由图像传感器10A、麦克风10B和陀螺仪传感器10C获取的数据通过多模态DNN执行推理处理。例如,在自由组合传感器10的情况下,可以抑制神经网络推理处理的效率的降低。
通过公共接口规范连接多个传感器SoC 20和边缘SoC 60,可以将传感器SoC 20连接至选择器77的任意输入端口。由于可以将每个传感器SoC 20专门设计成用于针对每个传感器10的特征数据提取处理,因此可以优化每个传感器SoC 20的架构并且可以使芯片尺寸最小化。此外,由于可以将边缘SoC 60专门设计成用于使用特征数据进行的识别处理,因此可以优化边缘SoC 60的架构,并且可以使边缘SoC 60的芯片尺寸最小化。
图10示出了根据另一实施方式的信息处理设备的示例。与图2中的元件类似的元件由相同的附图标记表示,并且省略详细描述。除了信息处理设备102包括边缘SoC 62而不是图2中示出的边缘SoC 60以外,图10中示出的信息处理设备102类似于图2中示出的信息处理设备101。信息处理设备102与图2中示出的信息处理设备101类似地执行多模态DNN推理处理。
边缘SoC 62包括运算核82而不是图2中示出的运算核80。例如,在运算核82中,针对利用归一化层的归一化处理以及利用全连接层的矩阵矢量积的计算优化架构。此外,在边缘SoC 62中,连接至I/O控制器70的输出和总线61的类型转换单元72被添加到图2中所示的边缘SoC60。将在图13A和图13B中描述运算核82的操作的示例。类型转换单元72包括类型转换电路72A、72B和72C。类型转换电路72A将16位(半精度)浮点数数据FP16(在下文中称为FP16)转换成32位(单精度)浮点数数据FP32(在下文中称为FP32)。类型转换电路72B将16位定点数数据INT16(在下文中称为INT16)转换成FP32。类型转换电路72C将FP32转换成INT16。
边缘SoC 62是第一后处理运算装置和运算处理装置的示例,并且运算核82是第一后处理运算单元的示例。类型转换电路72A是第一后处理转换单元的示例,并且类型转换电路72C是第二后处理转换单元的示例。
传感器SoC 20A的运算核40A包括用于FP16的运算单元,而不是用于FP32或FP64(64位浮点数数据)的运算单元,并且使用FP16提取特征数据。类似地,传感器SoC 20B的运算核40B包括用于FP16的运算单元而不是用于FP32或FP64的运算单元,并且使用FP16提取特征数据。
利用该配置,与包括用于FP32或FP64的运算单元的情况相比,可以使运算核40A和40B的电路规模更小并且可以使传感器SoC 20A和20B的芯片尺寸更小。此外,与使用FP32或FP64提取特征数据的情况相比,可以减少处理时间,可以减少要使用的存储区域,并且可以减少功耗。
注意,运算核40A和40B中的每一个均可以包括用于FP32或FP64的运算单元,并且可以使用单指令多数据(SIMD)指令并行地执行多个FP16计算。传感器SoC 20C的运算核40C包括用于FP32的运算单元,并且使用FP32提取特征数据。
图11示出了图10中的类型转换单元72的示例。类型转换单元72包括队列720、类型转换电路722、724、726、728、730和732、加法器734、选择器735、736、737、738和739以及反相器INV。包括表示时钟输入的三角形的矩形表示锁存器。类型转换单元72具有根据模式信号mode转换从队列720的头部顺序提取的数据data(特征数据)的数据类型并将该数据类型作为数据data_o输出的功能。
在每个信号名称之后附加的角括号中的数值和在信号线上附加的“/”之后的数值表示信号的位数。“1'b0”表示二进制表示中的1位=“0”,并且“1'b1”表示二进制表示中的1位=“1”。“16'h0000”表示十六进制表示中的16位(全零),“32'h0000_0004”表示十六进制表示中的32位(=4)。
队列720具有保存有效信号valid_i、模式信号mode_i、地址信号adrs_i和数据data_i的多个条目。有效信号valid_i表示模式信号mode_i、地址信号adrs_i和数据data_i是否有效。模式信号mode_i表示类型转换的规范,并且是第一规范信息和第二规范信息的示例。地址信号adrs_i表示具有经转换的数据类型的数据data_o的传送目的地。数据data_i表示数据类型转换之前的特征数据。在读信号处于有效状态(=“1”)的情况下,队列720更新读指针(未示出)。
图12示出了图11中的类型转换单元72针对数据data的类型转换规范的示例。模式信号mode_i=“0”表示从两条FP16到两条FP32的转换。通过转换生成的两条FP32在两个时钟周期输出。模式信号mode_i=“1”表示从两条INT16到两条FP32的转换。通过转换生成的两条FP32在两个时钟周期输出。模式信号mode_i=“2”表示FP32在不被转换的情况下输出。
模式信号mode_i=“3”表示从FP32到FP16的转换。从中输出通过转换生成的FP16的数据data_o的高16位被填充为“0”。模式信号mode_i=“4”表示从FP32到INT16的转换。从中输出通过转换生成的INT16的数据data_o的高16位被填充“0”。在下文中,类型转换模式被称为与模式信号mode_i的值相对应的模式0、模式1、模式2、模式3和模式4。例如,模式0表示从FP16到FP32的转换,而模式4表示从FP32到INT16的转换。
回到图11,每个类型转换电路722、724、726、728、730或732在每个时钟周期操作,并且不管有效信号valid是有效的还是无效都转换数据线data上数据data的数据类型。选择器735将根据由模式信号mode指示的模式选择的值作为读信号输出至队列720。类型转换电路722和730对应于图10中的类型转换电路72A,并且类型转换电路724和732对应于图10中的类型转换电路72B。类型转换电路728对应于图10中的类型转换电路72C。
在模式0和模式1中,选择器735输出具有根据时钟周期反相的逻辑的周期信号p_2nd_cycle作为读信号。在模式0和模式1中,读信号在第一周期被设置为“0”(读指针没有更新)并且在下一周期通过具有经由反相器INV反相的逻辑的读信号被设置为“1”(更新读指针)。因此,在模式0(或模式1)中,在两个时钟周期中将在第一周期从队列720读取的两条FP16(或两个INT16)转换为两条FP32。
此外,在模式2、模式3和模式4中,选择器735将读信号固定为“1”而不管时钟周期如何,并且每个时钟周期更新读指针。注意,在模式2、模式3和模式4中,由于每个时钟周期都转换数据data的数据类型,所以每个时钟周期都初始化周期信号p_2nd_cycle,并将其维持在“0”。
类型转换电路722将由数据data的低16位表示的FP16转换成FP32。类型转换电路724将由数据data的低16位表示的INT16转换成FP32。类型转换电路726将数据data(FP32)转换为FP16,并将数据data输出至低16位。类型转换电路728将数据data(FP32)转换为INT16,并将数据data输出至低16位。类型转换电路730将由数据data的高16位表示的FP16转换成FP32。类型转换电路732将由数据data的高16位表示的INT16转换成FP32。
选择器736根据由模式信号mode指示的模式来选择类型转换电路722、724、726和728的任何输出或者数据data。选择器737根据由模式信号mode指示的模式来选择类型转换电路730和732的输出或者全0。
选择器738在周期信号p_2nd_cycle为“0”的情况下选择选择器736的输出,而在周期信号p_2nd_cycle为“1”的情况下选择选择器737的输出。例如,在周期信号p_2nd_cycle为“0”的情况下,选择由低16位的FP16(或INT16)转换的FP32、原始的FP32或由FP32转换的FP16(或INT16)作为数据data_o。在周期信号p_2nd_cycle为“1”的情况下,选择由高16位的FP16(或INT16)转换的FP32或全0作为数据data_o。
选择器739在周期信号p_2nd_cycle为“0”的情况下输出从队列720输出的地址信号adrs作为地址信号adrs_o。选择器739在周期信号p_2nd_cycle为“1”的情况下输出从加法器734输出的地址信号adrs+4作为地址信号adrs_o。例如,在周期信号p_2nd_cycle为“1”并且从高16位的FP16(或INT16)转换的FP32作为数据data_o输出的情况下,地址信号adrs_o被更新了4个字节的区域。由此,可以抑制从两条FP16或两条INT16转换的两条FP32在重叠的存储区域中的存储。注意,有效信号valid_i被原样输出作为有效信号valid_o,并且模式信号mode_i被原样输出作为模式信号mode_o。
从类型转换单元72输出的32位数据data_o被写入图10所示的存储器90中,然后由运算核82读出,用于如图13A和图13B中所描述的归一化处理或识别处理。
图13A和图13B示出了在图10中的信息处理设备102通过多模态DNN执行推理处理的情况下的操作流的示例。例如,图13A和图13B示出了控制信息处理设备102的方法的示例。省略与图7A至图7C中的操作类似的操作的详细描述。由于传感器SoC 3(例如,传感器SoC 20C)的操作与图7A至图7C中的操作相同,因此将省略其描述。注意,信息处理设备102可以不具有传感器SoC 3。例如,基于信息处理设备102已经从用户接收到多模态DNN推理处理的服务请求,重复执行图13A和图13B中所示的操作,直到推理处理完成。
在本实施方式中,传感器SoC 1(例如,传感器SoC 20A)在步骤S102中使用FP16的数据执行利用卷积层的处理C。传感器SoC 2(例如,传感器SoC 20B)在步骤S202中使用FP16的数据执行利用LSTM的处理L。通过使用FP16执行卷积处理和LSTM处理,与使用FP32的情况相比,可以提高运算效率和功率效率。例如,可以在比使用FP32的情况下更短的时间内、以更小的功率提取特征数据。传感器SoC 3使用INT16的数据执行利用全连接层的处理F2。
注意,卷积处理和LSTM处理可以使用INT16或INT8(8位定点数数据)来执行。在这种情况下,可以通过安装用于INT16的运算核或用于INT8的运算核来减小专用于推理的传感器SoC 1和SoC 2的运算核40A和40B的芯片尺寸和功耗。在使用INT8的情况下,类型转换单元72设置有将INT8转换为INT32的类型转换电路。
类似于图7A至图7C中的步骤S401至S405,边缘SoC的运算核82(图10)等待来自每个传感器SoC的完成通知,并且向已经发出完成通知的传感器SoC输出数据传送请求。传感器SoC 1基于数据传送请求将存储在存储器55A中的特征数据(FP16)与有效信号valid_i=1、模式信号mode_i=0和地址信号adrs_i一起输出至存储器90。传感器SoC 2基于数据传送请求将存储在存储器55B中的特征数据(FP16)与有效信号valid_i=1、模式信号mode_i=0和地址信号adrs_i一起输出至存储器90。传感器SoC 3基于数据传送请求将存储在存储器55C中的特征数据(FP32)与有效信号valid_i=1、模式信号mode_i=2和地址信号adrs_i一起输出至存储器90。模式信号mode_i=0表示从FP16到FP32的转换,并且模式信号mode_i=2表示FP32在不被转换的情况下原样输出。
在步骤S410中,在类型转换单元72已经接收到从传感器SoC1和SoC2传送至存储器90的特征数据以及模式信号mode_i等的情况下,类型转换单元72执行将FP16的特征数据转换为FP32的处理(类型转换0)。类型转换单元72将转换为FP32的特征数据(data_o)与有效信号valid_o=1和地址信号adrs_o一起输出至存储器90,并且使存储器90存储特征数据。注意,在类型转换单元72已经接收到从传感器SoC 3传送至存储器90的特征数据以及模式信号mode_i=2的情况下,类型转换单元72使存储器90在不转换数据类型的情况下存储特征数据。
接下来,在步骤S412中,运算核82使用存储在存储器90中的经转换的FP32的特征数据执行利用归一化层的归一化处理F1,并且使存储器90存储归一化后的特征数据。此外,运算核82生成模式信号mode_i=4,以用于将归一化后的特征数据(FP32)转换为INT16,并且使存储器90存储具有归一化后的特征的模式信号。例如,局部响应归一化(LRN)层或批归一化层可以被用作归一化层。
归一化层具有提高DNN的学习处理的收敛速度的效果和提高DNN的识别准确性的效果。此外,利用归一化层的处理包括通过除法和指数函数进行的计算,使得在使用具有小位宽的数据格式例如FP16的情况下,对计算误差的影响增加,并且存在DNN的识别准确性降低的可能性。因此,为了抑制DNN的识别准确性的劣化,希望使用FP32或FP64(64位浮点数数据)用于归一化层的处理。
注意,在为了抑制识别准确性的降低而根据适于归一化的数据的位宽通过传感器SoC执行诸如卷积处理的另一处理的情况下,处理时间变长并且功率增大。在本实施方式中,可以通过仅在归一化处理中使用FP32来抑制识别准确性的降低。
接着,在步骤S414中,类型转换单元72基于存储器90中存储的模式信号mode_i=4执行将存储器90中存储的归一化处理之后的FP32的特征数据转换为INT16的处理(类型转换4)。例如,通过执行归一化处理的运算核82将到类型转换单元72的转换指令(模式信号mode_i、地址信号adrs_i等)与要转换的数据一起写入存储器90中。通过由运算核82生成诸如模式信号mode_i的转换指令,可以使用转换来自传感器SoC的特征数据的类型转换单元72来执行针对归一化之后的特征数据的类型转换。
根据地址信号adrs_o将转换为INT16的特征数据存储在存储器90中。接下来,在步骤S406中,类似于图7B和图7C,运算核82使用存储在存储器90中的INT16的归一化后的特征数据执行利用全连接层的识别处理F2,并且使存储器90存储所获得的识别结果。
接下来,在步骤S408中,类似于图7B和图7C,运算核82使用存储在存储器90中的识别结果作为输入来执行应用,执行各种服务的处理,或者执行控制控制装置例如致动器的处理。然后,一个周期的多模态DNN推理处理的执行结束。
在边缘SoC 62不具有类型转换单元72的情况下,由运算核82执行数据类型转换。在这种情况下,在类型转换的执行期间不能执行利用全连接层的运算处理等,并且运算核82的处理效率降低。因此,在本实施方式中,通过在I/O控制器70与运算核82之间的数据传送路径上提供执行数据类型转换的专用类型转换单元72,抑制了由于运算核82上的类型转换导致的负荷施加(隐藏类型转换开销)。由此,运算核82能够集中于利用全连接层的识别处理。此外,由于类型转换单元72布置在选择器77与存储器90之间,因此类型转换单元72可以对将从传感器SoC 1和SoC 2传送并存储在存储器90之前的特征数据的数据类型进行转换。因此,可以降低到存储器90的传送频率。
如上所述,通过使用FP16执行特征数据提取处理和使用FP32执行归一化层处理,可以提高运算效率和功率效率并减少推理处理的处理时间,并且可以抑制DNN的识别准确性的劣化。此外,通过在将归一化处理的结果转换为INT16之后执行利用全连接层的识别处理,可以提高识别处理的运算效率和功率效率。
此外,通过使用16位数据表示执行特征数据提取处理和利用全连接层的识别处理,可以减少用于处理的存储器区域。注意,在使用学习的DNN的推理处理中,即使在使用具有小位宽的数据表示例如FP16或INT16的情况下,运算结果的误差对DNN的识别准确性的影响也较小。
通过提供专用类型转换单元72,可以与传感器SoC 20的处理和边缘SoC 60的处理并行地执行数据类型转换。因此,可以隐藏类型转换开销。因此,可以实现通过优化后的数据表示进行的DNN推理处理的改进以及DNN的识别准确性的改进。
如上所述,在图10至图13B所示的实施方式中,可以获得与图1至图9所示的实施方式中的效果类似的效果。此外,在图10至图13B所示的实施方式中,用FP16执行特征数据提取处理,用FP32执行利用归一化层的处理,以及用INT16执行利用全连接层的识别处理。由此,能够在提高运算效率和功率效率的同时减少推理处理的总处理时间,并且能够抑制DNN的识别准确性的劣化。此外,可以减少用于特征数据提取处理和利用全连接层的识别处理的存储器区域。
通过提供专用类型转换单元72,可以与传感器SoC 20的处理和边缘SoC 60的处理并行地执行数据类型转换。因此,可以隐藏类型转换开销。因此,可以实现通过优化后的数据表示进行的DNN推理处理的改进以及DNN的识别准确性的改进。通过由运算核82生成诸如模式信号mode_i的转换指令,可以使用转换来自传感器SoC的特征数据的类型的类型转换单元72来执行针对归一化之后的特征数据的类型转换。
图14示出了根据另一实施方式的信息处理设备的示例。省略与图2和图10中的元件类似的元件的详细描述。图14中所示的信息处理设备103类似于图10中所示的信息处理设备102,除了信息处理设备103包括选择器78而不是图10中所示的选择器77并且包括边缘SoC 63和SoC 64而不是图10中所示的边缘SoC 62以外。边缘SoC 63和SoC64与选择器78和存储器90和存储器94一起安装在信息处理设备103的主板BRD上。信息处理设备103与图10所示的信息处理设备102类似地执行多模态DNN推理处理。
除了图10中所示的选择器77的功能以外,选择器78还具有将I/O控制器70的输出连接至边缘SoC 64的输入的功能。边缘SoC 63具有与图10中所示的边缘SoC 62的功能类似的功能,除了边缘SoC 63包括运算核83而不是运算核82以外。边缘SoC 63是第一后处理运算装置和运算处理装置的示例。运算核83具有与图10中所示的运算核82类似的功能,除了针对用于对FP32的特征数据进行归一化的归一化层优化了架构以外。如参照图10所描述的,类型转换单元72具有将FP16转换为FP32的功能、将INT16转换为FP32的功能以及将FP32转换为INT16的功能。
边缘SoC 64包括经由总线69彼此连接的I/O控制器71、运算核84和通信接口86。存储器94连接至总线69。与存储器90类似,存储器94包括主存储装置。I/O控制器71具有使存储器94存储从I/O控制器70传送的归一化后的特征数据的功能。运算核84具有与图10中所示的运算核82的功能类似的功能,除了针对用于归一化后的特征数据的DNN识别处理优化了架构以外。通信接口86具有与通信接口85的功能类似的功能。边缘SoC 64是第二后处理运算装置和运算处理装置的示例,I/O控制器71是第二输入单元的示例。运算核84是第二后处理运算单元的示例,以及存储器94是第二存储单元的示例。
图15A和图15B是示出在图14中的信息处理设备103通过多模态DNN执行推理处理的情况下的操作流的示例的图。例如,图15A和图15B示出了控制信息处理设备103的方法的示例。省略与图7A至图7C、图13A和图13B中的操作相同的操作的详细描述。由于传感器SoC3(例如,传感器SoC 20C)的操作与图7A至图7C中的操作相同,因此将省略其描述。注意,信息处理设备103可以不具有传感器SoC 3。例如,基于信息处理设备103已经从用户接收到多模态DNN推理处理的服务请求,重复执行图15A和图15B中所示的操作,直到推理处理完成。传感器SoC 1(例如,传感器SoC 20A)的操作和传感器SoC 2(例如,传感器SoC 20B)的操作与图13A和图13B中的操作类似。
在边缘SoC 63的操作中,从图13A和图13B所示的边缘SoC 62的操作中删除了步骤S406和S408,并且新添加步骤S416的操作。例如,在步骤S410中,类型转换单元72将从传感器SoC 20A和20B传送的FP16的特征数据转换为FP32的特征数据,并将特征数据存储在存储器90中。在步骤S412中,运算核83使用存储在存储器90中的FP32的特征数据执行利用归一化层的归一化处理。
在完成归一化处理之后,运算核83向边缘SoC 64的运算核84发出完成通知。完成通知可以经由I/O控制器70、选择器78和I/O控制器71发送,或者可以经由通信接口85和86发送。在步骤S502中,边缘SoC 64的运算核84等待来自运算核83的完成通知。在已经接收到完成通知的情况下,运算核84向边缘SoC 63发出数据传送请求,并且将操作转至步骤S506。
在已经接收到来自运算核84的数据传送请求的情况下,边缘SoC 63的运算核83生成用于对归一化后的特征数据的数据类型进行转换的指令(模式信号mode_i、地址信号adrs_i等),并将该指令发出至类型转换单元72。注意,到类型转换单元72的指令可以通过由运算核83执行的控制程序的控制来执行,或者可以通过包括在边缘SoC 63中的控制器(硬件)来执行。
在步骤S414中,类型转换单元72读取存储在存储器90中的归一化处理之后的FP32的特征数据,将该特征数据转换为INT16的特征数据,并且将转换后的特征数据传送至I/O控制器70。在步骤S416中,I/O控制器70将从类型转换单元72传送的归一化后的特征数据(INT16)传送至边缘SoC 64。传送至边缘SoC 64的归一化后的特征数据被存储在存储器94中。
在归一化后的特征数据被存储在存储器94中之后,运算核84顺序地执行步骤S506和S508。步骤S506中的处理与图13A和图13B所示的步骤S406中的处理相同,并且步骤S508中的处理与图13A和图13B所示的步骤S408中的处理相同。然后,操作周期中的多模态DNN推理处理的执行结束。
如上所述,在图14至图15B所示的实施方式中,可以获得与图1至图13B所示的实施方式中的效果类似的效果。此外,在图14和图15B所示的实施方式中,信息处理设备103包括具有用于执行利用归一化层的归一化处理的优化架构的运算核83和具有用于执行利用全连接层的识别处理的优化架构的运算核84。利用该配置,与图10中所示的信息处理设备102相比,信息处理设备103可以提高归一化处理和识别处理的处理效率,并且可以缩短处理时间。
图16示出了根据另一实施方式的信息处理设备的示例。与图2和图10中的元件类似的元件由相同的附图标记表示,并且省略详细描述。在图16所示的信息处理设备104中,连接至总线21A的压缩单元56被添加至图10所示的传感器SoC 20A。压缩单元56是第一压缩单元的示例。传感器SoC 20A的压缩单元56具有压缩由运算核40A提取的图像数据的特征数据的信息量的功能。将参照图18至图24描述压缩单元56的示例。信息处理设备104不包括图2中的陀螺仪传感器10C和传感器SoC 20C。
此外,信息处理设备104的边缘SoC 63包括连接至总线61的稀疏矩阵运算单元74(解码电路)而不是图10中所示的类型转换单元72。边缘SoC 63经由选择器77从传感器SoC20A和20B接收特征数据。边缘SoC63的稀疏矩阵运算单元74具有对从传感器SoC 20A传送至存储器90的压缩后的特征数据进行解码的功能。将参照图25至图28描述稀疏矩阵运算单元74的示例。
信息处理设备104的其他配置与图10中所示的信息处理设备102的配置类似。信息处理设备104使用由图像传感器10A测量的图像数据和由麦克风10B测量的声音数据与图10所示的信息处理设备102类似地执行多模态DNN推理处理。
图17示出了每当图16中的传感器SoC 20A和20B提取特征数据时输出的特征数据的条数的示例。例如,每当图像传感器10A获取图像数据时(例如,每秒约30次)时执行由传感器SoC 20A和20B进行的特征数据的提取。与图7A至图7C中的描述类似,提取特征数据并执行识别处理的时段被称为操作周期。传感器SoC 20A使用压缩单元56将由运算核40A每个操作周期提取的2048条特征数据压缩为1024条特征数据,并且将压缩后的特征数据输出至边缘SoC 63。传感器SoC 20B将由运算核40B每个操作周期提取的1024条特征数据输出至边缘SoC 63。由传感器SoC20A和20B提取的特征数据的总数目为3072,从传感器SoC 20A和20B输出至边缘SoC 63的特征数据的总数目为2048。
图18示出了图16中的压缩单元56的示例。包括表示时钟输入的三角形的矩形表示锁存器。压缩单元56包括数据排序电路560、偏移排序电路570和多个打包电路580。
压缩单元56在每个时钟周期将8条特征数据(din0-din8)压缩成4条特征数据(outd0-outd3)(压缩率=50%)。特征数据outd0-outd3是压缩后的特征数据的示例。由于丢弃了没有作为特征数据outd0-outd3输出的4条特征数据,因此压缩单元56不可逆地压缩了该数据。为了容易理解,图18示出了选择性地输出8条数据din中的4条数据的示例。但是,输入数据din的数目和输出数据outd的数目不限于图18中所示的示例,只要满足数据din的数目>数据outd的数目即可。例如,数据din的数据类型是FP32,但也可以使用另一数据类型的数据din。
数据排序电路560接收作为由运算核40A提取的8条特征数据的数据din(din0-din7)和指示每个时钟周期到数据排序电路560的数据din的输入位置的偏移oft(oft0-oft7)。对应于数据din添加偏移oft以确定数据din的阵列顺序,并且具有相同编号的数据din和偏移oft配对。注意,可以由数据排序电路560针对与接收数据din的端子相对应的每个数据din来添加偏移oft。偏移oft是阵列信息的示例。
数据排序电路560输出4条数据作为排序数据sd(sd0-sd3),所述4条数据包括与具有预定数目的偏移oft相对应的数据din和具有与其他7条偏移oft相对应的7条数据din中的较大绝对值的3条数据din。将排序数据sd与对应于排序数据sd的偏移soft(soft0-soft3)一起输出。
在下文中,假设偏移oft0是预先指定的,并且通常将与偏移oft0相对应的数据din0作为排序数据sd0输出。在这种情况下,数据排序电路560将数据din0和具有7条数据din1-din7中的较大绝对值的3条数据din作为排序数据sd(sd0-sd3)与偏移soft(soft0-soft3)一起输出。偏移排序电路570以偏移soft的升序重新排列4条排序数据sd,并且将该数据作为排序数据tmpd(tmpd0-tmpd3)和偏移tmpoft(tmpoft0-tmpoft3)输出。
打包电路580将偏移tmpoft的值嵌入从偏移排序电路570输出的排序数据tmpd中,并且将该数据作为数据out(out0-out3)输出。例如,打包电路580生成其中浮点数tmpd的尾数部分的低3位(较小值侧的3位)被替换为偏移tmpoft的数据outd。在以IEEE(电气与电子工程师协会)754格式表示FP32的数据din、sd和tmpd的情况下,将数据tmpd的23位尾数部分的低3位替换为偏移tmpoft,并作为数据outd输出。
图19示出了图18中的数据排序电路560的示例。数据排序电路560包括比较两个数据的绝对值的大小的多个比较电路562。每个比较电路562接收数据ind0和ind1以及与数据ind0和ind1相对应的偏移inoft0和Inoft1,并且比较数据ind0和ind1的绝对值的大小。
每个比较电路562基于数据ind0和ind1的比较结果输出具有较大绝对值的数据和与具有较大绝对值的数据相对应的偏移作为数据gd和偏移goft。每个比较电路562基于两个数据的比较结果输出具有较小绝对值的数据和与具有较小绝对值的数据相对应的偏移作为数据ld和偏移loft。在图19中,从每个比较电路562的上侧输出数据gd和偏移goft,并且从每个比较电路562的下侧输出数据ld和偏移loft。
注意,数据排序电路560在不通过比较电路562比较数据的情况下输出通常选择的数据din0和与数据din0相对应的偏移oft0作为排序数据sd0和偏移soft0。如上所述,数据排序电路560将作为数据din0的排序数据sd0和以绝对值的降序排列的三个排序数据sd1-sd3与偏移soft0-soft3一起输出。排序数据sd1-sd3的绝对值满足sd1>sd2>sd3的顺序(包括绝对值相等的情况)。
通过通常选择数据din0,可以去除用于将数据din0与其他数据din进行比较的比较电路562。由此,与对所有数据din0-din7进行比较的情况相比,可以减小数据排序电路560的电路规模。
注意,在通常选择与任意数的偏移oft相对应的数据din而不管绝对值的大小如何的情况下,图18所示的压缩单元56可以包括在第一锁存器与数据排序电路560之间的替换电路(未示出)。替换电路将任意指定的偏移oft和与指定的偏移oft相对应的数据din作为偏移oft0和数据din0提供给数据排序电路560。例如,在指定偏移oft2的情况下,将偏移oft2和数据din2作为偏移oft0和数据din0提供给数据排序电路560。将锁存器所接收的偏移oft0和数据din0作为偏移oft1和数据din1提供给数据排序电路560。将锁存器所接收的偏移oft1和数据din1作为偏移oft2和数据din2提供给数据排序电路560。
图20示出了图19中的每个比较电路562的操作的示例。首先,在步骤S10中,比较电路562比较输入数据ind0和ind1的绝对值(abs)。比较电路562在数据ind0的绝对值等于或大于数据ind1的绝对值的情况下将操作转至步骤S12,以及在数据ind0的绝对值小于数据ind1的绝对值的情况下将操作转至步骤S14。
在步骤S12中,比较电路562输出数据ind0作为数据gd,并且输出偏移inoft0作为偏移goft。此外,比较电路562输出数据ind1作为数据ld,并且输出偏移inoft1作为偏移loft,并且终止比较操作。
在步骤S14中,比较电路562输出数据ind1作为数据gd,并且输出偏移inoft1作为偏移goft。此外,比较电路562输出数据ind0作为数据ld,并且输出偏移Inoft0作为偏移loft,并且终止比较操作。
图21示出了图18中的偏移排序电路570的示例。偏移排序电路570包括比较两个偏移的大小的多个比较电路572。每个比较电路572接收数据ind0和ind1以及与数据ind0和ind1相对应的偏移inoft0和inoft1,并且比较偏移inoft0和inoft1的值的大小。
每个比较电路572基于偏移inoft0和inoft1的比较结果输出具有较小值的偏移和与具有较小值的偏移相对应的数据作为偏移loft和数据ld。此外,每个比较电路572基于偏移inoft0和inoft1的比较结果输出具有较大值的偏移和与具有较大值的偏移相对应的数据作为偏移goft和数据gd。在图21中,从每个比较电路572的上侧输出偏移loft和数据ld,并且从每个比较电路572的下侧输出偏移goft和数据gd。
注意,偏移排序电路570在不通过比较电路572比较数据的情况下输出与被指定为通常选择的数据din0相对应的排序数据sd0和偏移soft0作为排序数据tmpd0和偏移tmpoft0。因此,偏移排序电路570布置并输出作为排序数据sd0(=数据din0)的排序数据tmpd0和在以偏移tmpoft的值的升序排列中被确定为具有较大绝对值的三个排序数据tmpd1-tmpd3。偏移tmpoft的值满足tmpoft0<tmpoft1<tmpoft2<tmpoft3的顺序。通过通常选择排序数据sd0,可以去除用于将偏移soft0与其他偏移soft进行比较的比较电路572。由此,与对所有偏移soft0-soft3进行比较的情况相比,可以减小偏移排序电路570的电路规模。
图22示出了图21中的每个比较电路572的操作的示例。首先,在步骤S20中,比较电路572比较输入偏移inoft0和inoft1的大小。比较电路572在偏移inoft0等于或大于偏移inoft1的情况下将操作转至步骤S22,以及在偏移inoft0小于偏移inoft1的情况下将操作转至步骤S24。
在步骤S22中,比较电路572输出数据ind0作为数据gd,并且输出偏移inoft0作为偏移goft。比较电路572输出数据ind1作为数据ld,并且输出偏移inoft1作为偏移loft,并且终止比较操作。
在步骤S24中,比较电路572输出数据ind1作为数据gd,并且输出偏移inoft1作为偏移goft。此外,比较电路572输出数据ind0作为数据ld,并且输出偏移inoft0作为偏移loft,并且终止比较操作。
图23示出了由图18中的压缩单元56进行压缩操作的示例。为了容易理解,图23示出了其中将14个元素(特征数据)压缩成8个元素的示例。在实际的示例中,如图17中所描述的,每个操作周期由传感器SoC 20A生成的特征数据的数目可以是2048。根据压缩单元56的配置将特征数据划分为8个子阵列,并且从特征数据(din)的头侧起按顺序向子阵列分配偏移0-7。
由索引x标识的特征数据指示针对每个操作周期提取的所有特征数据和在阵列中的位置。压缩单元56针对每个子阵列选择头部(偏移=0)的特征数据。此外,压缩单元56从子阵列中的剩余的7条特征数据中选择具有较大绝对值的3条特征数据。然后,压缩单元56以偏移的升序重新排列针对每个阵列选择的4条特征数据以获得压缩后的特征数据。因此,压缩率为50%。压缩后的特征数据由索引xsprs来标识。此后,对于每个子阵列,偏移被嵌入在特征数据中并且被输出作为图18所示的数据outd0-outd3。
图24示出了由图18中的压缩单元56进行的压缩操作的操作流的示例。注意,步骤S30和步骤S32示出了在使用现场可编程门阵列(FPGA)等实现压缩单元56的情况下的条件设置。在压缩单元56的硬件(电路元件)已经安装在传感器SoC 20A上的情况下,省略步骤S30和步骤S32中的操作,并且压缩操作从步骤S34开始。
在步骤S30中,设置偏移的位数K并且设置压缩前的特征数据din的元素数目N,作为构成压缩单元56的条件。此外,作为构成压缩单元56的条件,设置压缩后的特征数据outd的元素数目L,设置与通常选择的特征数据相对应的偏移号Y,并且设置要压缩的特征数据(阵列)。在图23所示的示例中,设置了位数K=3、元素数目N=14、元素数目L=8以及偏移号Y=0。此外,在图17所示的传感器SoC 20A的示例中,设置了位数K=3、元素数目N=2048、元素数目L=1024以及偏移号Y=0。
接下来,在步骤S32中,作为构成压缩单元56的条件,通过计算2K来计算要压缩的特征数据的子阵列的元素数目S(=8),通过表达式(4)计算压缩后的特征数据的元素数目D(=4)。ceil(N/S)=ceil(L/D)...(4)
在表达式(4)中,“ceil”表示向上舍入的整数。
然后,在步骤S34中,执行特征数据的压缩操作。在步骤S34中,压缩单元56将特征数据划分为ceil(N/S)个子阵列。接下来,在步骤S36中,压缩单元56对每个子阵列执行步骤S361至步骤S364。
在步骤S361中,压缩单元56将偏移分配给要压缩的子阵列中的S条特征数据。接下来,在步骤S362中,压缩单元56选择具有偏移号=Y的特征数据,并且从按照绝对值的降序的剩余的(S-1)条特征数据中选择(D-1)条特征数据。接下来,在步骤S363中,压缩单元56按照偏移号的顺序重新排列所选择的D条特征数据。接下来,在步骤S364中,压缩单元56在每个选择的特征数据中嵌入偏移值。然后,通过重复步骤S361至步骤S364,压缩要压缩的所有子阵列中的特征数据。压缩后的特征数据由索引xsprs来标识。
图25示出了图16中的稀疏矩阵运算单元74的示例。稀疏矩阵运算单元74包括队列741、或非门742、加法器743、选择器744、乘法器745、加法器746、乘积-和运算单元747以及多个锁存器。队列741、或非门742、加法器743、选择器744、乘法器745和加法器746用作用于对特征数据执行解码处理的解码电路。乘积-和运算单元747基于解码后的特征数据来执行图3中所描述的识别处理F2。
队列741具有保存从传感器SoC 20A传送的经压缩的特征数据(xsprs)的多个条目,并且以保存在队列741中的顺序输出特征数据。从队列741输出的32位特征数据被分离成嵌入在尾数部分的低3位中的偏移和缺少尾数部分的低3位的29位浮点数的特征数据。3位偏移被提供至或非门742和加法器746。将由“3'b000”表示的二进制数“000”被增加至29位特征数据的尾数部分的低3位,并且32位浮点数FP32被解码。注意,如参照图23所描述的,与经压缩的特征数据相对应的偏移可以取不连续的值。
或非门742在偏移值为“0”的情况下将逻辑1输出至选择器744,以及在偏移值为除“0”以外的值的情况下将逻辑0输出至选择器744。连接至加法器743的输入的锁存器在每个操作周期被初始化为全1。加法器743和选择器744用作每当从队列741输出偏移=“0”时向上计数的计数器,并且或非门742的输出用作使计数器向上计数的递增信号。选择器744输出用于标识子阵列的子阵列号。例如,从连接至加法器743的输入的锁存器输出的变量j指示子阵列号。注意,子阵列不仅用作特征数据,而且还用作与特征数据相对应的权重数据的阵列。
乘法器745将从选择器744输出的值乘以作为子阵列中的元素的数目的“8”,并将结果输出至加法器746。加法器746将偏移值加至乘法器745的输出值以生成用于标识存储器90中存储的、与子阵列中的解码后的特征数据相对应的权重的权重索引。例如,即使在偏移取不连续值的情况下,也生成用于标识与特征数据相对应的权重W的权重索引,由此可以完成针对每个特征数据的解码处理。注意,权重索引可以用于识别其中存储要计算的权重W的区域,并且还可以用于识别要计算的特征数据。
在可以指定用于标识要用于计算的权重W的权重索引的情况下,稀疏矩阵运算单元74向存储器90发出读请求,并且从存储器90获取权重W。乘积-和运算单元747(融合的乘-加)将特征数据与从存储器90获取的权重W相乘。乘积-和运算单元747在操作周期中顺序地对从队列741输出的解码后的特征数据与根据权重索引从存储器90读取的权重W的乘积进行积分,并将该乘积作为处理F2的运算结果存储在存储器90中。
注意,接收乘积-和运算单元747的输出的锁存器用作存储积分结果的累加器,并且在操作周期开始之前被初始化为“0”。在运算周期完成时,由累加器存储的积分值变为表达式(5)中所示的值。但是,在表达式(5)中,排除与通过压缩处理而变稀疏的特征数据相对应的“i”元素,并且执行计算。
[数学式.4]
Figure BDA0002380165230000341
在表达式(5)中,w[i]表示由权重索引标识的权重W,以及x[i]表示由特征索引标识的特征数据。
图26示出了由图16中的连接至边缘SoC 63的存储器90存储的权重矩阵的示例。权重矩阵是用于存储要用于每个操作周期的2048个权重W的区域,并且具有由权重索引标识的区域。由于权重索引取不连续的值,所以读出了权重矩阵中的权重W的一部分。
图27示出了由图25中的稀疏矩阵运算单元74进行的解码操作的示例。图27示出在压缩率为50%的情况下,针对每个子阵列使用解码前(例如,压缩后)的4条特征数据对8条特征数据进行解码的示例。例如,在每个操作周期中,从256个子阵列中所包括的1024条特征数据中解码出2048条特征数据。
稀疏矩阵运算单元74从解码前的特征数据中提取偏移,并且使用已经从中提取偏移的特征数据来对特征数据进行解码。稀疏矩阵运算单元74将解码后的特征数据存储在存储器90中的由与提取出的偏移值相对应的索引x标识的区域中。在本实施方式中,由于与偏移=0相对应的特征数据通常被包括为解码后的特征数据,因此可以根据偏移=0来确定特征数据的子阵列的重复。
在存储器90中,在操作周期开始之前,在存储解码后的特征数据的区域中预先写入常量Z。因此,在解码处理完成之后,存储解码后的特征数据的区域保存有解码后的特征数据或常量Z。尽管常量Z的值是任意的,但是由于在压缩特征数据时用于选择特征数据的标准是绝对值的降序,因此将常量Z设置为“0”是适当的。
在DNN推理处理中,解码后的特征数据被用于例如由表达式(1)表示的全连接层(矩阵矢量积)。不需要计算通过解码处理而用常量Z替换的特征数据和对应于所述特征数据的权重W。因此,通过省略计算和对特征数据和权重W的存储器访问,与不执行压缩的情况相比,可以减少由边缘SoC 63执行的运算量,并且可以减少用于计算的时钟周期的数目。
注意,在本实施方式中,通过处理F2跳过了用常量Z(=0)替换的特征数据,但这等同于解码后的有效特征数据和权重W的乘积与常量Z(=0)和权重W(=0)的积分。因此,在对运算量没有限制的情况下,可以计算常量Z(=0)与权重W的乘积。
图28示出了由图25中的稀疏矩阵运算单元74进行的解码操作的操作流的示例。注意,步骤S40和步骤S42示出了稀疏矩阵运算单元74使用FPGA等实现输出的情况下的条件设置。在稀疏矩阵运算单元74的硬件(电路元件)已经安装在边缘SoC 63上的情况下,省略步骤S40和步骤S42中的操作,并且压缩操作从步骤S44开始。
在步骤S40中,设置偏移的位数K并且设置压缩前的特征数据din的元素数目N,作为构成稀疏矩阵运算单元74的条件。此外,作为构成稀疏矩阵运算单元74的条件,设置压缩后的特征数据outd的元素数目L,设置常量Z,以及设置要解码的特征数据xsprs(阵列)。在图27所示的解码操作中,设置了位数K=3、元素数目N=14以及元素数目L=8。此外,在图17所示的特征数据的情况下,设置了位数K=3、元素数目N=2048以及元素数目L=1024。
接下来,在步骤S42中,作为构成稀疏矩阵运算单元74的条件,通过计算2K来计算要压缩的特征数据的子阵列的元素数目S(=8),通过表达式(6)计算解码前的特征数据的元素数目D(=4)。D=L/ceil(N/S)...(6)
接下来,在步骤S44中,稀疏矩阵运算单元74利用常量Z初始化用于解码后的特征数据的存储区域。例如,在存储器90中分配存储区域,使得可以存储2048条特征数据。稀疏矩阵运算单元74将要在步骤S46和随后的步骤中使用的变量j初始化为“-1”。
接下来,在步骤S46中,稀疏矩阵运算单元74针对每个操作周期执行步骤S461至步骤S463以对L条特征数据进行解码。在步骤S461中,例如,稀疏矩阵运算单元74从图27所示的解码前的多条特征数据(包括偏移)中获取与索引xsprs[i]相对应的特征数据。接下来,在步骤S462中,稀疏矩阵运算单元74在偏移为“0”的情况下使变量j递增。例如,稀疏矩阵运算单元74在每次检测到子阵列的边界时使变量j递增。在图25所示的稀疏矩阵运算单元74中,从选择器744输出变量j。
接下来,在步骤S463中,稀疏矩阵运算单元74计算变量j、子阵列的元素数目S和偏移以计算用于识别解码后的特征数据的索引x。在图25所示的稀疏矩阵运算单元74中,索引x等于由乘法器745和加法器746计算的权重索引。然后,稀疏矩阵运算单元74将索引x分配给解码后的特征数据。所分配的索引x对应于图23中的压缩前的索引x。然后,通过重复步骤S461至步骤S463,解码所有子阵列中的特征数据。
在本实施方式中,在解码之后用常量Z(例如,“0”)替换具有相对小的绝对值并且在压缩期间被稀疏的特征数据,并且跳过了使用用常量Z替换的特征数据的计算。例如,由于使用解码后的特征数据进行的处理F2(全连接层)中执行的运算处理是由表达式(1)表示的矩阵矢量积,因此即使将具有小绝对值的特征数据视为“0”,对处理F2的结果的影响也较小。不仅对于利用全连接层的处理来说,而且对于利用卷积层的处理和LSTM处理来说,即使将具有小绝对值的特征数据视为“0”来执行计算,对处理结果的影响也较小。因此,可以减少由边缘SoC 63执行的运算量,并且抑制对DNN的最终识别结果的影响。此外,可以减少从传感器SoC 20A传送至边缘SoC 63的数据量,并且可以减少存储器90的使用量。
图29示出了由图16中的信息处理设备104进行的对特征数据的压缩和解码的概要。在图29中,由对角线示出的矩形表示通过压缩而被稀疏并且不用于计算的特征数据,或者表示不用于计算的权重W。因此,由对角线示出的特征数据实际上不存在。注意,在下面将描述的图30中所示的实施方式中,在由边缘SoC 63计算由传感器SoC 20A提取的特征数据以及由边缘SoC 63计算由传感器SoC 20B提取的特征数据的情况下的操作的概要类似于图29。此外,在下面将描述的图34中,在由边缘SoC 63计算由传感器SoC 20A提取的特征数据的情况下的操作的概要类似于图29。
传感器SoC 20A的压缩单元56通过从N条特征数据x[1]-x[N]中选择预定数目的具有较大绝对值的特征数据来压缩特征数据,并且将经压缩的特征数据作为特征数据xsprs[1]和xsprs[L]存储在连接至边缘SoC 63的存储器90中。尽管未示出,但是特征数据xsprs[1]和xsprs[L]包括偏移。
稀疏矩阵运算单元74从存储在存储器90中的经压缩的特征数据xsprs[1]和xsprs[L]中提取偏移,并且对特征数据xsprs[1]和xsprs[L]进行解码。稀疏矩阵运算单元74基于所提取的偏移从存储器90读取与解码后的特征数据xsprs[1]和xsprs[L]相对应的权重W[j,2]和W[j,N]。稀疏矩阵运算单元74的乘积-和运算单元747执行特征数据xsprs[1]和xsprs[L]与权重W[j,2]和W[j,N]的乘积-和运算,并将执行结果写回至存储器90。
如上所述,在图16至图28所示的实施方式中,可以获得与图1至图9所示的实施方式中的效果类似的效果。此外,在图16至图29所示的实施方式中,通过由压缩单元56压缩特征数据并将经压缩的特征数据传送至边缘SoC 63,可以减少传感器SoC 20A与边缘SoC 63之间的数据传送量。因此,能够使用较多数目的传感器10的测量值来执行DNN推理处理。
此外,由于通过压缩而丢弃的特征数据的绝对值小于其他特征数据的绝对值,因此可以在对处理F2的结果的影响较小的情况下执行DNN推理处理。因此,可以减少要由边缘SoC 63执行的运算量,同时抑制对DNN的最终识别结果的影响,并且可以减少用于计算的时钟周期的数目。此外,可以通过减少特征数据的数目来减少存储器90的使用量。
在特征数据压缩处理中,通过通常从多条特征数据中选择具有相同偏移的特征数据,可以使用偏移来检测子阵列的边界,并且可以基于所检测到的边界来解码特征数据。因此,与通常选择的不具有偏移的情况相比,能够简化稀疏矩阵运算单元74中用于检测子阵列的边界的电路,并且能够减小稀疏矩阵运算单元74的电路规模。
此外,通过通常选择具有相同偏移的特征数据,可以减小数据排序电路560和偏移排序电路570的电路规模。例如,通过通常选择数据din0,可以去除用于将数据din0与其他数据din进行比较的比较电路562。例如,与比较所有数据din0-din7的情况相比,可以减小数据排序电路560的电路规模。通过通常选择排序数据sd0,可以去除用于将偏移soft0与其他偏移soft进行比较的比较电路572。例如,与比较所有偏移soft0-soft3的情况相比,可以减小偏移排序电路570的电路规模。
图30示出了根据另一实施方式的信息处理设备的示例。与图10和图16中的元件类似的元件由相同的附图标记表示,并且省略详细描述。图30中所示的信息处理设备105包括压缩单元57而不是图16中所示的压缩单元56。此外,在信息处理设备105中,连接至总线21B的压缩单元57被添加至传感器SoC 20B,并且信息处理设备105包括图10中所示的陀螺仪传感器10C和传感器SoC 20C。压缩单元57可以选择50%或25%的压缩率。例如,传感器SoC20A的压缩单元57的压缩率被设置为25%,以及传感器SoC 20B的压缩单元57的压缩率被设置为50%。
传感器SoC 20B的压缩单元57具有对由运算核40B提取的声音数据的特征数据的信息量进行压缩的功能。注意,传感器SoC 20B可以包括图16中所示的压缩单元56而不是压缩单元57。信息处理设备105的其他配置与图16中所示的信息处理设备104的配置类似。信息处理设备105与图16所示的信息处理设备104类似地执行多模态DNN推理处理。
图31示出了其中图30中的传感器SoC提取特征数据的每个操作周期中输出的特征数据的大小的示例。传感器SoC 20A使用压缩单元57将每个操作周期由运算核40A提取的2048条特征数据压缩为512条特征数据,并且将经压缩的特征数据输出至边缘SoC 63(压缩率=25%)。传感器SoC 20B使用压缩单元57将每个操作周期由运算核40B提取的1024条特征数据压缩成512条特征数据,并且将经压缩的特征数据输出至边缘SoC 63(压缩率=50%)。
传感器SoC 20C将每个运算周期由运算核40C提取的1024条特征数据输出至边缘SoC 63。由传感器SoC 20A、SoC 20B和SoC 20C提取的特征数据的总数目是3584。同时,从传感器SoC 20A、SoC 20B和SoC 20C输出至边缘SoC 63的特征数据的总数目是2048,如图17所示。例如,可以使图29中传送至边缘SoC 63的特征数据的传送速率等于图16中传送至边缘SoC 63的特征数据的传送速率。
在本实施方式中,通过提高传感器SoC 20A的压缩率以及向传感器SoC 20B添加压缩功能,即使在添加了传感器SoC 20C的情况下,也能够抑制到边缘SoC 63的特征数据的传送速率的变化。例如,即使在传感器SoC的数目增加并且要用于推理的特征数据的大小增加的情况下,也可以抑制到边缘SoC 63的数据传送量的增加,并且可以抑制边缘SoC 63中的运算量的增加。因此,可以抑制多模态DNN推理处理的执行效率的降低。
此外,通过使传感器SoC 20的压缩率可变,可以使到边缘SoC 63的特征数据的传送速率恒定,而不管连接至边缘SoC 63的传感器SoC 20的数目如何。因此,可以传送具有符合边缘SoC 63的运算核82的架构的最佳大小的特征数据,并且可以优化推理处理的执行效率,并且可以使推理处理的执行时间恒定。
图32示出了图30中的压缩单元57的示例。与图18中的压缩单元56类似的元件由相同的附图标记表示,并且省略详细描述。压缩单元57包括在数据排序电路560与偏移排序电路570之间的选择器591和选择器592。选择器591在模式信号MDC是逻辑0的情况下,将偏移soft2提供至偏移排序电路570,以及在模式信号MDC是逻辑1的情况下,将由“3'b111”表示的二进制数“111”提供至偏移排序电路570。选择器592在模式信号MDC是逻辑0的情况下,将偏移soft3提供至偏移排序电路570,以及在模式信号MDC是逻辑1的情况下,将由“3'b111”表示的二进制数“111”提供至偏移排序电路570。
模式信号MDC在从八条特征数据中选择四条特征数据的情况下被设置为逻辑0,以及在从八条特征数据中选择两条特征数据的情况下被设置为逻辑1。例如,模式信号MDC在压缩率为50%的情况下被设置为逻辑0,以及在压缩率为25%的情况下被设置为逻辑1。传感器SoC 20A的压缩单元57接收模式信号MDC=“1”并且以压缩率=25%进行操作。传感器SoC 20B的压缩单元57接收模式信号MDC=“0”并且以压缩率=50%进行操作。注意,代替图16中所示的传感器SoC 20A的压缩单元56,可以安装压缩单元57,并且通过模式信号MDC=“0”(压缩率=50%)来操作压缩单元57。
在模式信号MDC为逻辑1的情况下,偏移排序电路570接收“3'b111”的偏移soft2和soft3。在这种情况下,偏移排序电路570以下述顺序输出排序数据sd0和sd1作为排序数据tmpd0和tmpd1,并且以下述顺序输出偏移soft0和soft1作为偏移tmpoft0和tmpoft1。此外,偏移排序电路570输出排序数据sd2和sd3作为排序数据tmpd2和tmpd3,并且输出偏移soft2和soft2作为偏移tmpoft2和tmpoft3。特征数据outd0和outd1是经压缩的特征数据的示例。由此,压缩单元58的压缩率可以被设置为25%。
图33示出了其中压缩率被固定为25%的压缩单元58的示例。与图18中的压缩单元56类似的元件由相同的附图标记表示,并且省略详细描述。在图32所示的压缩单元57不存在并且压缩单元58被安装在传感器SoC 20A上的情况下,图18所示的压缩单元56被安装在传感器SoC 20B上。
图33中所示的压缩单元58不包括偏移排序电路570和与数据outd2和outd3相对应的打包电路580。压缩单元58通常以下述顺序将排序数据sd0和sd1作为排序数据tmpd0和tmpd1输出至打包电路580。此外,压缩单元58以下述顺序将偏移量soft0和soft1作为偏移量tmpoft0和tmpoft1输出至打包电路580。因此,压缩单元58的压缩率可以设置为25%。
注意,可以使用诸如现场可编程门阵列(FPGA)的可重配置元件来安装图16所示的压缩单元56、图30所示的压缩单元57和图33所示的压缩单元58。在这种情况下,其上安装有压缩单元的传感器SoC包括FPGA。可以通过在每次重置要在压缩单元中使用的参数等时重新配置逻辑来实现压缩单元56、57和58中的任何一个或更多个。由此,可以使用公共传感器SoC 20来改变压缩率、每个操作周期要提取的特征数据的数目等。
如上所述,在图30至图33所示的实施方式中,可以获得与图1至图9和图16至图28所示的实施方式中的效果类似的效果。此外,在图30至图33所示的实施方式中,即使在传感器SoC的数目增加并且要用于推理的特征数据的大小增加的情况下,也可以使到边缘SoC63的数据传送量恒定,并且可以抑制边缘SoC 63中的运算量的增加。因此,可以抑制多模态DNN推理处理的执行效率的降低。此外,可以传送具有符合边缘SoC63的运算核82的架构的最佳大小的特征数据,并且可以优化推理处理的执行效率,并且可以使推理处理的执行时间恒定。
图34示出了根据另一实施方式的信息处理设备的示例。与图16中的元件类似的元件由相同的附图标记表示,并且省略详细描述。图34中所示的信息处理设备106包括压缩单元59而不是图16中所示的传感器SoC20A的压缩单元56,并且包括稀疏矩阵运算单元75而不是边缘SoC 63的稀疏矩阵运算单元74。信息处理设备106的其他配置与图16中所示的信息处理设备104的配置类似。信息处理设备106与图16中所示的信息处理设备104类似地执行多模态DNN推理处理。
压缩单元59与图16中所示的压缩单元56的不同之处在于,比较针对每个子阵列输入的所有特征数据的绝对值,以及以绝对值的降序选择预定数目的特征数据。例如,压缩单元59不具有通常通过指定偏移号Y(=“0”)而选择的偏移。因此,稀疏矩阵运算单元75包括在不使用固定偏移的情况下来检测子阵列的边界的电路。
传感器SoC 20A通过压缩单元59压缩提取到的特征数据(FP32),并将特征数据传送至边缘SoC 63。传感器SoC 20B在不对提取到的特征数据(FP32)进行压缩的情况下向边缘SoC 63传送特征数据。传感器SoC20A和SoC 20B的特征数据的大小与图17中的类似。
图35示出了图34中的压缩单元59的示例。压缩单元59包括数据排序电路561而不是图18中的压缩单元56的数据排序电路560,并且包括偏移排序电路571而不是图18中的压缩单元56的偏移排序电路570。
图36示出了图35中的数据排序电路561的示例。省略了与图19中所示的数据排序电路560的配置类似的配置的详细描述。在数据排序电路561中,三个比较电路563被添加至图19所示的数据排序电路560。比较电路563的配置与比较电路562的配置相同,并且比较电路563的操作与图20中所示的比较电路562的操作相同。
数据排序电路561一次比较要输入的所有特征数据(din0-din7)中的两个绝对值的大小,并且将具有较大绝对值的四条特征数据作为排序数据sd0-sd3与偏移Soft0-Soft3一起输出。由于比较了所有特征数据(din0-din7)的绝对值,因此数据排序电路561的电路规模大于图19所示的数据排序电路560的电路规模。
图37示出了图35中的偏移排序电路571的示例。省略了与图21中所示的偏移排序电路570的配置类似的配置的详细描述。在偏移排序电路571中,两个比较电路573被添加至图21中所示的偏移排序电路571中。比较电路573的配置与比较电路572的配置相同,并且比较电路573的操作与图22中示出的比较电路572的操作相同。
偏移排序电路571一次比较所有输入偏移soft0-soft3中的两个值的大小,并且以偏移tmpoft的值的升序输出排序数据tmpd0-tmpd3。由于比较了所有偏移soft0-soft3的值,因此偏移排序电路571的电路规模大于图21中所示的偏移排序电路570的电路规模。
图38示出了由图35中的压缩单元59进行的压缩操作的示例。省略了与图23中的操作类似的操作的详细描述。图38示出了其中与图23类似地将14个元素(特征数据)压缩成8个元素的示例。
压缩单元59从子阵列中的8条特征数据中选择具有较大绝对值的4条特征数据。然后,压缩单元59以偏移的升序重新排列针对每个阵列选择的4条特征数据,以获得经压缩的特征数据。因此,在第一子阵列中,未选择在图23中被选择的选择索引x[0]的特征数据,而选择了在图23中未被选择的索引x[3]的特征数据。在第二子阵列中,由于索引x[8]的特征数据的绝对值大于其他特征数据的绝对值,所以执行与图23所示的操作相同的操作。
图39示出了由图35的压缩单元59进行的压缩操作的操作流的示例。省略了与图24中的操作类似的操作的详细描述。压缩单元59的操作流与图24中的操作流类似,除了执行步骤S30A而不是图24中的步骤S30以及执行步骤S362A而不是图24中的步骤S362以外。
步骤S30A类似于图24中所示的步骤S30,除了没有设置与通常选择的特征数据相对应的偏移号Y以外。在步骤S362A中,压缩单元59以绝对值的降序从S条特征数据中选择D条特征数据。
图40A示出了图34中的稀疏矩阵运算单元75的示例。与图25中的元件类似的元件由相同的附图标记表示,并且省略详细描述。稀疏矩阵运算单元75包括比较电路751和752、加法器753和选择器754而不是图25中所示的稀疏矩阵运算单元74的或非门742。稀疏矩阵运算单元75的其他配置与图25中所示的稀疏矩阵运算单元74的配置类似。
连接至比较电路751和752的输入的锁存器输出3位变量k,并且每四个时钟周期将变量k初始化为“0”。比较电路751在变量k为“0”的情况下输出逻辑1,以及在变量k为除“0”以外的值的情况下输出逻辑0。比较电路752在变量k为“3”时输出逻辑1,以及在变量k为除“3”以外的值时输出逻辑0。
比较电路752、加法器753和选择器754作为计数器操作,该计数器在变量k为除“3”以外的值时使变量k递增,以及在变量k为“3”时将变量k重置为“0”。由此,可以在不使用偏移=“0”的情况下针对包括四个元素的经压缩的子阵列的每个边界使变量j递增。
图40B示出了由图40A中的稀疏矩阵运算单元75进行的解码操作的操作流的示例。省略了与图28中的操作类似的操作的详细描述。稀疏矩阵运算单元75的操作流类似于图28中的操作流,除了执行步骤S44A而不是图28中的步骤S44、执行步骤S462A而不是图28中的步骤S462以及在图28中的步骤S463之后添加步骤S464A以外。例如,在步骤S46中,稀疏矩阵运算单元75针对每个操作周期执行步骤S461、S462A、S463和S464A以对L条特征数据进行解码。
在步骤S44A中,将变量k初始化为“0”的操作被添加至图28中的步骤S44。在步骤S462A中,稀疏矩阵运算单元75在变量k为“0”的情况下使变量j递增。例如,稀疏矩阵运算单元75在每次检测到子阵列的边界时使变量j递增。在步骤S464A中,稀疏矩阵运算单元75在变量k为“D-1”的情况下将变量k重置为“0”,以及在变量k为除“D-1”以外的值的情况下使变量k递增。然后,通过重复步骤S461至S464A,对所有子阵列中的特征数据进行解码。
如上所述,在图34至图40B所示的实施方式中,可以获得与图1至图9和图16至图33所示的实施方式中的效果类似的效果。此外,在图34至图39所示的实施方式中,通常可以选择在传感器SoC20中提取的每个子元素的8条特征数据中的具有较大绝对值的4条特征数据。因此,与通常选择具有偏移号Y的特征数据的情况相比,可以提高识别处理F2的准确性。
图41示出了根据另一实施方式的信息处理设备的示例。与上面描述的实施方式中的元件和功能类似的元件和功能由相同的附图标记表示,并且省略详细描述。图41中所示的信息处理设备107包括安装在能够自动驾驶的车辆200上的图像传感器10A、麦克风10B、陀螺仪传感器10C、传感器SoC 20A、SoC 20B和SoC20C以及安装在服务器300上的边缘SoC66。例如,服务器300安装在数据中心中。注意,服务器300可以用作云计算机。信息处理设备107用作多模态DNN推理系统。车辆200是在道路上行驶的客车、卡车、公共汽车等,但是不限于此,只要车辆200在能够自动驾驶的环境中行驶即可。
车辆200和服务器300经由诸如无线通信的数据传送路径连接。例如,传感器SoC20A、SoC 20B和SoC 20C通过安装在车辆上的通信接口无线地连接至边缘SoC 66。图像传感器10A安装在车辆200的前部,麦克风10B设置在驾驶员座位附近。
传感器SoC 20A将由图像传感器10A捕获的车辆200周围的图像转换成可处理的图像数据(处理S1)。传感器SoC 20A提取经转换的图像数据的特征数据(处理C),并经由选择器77将提取的特征数据传送至边缘SoC 66(处理D1)。
传感器SoC 20B将由麦克风10B获取的用户例如驾驶员的语音转换成可处理的声音数据(处理S2)。传感器SoC 20B提取经转换的声音数据的特征数据(处理L),并经由选择器77将提取的特征数据传送至边缘SoC66(处理D1)。
传感器SoC 20C将由陀螺仪传感器10C获取的车辆加速度转换成可处理的加速度数据(处理S3),并且提取经转换的加速度数据的特征数据(处理F1)。此外,传感器SoC 20C包括压缩单元56,压缩单元56压缩特征数据,压缩提取的特征数据(压缩处理),并且经由选择器77将经压缩的特征数据传送至边缘SoC 66(处理D3)。
传感器SoC 20A的配置类似于图4中的配置,并且传感器SoC 20B的配置类似于图5中的配置。传感器SoC 20C的配置类似于图6中的传感器SoC 20C的配置,除了压缩单元56连接至总线21C以外。此外,由传感器SoC 20A、SoC 20B和SoC 20C以及边缘SoC 66进行的处理类似于由图3中所示的多模态DNN推理系统进行的处理,除了要处理的数据的数据类型不同,以及包括类型转换处理、压缩处理和解码处理以外。
边缘SoC 66包括类型转换单元72、解码电路76以及执行识别处理F2和处理A(应用)的运算核83(未示出)。类型转换单元72将从传感器SoC 20A和SoC 20B传送的特征数据(FP16)转换为FP32。解码电路76对从传感器SoC 20C传送的经压缩的特征数据(FP32)进行解码。例如,解码电路76包括图25中所示的队列741、或非门742、加法器743、选择器744、乘法器745和加法器746。注意,除运算核83以外,边缘SoC 66还可以包括图25中所示的稀疏矩阵运算单元74,并且通过稀疏矩阵运算单元74执行处理F2的一部分以及对从加速度数据提取并压缩的特征数据执行解码处理。
图41中的信息处理设备107基于由乘坐在车辆200上的用户发出的语音指令来执行与指令相对应的操作。在下文中,作为示例,将描述用户指示“在携带手提箱的人的前面停止”的情况。
接收到带有语音的指令的信息处理设备107执行从由图像传感器10A捕获的图像数据中检测与用户利用语音指示的内容匹配的人员P的处理(对象检测)。通过不仅使用图像数据而且使用声音数据,可以利用语音来指示要检测的对象(人员P)。此外,信息处理设备107可以在通过使用由陀螺仪传感器10C获取的加速度数据来校正由车辆200的抖动等引起的图像数据的模糊的同时执行检测处理。
边缘SoC 66基于从图像数据和加速度数据中提取的特征数据执行识别处理F2,从而根据图像数据检测由用户利用语音指示的人员P并且指定人员P的位置。然后,边缘SoC66基于识别处理F2的执行结果执行处理A,并且基于指定的人员P的位置将指示车辆200将要停止的位置的信息指示给车辆200。到车辆200的指示可以仅是用于使车辆停止的位置信息,或者可以包括到控制车辆200的加速器、制动器、转向等的控制单元的指示。从服务器300接收到指令的车辆200根据指令执行例如将车辆200开到道路一侧并将车辆200停在用户利用语音指示的人员P所在的位置处的控制。
注意,假定车辆200在机场等中行驶,并且车辆200旨在停在携带手提箱的多个人中的穿着蓝色格子外套的人员P的前方。在这种情况下,例如,用户可以通过指示“在穿着蓝色格子外套并携带手提箱的人的前方停止”而使车辆200在人员P所在的地方停止。例如,在本实施方式的多模态DNN推理系统中,用户可以通过使用麦克风10B指示任意特性来将车辆200停在具有所指示的特性的人员P的前方。此外,通过指定建筑物的形状或颜色的特性、标志牌的特性等,车辆200可以在该建筑物或任意地点处停止。
图42A至图42C是示出在图41中的信息处理设备107通过多模态DNN执行推理处理的情况下的操作流的示例的图。例如,图42A至图42C示出了控制信息处理设备107的方法的示例。省略了与图7A至图7C、图13A和图13B中的操作类似的操作的详细描述。当用户通过语音指示对象(例如,图41中所示的人员P)的特性和操作时,开始多模态DNN推理处理。在从用户接收到指令之后,重复执行图42A至图42C中所示的操作,直到完成推理处理(例如,直到车辆200停止在人员P所在的位置处)。
传感器SoC 20A和SoC 20B的操作类似于图7A至图7C、图13A和图13B中所示的传感器SoC 20A和SoC 20B的操作。传感器SoC 20C的操作与图7A至图7C所示的传感器SoC 20C的操作类似,除了在步骤S302中提取特征数据之后在步骤S303中执行由压缩单元56进行的压缩处理以外。
在步骤S412中,边缘SoC 66通过类型转换单元72执行将从传感器SoC 20A接收的图像的特征数据(FP16)转换为FP32的操作。此外,在步骤S413中,边缘SoC 66执行将从传感器SoC 20B接收的声音的特征数据(FP16)转换为FP32的操作。此外,在步骤S414中,边缘SoC66通过解码电路76执行对从传感器SoC 20C接收的加速度的特征数据(压缩后的数据)进行解码的操作。边缘SoC 66的其他操作类似于图7A至图7C中的边缘SoC 60的操作。然后,在处理F2中,边缘SoC 66使用特征数据作为输入来执行识别处理,并且检测用户利用语音指示的人员P作为识别处理的结果。在处理A中,边缘SoC 66基于处理F2的结果执行将车辆200开到道路一侧并且然后将车辆200停在用户利用语音指示的人员P的位置处的控制。
注意,传感器SoC 20A和SoC 20B中的一个或两个可以包括压缩特征数据的压缩单元。在这种情况下,解码电路76不仅对由传感器SoC 20C压缩的特征数据进行解码,而且对由传感器SoC 20A或传感器SoC 20B压缩的特征数据进行解码。此外,边缘SoC 66的类型转换单元72可以转换从传感器SoC 20C传送的特征数据的类型。
如上所述,在图41至图42C所示的实施方式中,可以获得与图1至图40B所示的实施方式中的效果类似的效果。此外,在图41至42C所示的实施方式中,可以通过将传感器SoC20A、SoC 20B和SoC 20C安装在车辆200中并与服务器300进行无线通信来实现多模态DNN推理系统。由于可以减少安装在车辆200上的部件的数目,所以可以减少车辆200的成本。例如,在开发更高清晰度图像传感器的情况下,可以通过仅替换传感器SoC 20A来构造具有提高的识别准确性的多模态DNN推理系统。此外,在改变边缘SoC 66的规范的情况下,数据中心中的服务器300的版本的升级是足够的,并且不需要改变车辆200。在边缘SoC 66的处理能力足够的情况下,可以并行地执行针对多个车辆200的处理。
图43示出了根据另一实施方式的信息处理设备的示例。与上面描述的实施方式中的元件和功能类似的元件和功能由相同的附图标记表示,并且省略详细描述。图43中所示的信息处理设备108包括并入到诸如智能电话的移动终端400中的传感器SoC 20D和SoC20E以及边缘SoC 67,并且用作多模态DNN推理系统。移动终端400包括加速度传感器10D和诸如无线局域网(LAN)的无线通信模块10E。加速度传感器10D测量施加至移动终端400的加速度。测量的加速度数据被转换为可由传感器SoC20D处理的数据(处理S2)。无线通信模块10E与设置在诸如商店的室内的多个无线接入点500通信,并测量无线接入点500的无线信号的强度(下文中称为信号强度)。测量的强度数据被转换成可由传感器SoC 20E处理的数据(处理S3)。
传感器SoC 20D具有LSTM块,该LSTM块对通过加速度传感器10D进行的测量而获得的加速度数据执行利用LSTM的处理L1,并且从加速度数据提取特征数据。传感器SoC 20D执行用于将提取的特征数据传送至边缘SoC67的处理D2。
传感器SoC 20E通过对从无线通信模块10E获得的、指示多个无线接入点的信号强度的强度数据执行利用全连接层的处理F1来从强度数据中提取特征数据。传感器SoC 20E执行用于将提取的特征数据传送至边缘SoC 67的处理D3。
边缘SoC 67基于从传感器SoC 20D和SoC 20E传送的提取的特征数据执行识别处理F2,并基于识别结果执行处理A(应用)。在识别处理F2中,根据基于加速度传感器10D的操作的特征数据和基于无线通信模块10E的操作的特征数据来估计移动终端400的位置。在处理A中,边缘SoC 67基于移动终端400在商店中的估计位置向移动终端400呈现关于用户周围存在的产品的信息。
近来,诸如智能电话的移动终端400具有内置的全球定位系统(GPS)接收器,并且可以通过获取GPS无线电波来检测移动终端400的位置。然而,在GPS无线电波不能到达的室内可能不能检测到位置。在本实施方式中,即使在GPS无线电波不能到达的室内,也可以基于加速度数据和无线信号强度来估计移动终端400的位置。由此,可以基于指示用户在商店中的位置信息来提供诸如推荐购买商品的各种服务。
通过使用加速度数据和信号强度两者,可以以比仅使用加速度数据和信号强度之一的情况更高的准确性来估计位置信息。此外,可以在不添加除移动终端400和接入点500以外的设备的情况下以高准确性估计位置信息。
注意,传感器SoC 20D和SoC 20E之一或两者可以包括压缩特征数据的压缩单元。在这种情况下,边缘SoC 67包括对压缩后的特征数据进行解码的解码电路。压缩单元和解码电路的配置、功能和操作类似于图18至图28、图32、图33和图35至图40A中所示的配置、功能和操作。此外,边缘SoC 67可以包括用于转换从传感器SoC 20D和SoC 20E之一或两者传送的特征数据的数据类型的类型转换单元。类型转换单元的配置和功能类似于图11和图12中所示的配置和功能。如上所述,在图43所示的实施方式中,可以获得与图1至图40B所示的实施方式中的效果类似的效果。
图44示出了根据另一实施方式的信息处理设备的示例。与上面描述的实施方式中的元件和功能类似的元件和功能由相同的附图标记表示,并且省略详细描述。图44所示的信息处理设备109由设置在田地、果园、温室等中的多个无线终端600实现。每个无线终端600包括传感器SoC20F、SoC 20G和SoC 20H以及边缘SoC 68,并且用作多模态DNN推理系统。
每个无线终端600由内置在无线终端600中的电池操作,并且包括多个传感器例如温度传感器10F、湿度传感器11F、太阳能电池模块10G和电池燃料计10H。每个无线终端600与设置在室内的主机终端700进行无线通信,并且将指示测量的温度和湿度的信息传送至主机终端700。
主机终端700将传送的温度和湿度显示在显示装置上,监视温度和湿度,并且在温度和湿度异常的情况下输出警报等。通过在显示装置上数字化并显示多个位置处的环境信息例如温度和湿度,可以便于农作物生长管理等。此外,在无线终端600设置在温室中的情况下,主机终端700基于所传送的温度和湿度信息来执行温室窗户的打开/关闭、通风扇的操作、空调的控制等。因此,信息处理设备109可以实现所谓的智能农业。
温度传感器10F测量无线终端600周围的温度,以及湿度传感器11F测量无线终端600周围的湿度。测量的温度和湿度被转换成可由传感器SoC 20F处理的数据(处理S1)。太阳能电池模块10G接受太阳光以生成电力,将生成的电力供应至电池,并生成指示当前输出电压的电压信息。电压信息被转换成可由传感器SoC 20G处理的数据(处理S2)。电池燃料计10H测量电池电力的剩余量。测量的电池电力的剩余量被转换成可由传感器SoC 20H处理的数据(处理S3)。
传感器SoC 20F具有LSTM块,该LSTM块对通过温度传感器10F进行的测量而获得的温度数据和通过湿度传感器11F进行的测量而获得的湿度数据执行利用LSTM的处理L1,并且从温度数据和湿度数据提取特征数据。传感器SoC 20F执行处理D1,以将提取的特征数据传送至边缘SoC 68。
传感器SoC 20G具有LSTM块,该LSTM块对由太阳能电池模块10G输出的输出电压数据执行利用LSTM的处理L2,并且从输出电压数据提取特征数据。传感器SoC 20G执行处理D2,以将提取的特征数据传送至边缘SoC 68。
传感器SoC 20H通过对剩余量数据执行利用全连接层的处理F2从由电池燃料计10H输出的剩余量数据中提取特征数据。传感器SoC 20H执行处理D3,以将提取的特征数据传送至边缘SoC 68。
边缘SoC 68基于从传感器SoC 20F、SoC 20G和SoC 20H传送的特征数据执行识别处理F3,并且基于识别结果执行处理A(应用)。在识别处理F3中,边缘SoC 68基于来自传感器SoC 20F的温度和湿度的特征数据来确定测量的温度和湿度的重要性。例如,在温度和湿度中的一个或两者从先前测量的值变化预定量或更多的情况下,重要性被确定为高。此外,在识别处理F3中,边缘SoC 68基于来自太阳能电池模块10G的输出电压的特征数据和来自电池燃料测量计10H的剩余量数据的特征数据来估计电池的持续时间。
在处理A中,边缘SoC 68随着温度和湿度的重要性变得越高而使感测间隔和与主机终端700的通信间隔越短,以及随着温度和湿度的重要性变得越低而使感测间隔和与主机终端700的通信间隔越长。此外,边缘SoC 68随着电池的持续时间的估计值变得越长而使感测间隔和与主机终端700的通信间隔越短,并且随着电池的持续时间的估计值变得越短而使感测间隔和与主机终端700的通信间隔越长。实际上,基于温度和湿度的重要性以及电池的持续时间的估计值的组合来调整感测间隔和与主机终端700的通信间隔。
近来,期望以成本降低的传感器元件和具有无线功能的集成电路(IC)来实现无线传感器网络。无线传感器网络是一种使得包括传感器的大量无线终端能够以分布方式布置在宽范围内并且能够在宽范围内进行感测的技术,并且被认为是物联网(IoT)的核心技术之一。与通过有线方式连接包括传感器的终端的传感器网络相比,无线传感器网络可以节省安装工作并且易于扩展感测范围。
但是,由于具有传感器的无线终端利用从电池和太阳能电池提供的电力来操作,所以操作时间比经由电力线恒定地提供电力的终端短。在本实施方式中,通过根据温度和湿度的重要性以及电池剩余量来改变感测的频率和无线通信的频率,可以延长无线终端600的操作时间。因此,可以节省无线传感器网络的操作工作并降低操作成本。
注意,传感器SoC 20F、SoC 20G和SoC 20H中的一个或更多个可以包括压缩特征数据的压缩单元。在这种情况下,边缘SoC 68包括对压缩后的特征数据进行解码的解码电路。压缩单元和解码电路的配置、功能和操作类似于图18至图28、图32、图33和图35至图40A中所示的配置、功能和操作。此外,边缘SoC 68可以包括转换从传感器SoC 20F、SoC 20G和SoC20H中的一个或更多个传送的特征数据的数据类型的类型转换单元。类型转换单元的配置和功能类似于图11和图12中所示的配置和功能。如上所述,在图44所示的实施方式中,可以获得与图1至图40B所示的实施方式中的效果类似的效果。
注意,上面描述的实施方式中描述的传感器SoC可以安装在单板计算机、PCI卡或诸如智能电话或游戏机的移动终端上。此外,上面描述的实施方式中描述的边缘SoC可以安装在单板计算机、台式个人计算机、设置在数据中心中的服务器等上。此外,传感器SoC与边缘SoC之间的通信可以是有线通信或无线通信。有线通信的示例包括PCIe、IEEE802.3、InfiniBand等,无线通信的示例包括诸如IEEE802.11、Bluetooth(注册商标)、Zigbee(注册商标)、3G、4G等的移动通信标准。
除了上面描述的实施方式中使用的传感器以外,连接至传感器SoC的传感器的示例包括振动传感器、气压传感器、压力传感器、照度传感器、地磁传感器、激光测距仪(范围传感器)等。
作为包括传感器SoC和边缘SoC的信息处理设备(例如,多模态DNN推理系统),存在以下配置示例。
(1)使用移动通信标准连接配备有传感器SoC的单板计算机和设置在数据中心中的配备有边缘SoC的服务器。
(2)配备有传感器SoC的PCI卡附接至台式个人计算机的PCI插槽。在该示例中的边缘SoC由台式个人计算机的CPU来实现。
(3)使用通用串行总线(USB)连接配备有传感器SoC的单板计算机和配备有边缘SoC的单板计算机。(4)传感器SoC和边缘SoC安装在诸如单板计算机的板上。传感器SoC和边缘SoC通过布线在该板上的PCI Express总线连接。
根据以上详细描述,实施方式的特性和优点将变得明显。这旨在不脱离权利要求的精神和范围的情况下覆盖上面描述的实施方式的特征和优点。此外,本领域的任何普通技术人员可以容易地提出各种改进和修改。因此,不旨在将本发明实施方式的范围限制于上面描述的内容,并且本发明实施方式的范围可以依赖于包括在实施方式中公开的范围中的适当改进和等同范围。

Claims (14)

1.一种信息处理设备,包括:
第一预处理运算装置,其被配置成对来自第一传感器的模拟数据执行预处理;以及
第一后处理运算装置,其连接至所述第一预处理运算装置,所述第一后处理运算装置被配置成对由所述第一预处理运算装置输出的第一预处理数据执行后处理,其中,
所述第一预处理运算装置包括
第一转换单元,其被配置成从所述第一传感器接收模拟数据并将所述模拟数据转换成数字数据,
第一预处理运算单元,其被配置成基于对所述数字数据的特征提取处理的执行结果输出特征数据,以及
第一输出单元,其被配置成输出所述特征数据,以及
所述第一后处理运算装置包括
第一输入单元,其被配置成输入所述特征数据,
第一存储单元,其被配置成存储所述特征数据,以及
第一后处理运算单元,其被配置成基于对所述特征数据的识别处理的执行结果使所述第一存储单元存储识别结果数据。
2.根据权利要求1所述的信息处理设备,其中,
在所述第一预处理运算装置中,
所述第一传感器是图像传感器,
所述第一转换单元从所述图像传感器接收模拟图像数据,并将所述模拟图像数据转换成数字图像数据,以及
所述第一预处理运算单元基于对所述数字图像数据的特征提取处理的执行结果输出图像特征数据,以及
在所述第一后处理运算装置中,
所述第一输入单元输入所述图像特征数据,
所述第一存储单元存储所述图像特征数据,以及
所述第一后处理运算单元基于对所述图像特征数据的识别处理的执行结果使所述第一存储单元存储图像识别结果数据。
3.根据权利要求1所述的信息处理设备,其中,
在所述第一预处理运算装置中,
所述第一传感器是声音传感器,
所述第一转换单元从所述声音传感器接收模拟声音数据,并将所述模拟声音数据转换成数字声音数据,以及
所述第一预处理运算单元基于对所述数字声音数据的特征提取处理的执行结果输出声音特征数据,以及
在所述第一后处理运算装置中,
所述第一输入单元输入所述声音特征数据,
所述第一存储单元存储所述声音特征数据,以及
所述第一后处理运算单元基于对所述声音特征数据的识别处理的执行结果使所述第一存储单元存储声音识别结果数据。
4.根据权利要求1所述的信息处理设备,其中,
在所述第一预处理运算装置中,
所述第一传感器是运动传感器,
所述第一转换单元从所述运动传感器接收模拟运动数据,并将所述模拟运动数据转换成数字运动数据,以及
所述第一预处理运算单元基于对所述数字运动数据的特征提取处理的执行结果输出运动特征数据,以及
在所述第一后处理运算装置中,
所述第一输入单元输入所述运动特征数据,
所述第一存储单元存储所述运动特征数据,以及
所述第一后处理运算单元基于对所述运动特征数据的识别处理的执行结果使所述第一存储单元存储运动识别结果数据。
5.根据权利要求2所述的信息处理设备,其中,
所述第一后处理运算装置还连接至被配置成处理声音数据的第二预处理运算装置和被配置成处理模拟运动数据的第三预处理运算装置,
所述第二预处理运算装置包括
第二转换单元,其被配置成从声音传感器接收模拟声音数据,并将所述模拟声音数据转换成数字声音数据,以及
第二预处理运算单元,其被配置成基于对所述数字声音数据的特征提取处理的执行结果输出声音特征数据,
所述第三预处理运算装置包括
第三转换单元,其被配置成从运动传感器接收模拟运动数据,并将所述模拟运动数据转换成数字运动数据,以及
第三预处理运算单元,其被配置成基于对所述数字运动数据的特征提取处理的执行结果输出运动特征数据,以及
在所述第一后处理运算装置中,
所述第一输入单元输入所述图像特征数据、所述声音特征数据和所述运动特征数据,
所述第一存储单元存储所述图像特征数据、所述声音特征数据和所述运动特征数据,以及
所述第一后处理运算单元基于对所述图像特征数据、所述声音特征数据和所述运动特征数据的识别处理的相应执行结果使所述第一存储单元存储图像识别结果数据、声音识别结果数据和运动识别结果数据。
6.根据权利要求1所述的信息处理设备,其中,
所述第一后处理运算装置还包括
第一后处理转换单元,其被配置成将第一数据类型特征数据转换成第二数据类型特征数据,以及
第二后处理转换单元,其被配置成将所述第二数据类型特征数据转换成第三数据类型特征数据,以及
在所述第一后处理运算装置中,
所述第一后处理转换单元将来自所述第一输入单元的所述第一数据类型特征数据转换成所述第二数据类型特征数据,并使所述第一存储单元存储所述第二数据类型特征数据,
所述第一后处理运算单元基于对存储在所述第一存储单元中的所述第二数据类型特征数据的归一化处理的执行结果使所述第一存储单元存储第二数据类型归一化特征数据,
所述第二后处理转换单元将存储在所述第一存储单元中的所述第二数据类型归一化特征数据转换成第三数据类型归一化特征数据,并使所述第一存储单元存储所述第三数据类型归一化特征数据,以及
所述第一后处理运算单元基于对存储在所述第一存储单元中的所述第三数据类型归一化特征数据的识别处理的执行结果使所述第一存储单元存储识别结果数据。
7.根据权利要求1所述的信息处理设备,还包括:
第二后处理运算装置,其连接至所述第一后处理运算装置,其中,
所述第一后处理运算装置还包括
第一后处理转换单元,其被配置成将第一数据类型特征数据转换成第二数据类型特征数据,以及
第二后处理转换单元,其被配置成将所述第二数据类型特征数据转换成第三数据类型特征数据,
在所述第一后处理运算装置中,
所述第一后处理转换单元将来自所述第一输入单元的所述第一数据类型特征数据转换成所述第二数据类型特征数据,并使所述第一存储单元存储所述第二数据类型特征数据,
所述第一后处理运算单元基于对存储在所述第一存储单元中的所述第二数据类型特征数据的归一化处理的执行结果使所述第一存储单元存储第二数据类型归一化特征数据,
所述第二后处理转换单元将存储在所述第一存储单元中的所述第二数据类型归一化特征数据转换成第三数据类型归一化特征数据,并输出所述第三数据类型归一化特征数据,以及
所述第二后处理运算装置包括
第二输入单元,其被配置成输入所述第三数据类型归一化特征数据,
第二存储单元,其被配置成存储所述第三数据类型归一化特征数据,以及
第二后处理运算单元,其被配置成基于对所述第三数据类型归一化特征数据的识别处理的执行结果使所述第二存储单元存储识别结果数据。
8.根据权利要求6或7所述的信息处理设备,其中,
所述第一预处理运算单元经由所述第一输出单元将指示特征数据的数据类型的转换规范的第一规范信息连同所述特征数据一起输出至所述第一后处理运算装置,
所述第一后处理转换单元基于所述第一规范信息来转换所述特征数据的数据类型,
所述第一后处理运算单元生成指示归一化特征数据的数据类型的转换规范的第二规范信息以及所述归一化特征数据,以及
所述第二后处理转换单元基于所述第二规范信息来转换所述特征数据的数据类型。
9.根据权利要求1所述的信息处理设备,其中,
所述第一预处理运算装置还包括
第一压缩单元,其被配置成将所述特征数据压缩成经压缩的特征数据,
所述第一后处理运算装置还包括
稀疏矩阵运算单元,其被配置成对所述经压缩的特征数据执行解码处理和识别处理,
在所述第一预处理运算装置中,
所述第一压缩单元将所述特征数据压缩成经压缩的特征数据,以及
在所述第一后处理运算装置中,
所述第一存储单元存储所述经压缩的特征数据,以及
所述稀疏矩阵运算单元基于对通过对存储在所述第一存储单元中的所述经压缩的特征数据进行解码得到的经解码的特征数据的识别处理的执行结果使所述第一存储单元存储识别结果数据。
10.根据权利要求9所述的信息处理设备,其中,
所述第一压缩单元从多条特征数据中选择预定数目的具有比其他特征数据大的绝对值的特征数据作为经压缩的特征数据,并且将所述经压缩的特征数据连同指示压缩前的特征数据的阵列顺序的阵列信息一起输出至所述第一后处理运算装置,
所述第一存储单元存储与所述特征数据的所述阵列顺序相对应的要与所述特征数据一起计算的变量,以及
所述稀疏矩阵运算单元从所述第一存储单元读取包括在所述经压缩的特征数据中的要与所述特征数据一起计算的所述变量,并且基于所述阵列信息执行识别处理。
11.根据权利要求10所述的信息处理设备,其中,
所述经压缩的特征数据中包括的每个特征数据都是浮点数数据,以及
所述第一压缩单元利用所述阵列信息替换包括在所述经压缩的特征数据中的每个特征数据的尾数部分的低位。
12.根据权利要求10或11所述的信息处理设备,其中,
所述第一压缩单元通常从预定数目的特征数据的阵列中选择预定位置处的特征数据,所述预定数目为压缩的单位,以及
所述稀疏矩阵运算单元基于与所述预定位置处的特征数据相对应的阵列信息来确定特征数据的阵列的重复。
13.一种运算处理装置,其连接至预处理运算装置,所述预处理运算装置包括:转换单元,其被配置成从传感器接收模拟数据并将所述模拟数据转换成数字数据;预处理运算单元,其被配置成基于对所述数字数据的特征提取处理的执行结果输出特征数据;以及输出单元,其被配置成输出所述特征数据,所述预处理运算装置被配置成对由所述预处理运算装置输出的预处理数据执行后处理,所述运算处理装置包括:
输入单元,其被配置成输入所述特征数据;
存储单元,其被配置成存储所述特征数据;以及
后处理运算单元,其被配置成基于对所述特征数据的识别处理的执行结果使所述存储单元存储识别结果数据。
14.一种控制信息处理设备的方法,所述信息处理设备包括:预处理运算装置,其被配置成对来自传感器的模拟数据执行预处理;以及后处理运算装置,其连接至所述预处理运算装置,所述后处理运算装置被配置成对由所述预处理运算装置输出的第一预处理数据执行后处理,所述方法包括:
通过所述预处理运算装置中包括的转换单元从所述传感器接收模拟数据并将所述模拟数据转换成数字数据;
通过所述预处理运算装置中包括的预处理运算单元基于对所述数字数据的特征提取处理的执行结果输出特征数据;
通过所述预处理运算装置中包括的输出单元输出所述特征数据;
通过所述后处理运算装置中包括的输入单元输入所述特征数据;
通过所述后处理运算装置中包括的存储单元存储所述特征数据;以及
通过所述后处理运算装置中包括的后处理运算单元基于对所述特征数据的识别处理的执行结果使所述存储单元存储识别结果数据。
CN202010080583.9A 2019-02-08 2020-02-05 信息处理设备、运算处理装置和控制信息处理设备的方法 Active CN111553460B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019021938A JP7225876B2 (ja) 2019-02-08 2019-02-08 情報処理装置、演算処理装置および情報処理装置の制御方法
JP2019-021938 2019-02-08

Publications (2)

Publication Number Publication Date
CN111553460A true CN111553460A (zh) 2020-08-18
CN111553460B CN111553460B (zh) 2023-12-05

Family

ID=69172668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010080583.9A Active CN111553460B (zh) 2019-02-08 2020-02-05 信息处理设备、运算处理装置和控制信息处理设备的方法

Country Status (4)

Country Link
US (1) US11756289B2 (zh)
EP (1) EP3702959A3 (zh)
JP (1) JP7225876B2 (zh)
CN (1) CN111553460B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200380388A1 (en) * 2019-05-31 2020-12-03 Hitachi, Ltd. Predictive maintenance system for equipment with sparse sensor measurements

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003988A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于执行卷积运算的存储设备和方法
CN108292368A (zh) * 2015-11-17 2018-07-17 索尼公司 信息处理装置、信息处理方法和程序
CN108805089A (zh) * 2018-06-14 2018-11-13 南京云思创智信息科技有限公司 基于多模态的情绪识别方法
CN108899050A (zh) * 2018-06-14 2018-11-27 南京云思创智信息科技有限公司 基于多模态情绪识别系统的语音信号分析子系统

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394688A (en) * 1981-08-25 1983-07-19 Hamamatsu Systems, Inc. Video system having an adjustable digital gamma correction for contrast enhancement
US4688095A (en) * 1986-02-07 1987-08-18 Image Technology Incorporated Programmable image-transformation system
JP3009149B2 (ja) * 1988-09-22 2000-02-14 株式会社日立製作所 パターンデータ処理装置及びプロセス計測情報処理装置及び画像処理装置及び画像認識装置
JPH0652317A (ja) * 1992-08-04 1994-02-25 Fuji Electric Co Ltd パターン認識装置
JP2788431B2 (ja) * 1995-09-18 1998-08-20 防衛庁技術研究本部長 地中埋設物の種類の識別装置
KR0169376B1 (ko) * 1995-10-10 1999-03-20 김광호 멀티미디어 대응 가능한 씨씨디 카메라 시스템
JP2001083984A (ja) 1999-09-09 2001-03-30 Alpine Electronics Inc インタフェース装置
US6832194B1 (en) * 2000-10-26 2004-12-14 Sensory, Incorporated Audio recognition peripheral system
JP2006203900A (ja) 2002-07-16 2006-08-03 Advanced Media Inc 音声認識サーバ及び音声認識システム
JP2004064433A (ja) 2002-07-29 2004-02-26 Seiko Epson Corp 機器操作システム及び機器操作プログラム、並びに機器操作方法
EP1443498B1 (en) * 2003-01-24 2008-03-19 Sony Ericsson Mobile Communications AB Noise reduction and audio-visual speech activity detection
US20050069153A1 (en) * 2003-09-26 2005-03-31 Hall David S. Adjustable speaker systems and methods
JP2005141591A (ja) 2003-11-07 2005-06-02 Matsushita Electric Works Ltd 品質評価装置、製品評価システム
JP4834295B2 (ja) * 2004-01-09 2011-12-14 株式会社東芝 映像表示装置および映像表示方法
JP4546157B2 (ja) 2004-06-03 2010-09-15 キヤノン株式会社 情報処理方法、情報処理装置、撮像装置
US7809567B2 (en) * 2004-07-23 2010-10-05 Microsoft Corporation Speech recognition application or server using iterative recognition constraints
EP2043519B1 (en) * 2006-07-21 2016-05-25 The Curators Of The University Of Missouri Lameness evaluation system
KR100897553B1 (ko) * 2007-01-04 2009-05-15 삼성전자주식회사 사용자의 기기 사용 패턴을 이용한 음성 인식 방법 및 장치
US20130057394A1 (en) * 2010-05-13 2013-03-07 Nokia Corporation Method and Apparatus for Providing Context Sensing and Fusion
US9104473B2 (en) * 2012-03-30 2015-08-11 Altera Corporation Conversion and compression of floating-point and integer data
US9542933B2 (en) * 2013-03-08 2017-01-10 Analog Devices Global Microphone circuit assembly and system with speech recognition
KR102394485B1 (ko) * 2013-08-26 2022-05-06 삼성전자주식회사 음성 인식을 위한 전자 장치 및 방법
EP3172729B1 (en) * 2014-07-24 2022-04-20 Harman International Industries, Incorporated Text rule based multi-accent speech recognition with single acoustic model and automatic accent detection
US9672249B2 (en) * 2014-12-16 2017-06-06 Sap Se Comparing join values in database systems
US9990917B2 (en) * 2015-04-13 2018-06-05 Intel Corporation Method and system of random access compression of transducer data for automatic speech recognition decoding
JP6628350B2 (ja) * 2015-05-11 2020-01-08 国立研究開発法人情報通信研究機構 リカレント型ニューラルネットワークの学習方法及びそのためのコンピュータプログラム、並びに音声認識装置
JP5816771B1 (ja) * 2015-06-08 2015-11-18 株式会社Preferred Networks 学習装置ユニット
JP6778010B2 (ja) 2016-04-13 2020-10-28 キヤノン株式会社 画像識別システム、画像識別方法
JP6374466B2 (ja) 2016-11-11 2018-08-15 ファナック株式会社 センサインタフェース装置、測定情報通信システム、測定情報通信方法、及び測定情報通信プログラム
EP3340129B1 (en) 2016-12-21 2019-01-30 Axis AB Artificial neural network class-based pruning
CN108268947A (zh) 2016-12-30 2018-07-10 富士通株式会社 用于提高神经网络的处理速度的装置和方法及其应用
KR102428920B1 (ko) 2017-01-03 2022-08-04 삼성전자주식회사 전자 장치 및 그 동작 방법
CN207440765U (zh) 2017-01-04 2018-06-01 意法半导体股份有限公司 片上系统和移动计算设备
US20180350351A1 (en) * 2017-05-31 2018-12-06 Intel Corporation Feature extraction using neural network accelerator
KR102563752B1 (ko) * 2017-09-29 2023-08-04 삼성전자주식회사 뉴럴 네트워크를 위한 트레이닝 방법, 뉴럴 네트워크를 이용한 인식 방법 및 그 장치들
US10515296B2 (en) * 2017-11-14 2019-12-24 Adobe Inc. Font recognition by dynamically weighting multiple deep learning neural networks
US20190025773A1 (en) 2017-11-28 2019-01-24 Intel Corporation Deep learning-based real-time detection and correction of compromised sensors in autonomous machines
US11010670B2 (en) * 2018-08-27 2021-05-18 D5Ai Llc Building a deep neural network with diverse strata
US11461583B2 (en) * 2018-11-16 2022-10-04 Uatc, Llc Binary feature compression for autonomous devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003988A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于执行卷积运算的存储设备和方法
CN108292368A (zh) * 2015-11-17 2018-07-17 索尼公司 信息处理装置、信息处理方法和程序
CN108805089A (zh) * 2018-06-14 2018-11-13 南京云思创智信息科技有限公司 基于多模态的情绪识别方法
CN108899050A (zh) * 2018-06-14 2018-11-27 南京云思创智信息科技有限公司 基于多模态情绪识别系统的语音信号分析子系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VALENTIN RADU 等: "Multimodal Deep Learning for Activity and Context Recognition" *

Also Published As

Publication number Publication date
EP3702959A2 (en) 2020-09-02
CN111553460B (zh) 2023-12-05
JP2020129296A (ja) 2020-08-27
US11756289B2 (en) 2023-09-12
US20200257498A1 (en) 2020-08-13
JP7225876B2 (ja) 2023-02-21
EP3702959A3 (en) 2020-11-04

Similar Documents

Publication Publication Date Title
US11847550B2 (en) Sparse convolutional neural network accelerator
US11900256B2 (en) Deep learning system
KR102546996B1 (ko) 희소 볼륨 데이터를 사용한 연산들
US20200364552A1 (en) Quantization method of improving the model inference accuracy
US20180046906A1 (en) Sparse convolutional neural network accelerator
KR102335955B1 (ko) 컨볼루션 신경망 시스템 및 그것의 동작 방법
US20200167632A1 (en) Neural network device for neural network operation, method of operating neural network device, and application processor including the neural network device
KR102354722B1 (ko) 계산 장치 및 방법
US10373291B1 (en) Image transformation for machine learning
US20170091947A1 (en) Histogram-based image segmentation
US11756308B2 (en) Neural network device and method using a neural network for sensor fusion
CN111931917A (zh) 前向计算的实现方法及装置、存储介质、电子装置
US20200242468A1 (en) Neural network computation device, neural network computation method and related products
US10452955B2 (en) System and method for encoding data in an image/video recognition integrated circuit solution
CN111553460B (zh) 信息处理设备、运算处理装置和控制信息处理设备的方法
WO2023048824A1 (en) Methods, apparatus, and articles of manufacture to increase utilization of neural network (nn) accelerator circuitry for shallow layers of an nn by reformatting one or more tensors
Tomasi et al. FPGA–DSP co-processing for feature tracking in smart video sensors
CN113630375A (zh) 使用四叉树方法的参数的压缩设备及方法
KR20210124888A (ko) 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서
CN109740729B (zh) 运算方法、装置及相关产品
US11335045B2 (en) Combining feature maps in an artificial intelligence semiconductor solution
CN113495717A (zh) 神经网络装置、操作神经网络装置的方法和应用处理器
JP7189000B2 (ja) 情報処理装置、車載制御装置、車両制御システム
US20240013040A1 (en) Output drain path facilitating flexible schedule-based deep neural network accelerator
CN104025030B (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