Aussie AI

Top-k Vector Algorithms

  • Last Updated 17 September, 2024
  • by David Spuler, Ph.D.

What is the Top-k Vector Algorithm?

The top-k algorithm on an array of numbers is a well-known theoretical algorithm in Computer Science theory. Longstanding theory examines the top-k algorithm in sequential algorithms, with both sorting and non-sorting versions. More recent theory has examined parallel top-k numeric algorithms using GPU-accelerated execution.

Sequential top-k algorithms have a significant body of theory. The simplest algorithm is to sort the array first, and then choose the first k elements from the sorted array. Sorting an array is an algorithm that also has its own huge body of theory, and the better sorting algorithms can be chosen. This has complexity O(n log n) for most sorting algorithms, and there is only an additional O(1) complexity for choosing k elements from a sorted list. However, sorting the entire array is somewhat wasteful and unnecessary, since we only want a subset, and there are several efficient top-k algorithms without sorting that optimize this overhead away.

Top-K Computation on GPUs

Papers on computation of vector top-k in parallel using GPU hardware:

Parallel GPU Sorting Research

Sorting algorithms have fascinated researchers for over fifty years. More recent papers have generalized this to GPU sorting, and these sorting methods could be used in a top-k algorithm, as in the papers below:

Parallel GPU Top-k Algorithm Research without Sorting

There has been recent research attention on optimizing the standard top-k algorithms to run in parallel using GPU acceleration, but without using a full sort algorithm:

Classic Sequential Top-k Algorithm Research

This is older research examining non-parallel algorithms for computing top-k from an array of numbers:

More AI Research

Read more about: