Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Laya the open source version of Jev(convaiinnovations.com ↗)
    71comments
  2. What Zig felt like, coming from Rust(besok.github.io ↗)
    27comments
  3. A graphical desktop for the ZX Spectrum(github.com/mindbox77 ↗)
    6comments
  4. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    357comments
  5. Tin: full-text search for Postgres(planetscale.com ↗)
    3comments
  6. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    162comments
  7. “The Secret Life of Circuits” is here(coredump.cx ↗)
    36comments
  8. Asking Authors About Their Own Papers(medium.com/tmlrorg ↗)
    4comments
  9. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    518comments
  10. Black Holes or Black Hole Stars? Astronomers Spar over 'Little Red Dots'(quantamagazine.org ↗)
    5comments
  11. San Francisco Onion Futures Company(onionfutures.com ↗)
    91comments
  12. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    120comments
  13. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    165comments
  14. Learning Another Language May Be One of the Best Ways to Keep Your Brain Healthy(theconversation.com ↗)
    5comments
  15. AI Safety Is Mostly a Sex Cult(bsky.app ↗)
    2comments
  16. Cloudflare Quick Tunnels(cloudflare.com ↗)
    299comments
  17. Communication by means of modulated Johnson noise(pnas.org ↗)
    16comments
  18. How to Write with an LLM(sockpuppet.org ↗)
    356comments
  19. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    23comments
  20. SDCC – Small Device C Compiler(sourceforge.net ↗)
    22comments
  21. Saving another 100TB of RAM(cloudflare.com ↗)
    87comments
  22. Science Is Open Software(jepedersen.dk ↗)
    46comments
  23. From Stonemasons to Carpenters(thelastsoftwareengineer.substack.com ↗)
    4comments
  24. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    44comments
  25. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    6comments
  26. NASA-IBM Lunar Foundation open-Source Geospatial AI Model(usra.edu ↗)
    5comments
  27. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    119comments
  28. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    114comments
  29. OpenJev(openjev.com ↗)
    275comments
  30. Goroutine Leak Profiles(go.dev ↗)
    6comments

Show HN: SimSIMD vs SciPy: How AVX-512 and SVE make SIMD nicer and ML 10x faster

13 pointsby 2y agoashvardanian.com
6 comments
2y agoHN ↗

Over the years, the merits of Intel’s 512-bit Advanced Vector eXtensions (AVX-512) have been extensively debated. Introduced in 2014, CPUs took time to offer robust support. In parallel, Arm Scalable Vector Extensions (SVE), targeting Arm servers, has only gained traction in recent times. Today, the landscape has shifted significantly with Intel’s Sapphire Rapids CPUs on one flank and the AWS Graviton 3 and Ampere Altra chips on the other. Here are compelling reasons to opt for these over the traditional AVX2 and NEON extensions:

1. Masked Loads: Efficient data processing by selectively loading data. 2. Half-Precision Floating Point Math: Accelerated computations with reduced memory footprint.

These features proved invaluable for the latest SimSIMD release. The software now processes vector similarities up to 300x faster using NEON, SVE, AVX2, and AVX-512 extensions across Inner Product, Euclidean, Angular, Hamming, and Jaccard distances. It outstrips commonly used libraries like NumPy and SciPy, famously built on BLAS and LAPACK.

Check out the post for some cool tricks, clarifications on AVX-512 and SVE advantages, and benchmark numbers :)

Here is the repo: https://github.com/ashvardanian/simsimd

2y agoHN ↗

I encourage one to merge into e.g. {NumPy, SciPy, }; are there PRs?

Though SymPy.physics only yet supports X,Y,Z vectors and doesn't mention e.g. "jaccard"?, FWIW: https://docs.sympy.org/latest/modules/physics/vector/vectors... https://docs.sympy.org/latest/modules/physics/vector/fields.... #cfd

include/simsimd/simsimd.h: https://github.com/ashvardanian/SimSIMD/blob/main/include/si...

conda-forge maintainer docs > Switching BLAS implementation: https://conda-forge.org/docs/maintainer/knowledge_base.html#... :

  conda install "libblas=*=*mkl"
  conda install "libblas=*=*openblas"
  conda install "libblas=*=*blis"
  conda install "libblas=*=*accelerate"
  conda install "libblas=*=*netlib"

numpy-feedstock: https://github.com/conda-forge/numpy-feedstock/blob/main/rec...

scipy-feedstock: https://github.com/conda-forge/scipy-feedstock/blob/main/rec...

pysimdjson-feedstock: https://github.com/conda-forge/pysimdjson-feedstock/blob/mai...

simdjson-feedstock: https://github.com/conda-forge/simdjson-feedstock/blob/main/...

mkl_random-feedstock: https://github.com/conda-forge/mkl_random-feedstock https://github.com/google/paranoid_crypto/tree/main/paranoid... :

NumPy-based implementation of random number generation sampling using Intel (R) Math Kernel Library, mirroring numpy.random, but exposing all choices of sampling algorithms available in MKL

blas: https://github.com/conda-forge/blas-feedstock/blob/main/reci...

xtensor-blas-feedstock: https://github.com/conda-forge/xtensor-blas-feedstock

xtensor-fftw (FFT with xtensor (c++)) could probably be AVX-512 and SVE -optimized as well? https://github.com/xtensor-stack/xtensor-fftw

ggml_cpu_has_avx512() https://github.com/search?q=repo%3Aggerganov%2Fggml%20AVX&ty... https://github.com/search?q=repo%3Aggerganov%2Fllama.cpp%20a...

CuPy would also be an impactful place to merge and defend these optimizations; though no GPUs have AVX-512 or SVE? cupyx.scipy.spatial.distance: https://docs.cupy.dev/en/stable/reference/scipy_spatial_dist... https://docs.cupy.dev/en/stable/reference/comparison.html

2y agoHN ↗

Hey, thanks for recommendations! Yes, I’m definitely open to contributing there.

2y agoHN ↗

Np. Thanks for the optimizations.

From "PostgresML is 8-40x faster than Python HTTP microservices" (2023) https://news.ycombinator.com/item?id=33270638 :

Apache Ballista and Polars do Apache Arrow and SIMD.

The Polars homepage links to the "Database-like ops benchmark" of {Polars, data.table, DataFrames.jl, ClickHouse, cuDF, spark, (py)datatable, dplyr, pandas, dask, Arrow, DuckDB, Modin,} but not yet PostgresML? https://h2oai.github.io/db-benchmark/ *

LLM -> Vector database: https://en.wikipedia.org/wiki/Vector_database

/? inurl:awesome site:github.com "vector database" https://www.google.com/search?q=inurl%253Aawesome+site%253Ag... : https://github.com/dangkhoasdc/awesome-vector-database , https://github.com/mileszim/awesome-vector-database , https://github.com/currentslab/awesome-vector-search

/? "vector database" "duckdb" https://www.google.com/search?q=+%22vector+database%22+%22du... ... pgvector

pgvector/pgvector/src/vector.c: vector_spherical_distance https://github.com/pgvector/pgvector/blob/master/src/vector....

postgresml/postgresml: /? distance https://github.com/search?q=repo%3Apostgresml%2Fpostgresml%2...