Expand description
§Векторные операции для DSP
Этот модуль предоставляет встроенный предметно-ориентированный язык (eDSL) для векторных операций, оптимизированных под SIMD инструкции.
§Основные возможности
- Базовые векторные типы для f32 и f64 с различной шириной SIMD
- Арифметические операции (+, -, *, /, %)
- Математические функции (sin, cos, exp, ln, sqrt, …)
- Система выражений для ленивых вычислений и оптимизаций
- Автоматическая детекция SIMD возможностей процессора
§Использование
use rill_core::vector::prelude::*;
let a = ScalarVector4::splat(1.0);
let b = ScalarVector4::splat(2.0);
let c = a + b;
assert_eq!(c, ScalarVector4::splat(3.0));§Архитектура
Модуль организован следующим образом:
traits- основные трейты (Vector,VectorOps,VectorMath)ops- реализации арифметических операцийmath- математические функцииsimd- SIMD реализации для разных архитектурexpr- система выражений и оптимизацииscalar- скалярные fallback реализации
§Поддерживаемые платформы
- x86/x86_64: SSE2, SSE4.1, AVX, AVX2, AVX512 (через детекцию во время выполнения)
- ARM: NEON (AArch64)
- WebAssembly: SIMD128
- Скалярный fallback для платформ без SIMD