A receiver (500) for use in a data channel on an integrated circuit device includes a non-linear equalizer (501) having as inputs digitized samples (521) of signals on the data channel, decision circuitry (501) configured to determine from outputs of the non-linear equalizer a respective value of each of the signals, and adaptation circuitry (573) configured to adapt parameters of the non-linear equalizer based on respective ones of the value. The non-linear equalizer may be a neural network equalizer (541), such as a multi-layer perceptron neural network equalizer, or a reduced complexity multi- layer perceptron neural network equalizer. A method for detecting data on a data channel on an integrated circuit device includes performing non-linear equalization of digitized samples of input signals on the data channel, determining from output signals of the non-linear equalization a respective value of each of the output signals, and adapting parameters of the non-linear equalization based on respective ones of the value.
A method includes receiving a TopK instruction to sort a highest K elements of a vector data. A first K elements of the vector data are sorted and stored in a first register. Another element of the vector data is read and determined whether it has a value that is greater than or is within a range of values of the first K elements. A position of the another element within the first K elements is determined if the another element has a value within that is within the range of values. A subset of the elements of the first K elements that are smaller than the another element are shifted down after determining the position of the another element in the first K elements. The another element is inserted in the determined position after the shifting. The process is repeated for each remaining element of the vector data.