CALIBRATION PROCEDURE FOR ON-CHIP NEURAL NETWORK

    公开(公告)号:US20240320477A1

    公开(公告)日:2024-09-26

    申请号:US18124055

    申请日:2023-03-21

    IPC分类号: G06N3/048 G06F7/544 G06N3/065

    摘要: Weights of a layer of an artificial neural network can be programmed on a crossbar array of resistive memory devices. The programmed weights can be calibrated to counteract fixed variability sources like CMOS variability by adjusting the programmed weights based on comparing the crossbar array's output with a target output. The crossbar array's output produced using the calibrated programmed weights can be input into a next crossbar array of resistive memory devices implementing a next layer of the artificial neural network to calibrate weights of the next layer of the artificial neural network programmed on the next crossbar array. The weights of the next layer of the artificial neural network programmed on the next crossbar array can be calibrated by adjusting the weights of the next layer based on comparing the next crossbar array's output with a next target output.

    FIXED ASYMMETRY COMPENSATION FOR MULTIPLY AND ACCUMULATE OPERATIONS

    公开(公告)号:US20240192921A1

    公开(公告)日:2024-06-13

    申请号:US18078212

    申请日:2022-12-09

    IPC分类号: G06F7/544 G06F17/18

    CPC分类号: G06F7/5443 G06F17/18

    摘要: Systems and methods for compensating multiply and accumulate (MAC) operations are described. A processor can send an input vector to a first portion of a memory device. The first portion can store synaptic weights of a trained artificial neural network (ANN). The processor can read a first result of a MAC operation performed on the input vector and the synaptic weights stored in the first portion. The processor can send an inverse of the input vector to a second portion of the memory device. The processor can read a second result of a MAC operation performed on the inverse of the input vector and an inverse of synaptic weights stored in the second portion. The processor can combine the first result and the second result to generate a final result. The final result can be a compensated version of the first result.

    ANALOG MEMORY-BASED COMPLEX MULTIPLY-ACCUMULATE (MACC) COMPUTE ENGINE

    公开(公告)号:US20240162889A1

    公开(公告)日:2024-05-16

    申请号:US17978161

    申请日:2022-10-31

    IPC分类号: H03K3/017 H03K17/687

    CPC分类号: H03K3/017 H03K17/6871

    摘要: A circuit comprises a first pulse-width modulator configured to generate a first pulse based on a first input, a second pulse-width modulator configured to generate a second pulse based on a second input, a first differential circuit comprising a first transistor, a second transistor, a first resistor, and a second resistor, and a second differential circuit comprising a first transistor, a second transistor, a first resistor, and a second resistor. A gate of the first transistor of the first differential circuit and a gate of the second transistor of the first differential circuit, and a gate of the first transistor of the second differential circuit and a gate of the second transistor of the second differential circuit are configured to be controlled by the first and second pulse width modulators based on the first input and the second input.

    Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference

    公开(公告)号:US11562240B2

    公开(公告)日:2023-01-24

    申请号:US16884128

    申请日:2020-05-27

    IPC分类号: G06N3/08 G06N3/04

    摘要: Implementing a convolutional neural network (CNN) includes configuring a crosspoint array to implement a convolution layer in the CNN. Convolution kernels of the layer are stored in crosspoint devices of the array. Computations for the CNN are performed by iterating a set of operations for a predetermined number of times. The operations include transmitting voltage pulses corresponding to a subpart of a vector of input data to the crosspoint array. The voltage pulses generate electric currents that are representative of performing multiplication operations at the crosspoint device based on weight values stored at the crosspoint devices. A set of integrators accumulates an electric charge based on the output electric currents from the respective crosspoint devices. The crosspoint array outputs the accumulated charge after iterating for the predetermined number of times. The accumulated charge represents a multiply-add result of the vector of input data and the one or more convolution kernels.

    HARDWARE IMPLEMENTATION OF ACTIVATION FUNCTIONS

    公开(公告)号:US20230306251A1

    公开(公告)日:2023-09-28

    申请号:US17701809

    申请日:2022-03-23

    IPC分类号: G06N3/063 G06N3/04 G11C13/00

    摘要: A device comprises activation function circuitry configured to implement a non-linear activation function. The activation function circuitry comprises a comparator circuit, a capacitor, and a ramp voltage generator circuit. The capacitor comprises a terminal coupled to a first input terminal of the comparator circuit, and is configured to receive and store an input voltage which corresponds to an input value to the non-linear activation function. The ramp voltage generator circuit is configured to generate a ramp voltage which is applied to a second input terminal of the comparator circuit. The comparator circuit is configured to compare, during a conversion period, the stored input voltage to the ramp voltage, and generate a voltage pulse based on a result of the comparing. The voltage pulse comprises a pulse duration which encodes an activation output value of the non-linear activation function based on the input value to the non-linear activation function.

    CALIBRATING PERIPHERAL VARIABILITY

    公开(公告)号:US20220405554A1

    公开(公告)日:2022-12-22

    申请号:US17350162

    申请日:2021-06-17

    IPC分类号: G06N3/063

    摘要: Embodiments herein disclose computer-implemented methods, computer program products and computer systems for balancing neural network weight asymmetries. The computer-implemented method may include providing a neural network with weights comprising one or more major conductance pairs and one or more minor conductance pairs. The method may further include programming the one or more major conductance pairs to force an inference output to an expected duration value, determining a positive weight coefficient based on the one or more major conductance pairs and a negative weight coefficient based on the one or more minor conductance pairs, determining one or more target weights based on one or more of the positive weight coefficient and the negative weight coefficient, programming the one or more minor conductance pairs to force the inference output to the expected duration value, and programming the one or more major conductance pairs with the one or more target weights.

    PROGRAMMING DEVICES AND WEIGHTS IN HARDWARE

    公开(公告)号:US20220392525A1

    公开(公告)日:2022-12-08

    申请号:US17339046

    申请日:2021-06-04

    IPC分类号: G11C11/54 G06F3/06 G11C13/00

    摘要: Embodiments are disclosed for a method. The method includes setting conductances for corresponding non-volatile memory (NVM) devices of a cross-bar array to zero. The method further includes determining a plurality of pulse-widths for the corresponding plurality of NVM devices based on a corresponding plurality of programming errors. Additionally, the method includes programming the NVM devices using the determined pulse-widths. Also, the method includes measuring actual conductances for the corresponding NVM devices. Further, the method includes adjusting scaling factors for the corresponding NVM devices based on the actual conductances and the corresponding programming errors. Additionally, the method includes programming the corresponding NVM devices based on the determined pulse-widths and the scaling factors.

    Programming devices and weights in hardware

    公开(公告)号:US11514981B1

    公开(公告)日:2022-11-29

    申请号:US17339046

    申请日:2021-06-04

    摘要: The method includes setting conductances for corresponding non-volatile memory (NVM) devices of a cross-bar array to zero. The method further includes determining a plurality of pulse-widths for the corresponding plurality of NVM devices based on a corresponding plurality of programming errors. Additionally, the method includes programming the NVM devices using the determined pulse-widths. Also, the method includes measuring actual conductances for the corresponding NVM devices. Further, the method includes adjusting scaling factors for the corresponding NVM devices based on the actual conductances and the corresponding programming errors. Additionally, the method includes programming the corresponding NVM devices based on the determined pulse-widths and the scaling factors.