#[derive(Debug, Clone)]
pub struct MicroarchOptimization {
pub optimal_vector_width: usize,
pub unroll_factor: usize,
pub matrix_block_size: usize,
pub prefetch_distance: usize,
pub branch_friendly: bool,
pub prefer_fma: bool,
pub cache_blocking: bool,
pub software_prefetch: bool,
pub memory_alignment: usize,
pub parallel_chunk_size: usize,
pub ht_aware: bool,
pub numa_aware: bool,
}
impl Default for MicroarchOptimization {
fn default() -> Self {
Self {
optimal_vector_width: 32, unroll_factor: 4,
matrix_block_size: 64,
prefetch_distance: 8,
branch_friendly: true,
prefer_fma: true,
cache_blocking: true,
software_prefetch: true,
memory_alignment: 32,
parallel_chunk_size: 1024,
ht_aware: true,
numa_aware: false,
}
}
}