Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: fast-pack/JavaFastPFOR
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: JavaFastPFOR-0.3.12
Choose a base ref
...
head repository: fast-pack/JavaFastPFOR
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: JavaFastPFOR-0.3.13
Choose a head ref
  • 8 commits
  • 13 files changed
  • 3 contributors

Commits on Jun 17, 2026

  1. Configuration menu
    Copy the full SHA
    933a84d View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2026

  1. Fix VectorFastPFOR corruption on reused output buffers

    slowpack OR-accumulates into the output, so a reused buffer kept stale
    bits. Zero the target words first.
    raunaqmorarka committed Jun 22, 2026
    Configuration menu
    Copy the full SHA
    40e2c33 View commit details
    Browse the repository at this point in the history
  2. Add 128-bit vector bit-packing with width-tagged streams

    Introduce a VectorBitPackerKernels interface with a 128-lane
    VectorBitPacker128 for Arm NEON and other 128-bit hardware, alongside
    the existing 512-bit kernel. A LaneWidth enum selects the encode kernel
    from the preferred vector width and tags each stream; decode dispatches
    to the tagging width's kernel and fails loud when the host runs only
    narrower lanes natively. slowpack/slowunpack move into VectorFastPFOR.
    
    Decode speedup over the scalar FastPFOR codec:
      Graviton2 (Neoverse N1, NEON 128): 2.0-2.9x (~2.7x), encode ~15% faster
      Graviton4 (Neoverse V2, SVE 128): 2.3-4.1x (~3.0x), encode ~8% faster
    raunaqmorarka committed Jun 22, 2026
    Configuration menu
    Copy the full SHA
    2a9e750 View commit details
    Browse the repository at this point in the history
  3. Add 256-bit vector bit-packing kernel

    Add VectorBitPacker256 (AVX2, 256-bit SVE) and register it in the
    LaneWidth enum, so 256-bit hosts pack natively instead of stepping down
    to the 128-bit kernel.
    
    Decode speedup over the scalar FastPFOR codec:
      Graviton3 (SVE 256): 2.8-4.5x (~3.4x), encode ~13% faster
      AMD EPYC Zen 1 (AVX2 256): 2.4-3.1x (~2.8x), encode ~15% faster
    raunaqmorarka committed Jun 22, 2026
    Configuration menu
    Copy the full SHA
    bfd93b6 View commit details
    Browse the repository at this point in the history
  4. Build and test the vector module by default

    Declare jdk.incubator.vector as requires static so scalar consumers
    resolve the module without --add-modules; only VectorFastPFOR users need it.
    raunaqmorarka committed Jun 22, 2026
    Configuration menu
    Copy the full SHA
    0f4d659 View commit details
    Browse the repository at this point in the history
  5. Cover VectorFastPFOR with the shared codec test suites

    SkippableBasicTest exercises maxHeadlessCompressedLength, so implement it
    (mirroring FastPFOR) rather than throwing.
    raunaqmorarka committed Jun 22, 2026
    Configuration menu
    Copy the full SHA
    9093b1a View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2026

  1. Merge pull request #71 from raunaqmorarka/vectorbitpacker128

    Hardware-portable Vector API bit-packing for VectorFastPFOR
    lemire authored Jun 23, 2026
    Configuration menu
    Copy the full SHA
    09d26d4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e291cf3 View commit details
    Browse the repository at this point in the history
Loading