Expand description
FFT Algorithm Auto-Selection Module
This module provides intelligent automatic selection of FFT algorithms based on:
- Input size characteristics (power-of-2, prime, smooth numbers)
- Hardware capabilities (cache size, SIMD support, core count)
- Memory constraints
- Historical performance data
§Features
- Input Analysis: Detects optimal algorithm based on input size properties
- Cache-Aware Selection: Considers L1/L2/L3 cache sizes for optimal performance
- Memory Optimization: Selects memory-efficient algorithms for large inputs
- Hardware Detection: Adapts to available SIMD instructions and core count
- Performance Profiling: Tracks and learns from execution history
§Example
use scirs2_fft::algorithm_selector::{AlgorithmSelector, SelectionConfig};
let selector = AlgorithmSelector::new();
let recommendation = selector.select_algorithm(1024, true).expect("Selection failed");
println!("Recommended: {:?}", recommendation.algorithm);Structs§
- Algorithm
Recommendation - Algorithm recommendation with metadata
- Algorithm
Selector - Main algorithm selector
- Cache
Info - CPU cache information
- Hardware
Info - Hardware information for algorithm selection
- Input
Characteristics - Detected input characteristics for algorithm selection
- Performance
Entry - Performance history entry
- Performance
History - Performance history database
- Performance
Stats - Performance statistics
- Selection
Config - Configuration for algorithm selection
- Simd
Capabilities - SIMD capability detection
Enums§
- FftAlgorithm
- FFT Algorithm variants available for selection
- Size
Characteristic - Input size characteristics