Interface SIMDBackend

All Superinterfaces:
Backend, ComputeBackend
All Known Implementing Classes:
AbstractNativeSIMDLinearAlgebraBackend, EpistemeLinearAlgebraBackend, NativeSIMDComplexBackend, NativeSIMDRealBackend

public interface SIMDBackend extends ComputeBackend
Interface for SIMD-accelerated compute backends.

Implementations use the JDK Vector API (jdk.incubator.vector) or native SIMD intrinsics via FFM/Panama to accelerate numerical operations.

Example implementations:

  • SIMDRealLinearAlgebraProvider — vectorized linear algebra
  • Future: NEON (ARM), SVE, AVX-512 specialized backends

Since:
1.2
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Method Details

    • getType

      default String getType()
      Description copied from interface: Backend
      Returns the backend type category (e.g., "plotting", "molecular", "tensor", "math").
      Specified by:
      getType in interface Backend
      Specified by:
      getType in interface ComputeBackend
    • getAcceleratorType

      default HardwareAccelerator getAcceleratorType()
      Description copied from interface: ComputeBackend
      Returns the type of hardware accelerator used by this backend.
      Specified by:
      getAcceleratorType in interface ComputeBackend
      Returns:
      the accelerator type
    • getSimdLevel

      String getSimdLevel()
      Returns the SIMD instruction set level available.

      Examples: "AVX2", "AVX-512", "NEON", "SVE", "GENERIC"

    • getPreferredVectorWidth

      int getPreferredVectorWidth()
      Returns the preferred vector width in bytes for double operations.

      Typical values: 32 (AVX2), 64 (AVX-512), 16 (NEON)