GPU K-Means Clustering with Smart Kernel Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing GPU-based k-means clustering algorithms face inefficiencies due to limitations in handling large datasets and higher dimensions, particularly with pre-Fermi GPUs, as they require data transposition and limited memory usage, leading to suboptimal performance and increased computational costs.
Innovation Solution
The implementation of a k-means clustering algorithm utilizing Fermi-based GPUs with intelligent kernel selection and memory optimization techniques, such as preferring L1 cache over shared memory, using texture memory when feasible, and employing loop unrolling, allows for efficient handling of larger datasets and higher dimensions without data transposition, leveraging the Fermi architecture's improved memory hierarchy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If pre-Fermi GPU architecture is used for k-means clustering, then basic clustering operations can be performed, but processing speed and scalability are limited due to memory constraints and requirement for data transposition
Solution Approach 1:
The patent changes the memory access parameters by utilizing Fermi architecture's L1 cache and shared memory hierarchies, transitioning from flat memory access to hierarchical memory access with configurable cache policies, thereby improving processing speed without increasing algorithmic complexity
Solution Approach 2:
The patent segments the memory access operations into multiple stages: L1 cache access for frequently used data, shared memory for intermediate results, and global memory for data storage, allowing parallel processing of different data segments simultaneously across multiple streaming multiprocessors
2Quantity of substance
If data transposition is performed to fit limited GPU memory, then clustering can be executed, but computational time and memory overhead increase
Solution Approach 1:
The patent performs preliminary data organization into fixed-size blocks that can be efficiently loaded into shared memory and L1 cache before the main clustering computation, eliminating the need for runtime data transposition and reducing memory access overhead during iterative k-means operations
Solution Approach 2:
The patent introduces shared memory as an intermediary layer between global memory and register file, buffering data to avoid repeated global memory accesses and eliminating the need for data transposition by maintaining data in an accessible format throughout the clustering iterations
3Productivity
If Fermi architecture features are utilized for k-means clustering, then processing efficiency improves, but kernel selection and configuration complexity increases
Solution Approach 1:
The patent applies different memory access strategies and kernel configurations to different regions of the computation based on data characteristics: L1 cache-preferring kernels for small datasets, shared memory-preferring kernels for large datasets, and block-wise processing for high-dimensional data, thereby optimizing efficiency without requiring complex global configuration management
Data Source
AI summary
Provided is a high-performance implementation of the k-means clustering algorithm on a graphics processing unit (GPU), which leverages a set of GPU kernels with complimentary strengths for datasets of various dimensions and for different numbers of clusters. The concepts of non-dominated GPU kernels and efficient strategies to select high-throughput kernels that match the arguments of the clustering problem with the underlying GPU hardware for maximum speedup are provided.


