Skip to main content

Module algorithm_selector

Module algorithm_selector 

Source
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§

AlgorithmRecommendation
Algorithm recommendation with metadata
AlgorithmSelector
Main algorithm selector
CacheInfo
CPU cache information
HardwareInfo
Hardware information for algorithm selection
InputCharacteristics
Detected input characteristics for algorithm selection
PerformanceEntry
Performance history entry
PerformanceHistory
Performance history database
PerformanceStats
Performance statistics
SelectionConfig
Configuration for algorithm selection
SimdCapabilities
SIMD capability detection

Enums§

FftAlgorithm
FFT Algorithm variants available for selection
SizeCharacteristic
Input size characteristics