CROSS-REFERENCE TO RELATED APPLICATION

This U.S. non-provisional patent application claims the benefit of priority under 35 U.S.C. § 119 to Korean Patent Application No. 10-2018-0146610, filed on Nov. 23, 2018 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.

BACKGROUND

1. Field of the Disclosure

The present disclosure relates to a neural network. More particularly, the present disclosure relates to a method and apparatus for processing a floating-point number through a neural network device which includes an integer operator.

2. Description of the Related Art

A neural network refers to a computational architecture that models a biological network that constitutes the brain of an animal. Recently, along with the development of neural network technology, research is being actively conducted into analyzing input data and extracting valid information by using a neural network device based on a neural network in various types of electronic systems.

A neural network device requires a large amount of operations for complex input data. A neural network device requires a technique for efficiently processing neural network operations to analyze inputs such as input data in real time and extract information therefrom. Particularly, a low-power and high-performance system, such as a smartphone, has limited resources, and thus techniques for maximizing the performance of an artificial neural network while reducing the amount of operations required to process complex input data are required.

Separately, floating-point numbers are used as a particular way of encoding numbers. A floating-point number may include a signed digit string of a given length in a given base and a signed integer exponent that modifies magnitude. The use of floating-point numbers provides an approximation of the underlying numbers in a way that trades off range and preciseness. That is, a floating-point number may support a wide range of values and may be suitable for representing an approximation of a real number. However, a floating-point number as a representation may present relative complexity compared to more familiar real numbers. For example, floating-point data may include a feature map, a kernel (a weight map), a bias, etc., and the nature of processing such floating-point data is not always optimal for a neural network device.

SUMMARY

The present disclosure describes a method and apparatus for processing a floating-point number of a neural network in a neural network device which includes an integer operator.

According to an aspect of the present disclosure, a neural network device for performing a neural network operation includes a direct memory access (DMA) controller, a data converter and a processor. The direct memory access controller is configured to receive floating-point data from a memory. The data converter is configured to convert the floating-point data received through the DMA controller to integer-type data. The processor is configured to perform a neural network operation based on an integer operation by using the integer-type data provided from the data converter.

According to another aspect of the present disclosure, a method of operating a neural network device includes receiving floating-point input data from a memory and converting the floating-point input data to integer-type input data. The method also includes performing a neural network operation based on an integer operation by using the integer-type input data.

According to another aspect of the present disclosure, an application processor includes a memory and a neural network device. The memory is configured to store operation parameters and feature values. The operation parameters and the features values are floating-point type values. The neural network device is configured to receive the operation parameters and the feature values from the memory, convert the operation parameters and the feature values to integer-type values, and perform a neural network operation based on the operation parameters and the feature values that are converted to integer-type values.

