Skip to content

A port of the SICL linear-probing-hash-table using SIMD instructions

Notifications You must be signed in to change notification settings

no-defun-allowed/simd-sicl-hash-table

Repository files navigation

A "port" of linear-probing-hash-table with SIMD intrinsics

A performance graph, comparing a list, bucket table, linear probing table, and SIMD linear probing table.

This is a "port" of SICL's linear-probing-hash-table which uses SSE2 intrinsics for faster probing. Only the metadata table implementation had to be modified to use SSE; and this implementation was done almost by renaming the fake sse:blah function names in the simd-metadata-table.example.lisp file.

As we use unportable assembler stuff, you will need SBCL 2.0.10 (or so) and my fork of cl-simd, as well as an AMD64 processor with the bsf instruction. (I don't know when that was introduced, the availability of instruction set extensions confuse me.) It won't work in SBCL 2.1.0 because they changed make-ea or something, so that effective addresses don't carry around sizes, and I have no idea how to patch around that.

About

A port of the SICL linear-probing-hash-table using SIMD instructions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published