xxgreg / floats

SIMD optimised float64 functions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Floats

This is an experimental Go package to explore the performance potential of using SIMD assembly to work with slices of floating point numbers.

The API is intended to be compatible with the Gonum floats package.

It provides AVX2, and Neon assembly implementations for x86, and arm64. It has been benchmarked on AWS Lambda.

Currently, only float64 is supported.

When running benchmarks on AWS Lambda, performance over plain Go loops is improved 2x-4x for x86, and 2x for arm64. The micro-benchmarks haven't been carefully checked, so it'll be interesting to see how the performance pans out in real-world code.

About

SIMD optimised float64 functions

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Go 62.4%Language:Assembly 35.5%Language:Makefile 2.1%