https://github.com/no-defun-allowed/simd-sicl-hash-table
A port of the SICL linear-probing-hash-table using SIMD instructions
https://github.com/no-defun-allowed/simd-sicl-hash-table
Last synced: 2 months ago
JSON representation
A port of the SICL linear-probing-hash-table using SIMD instructions
- Host: GitHub
- URL: https://github.com/no-defun-allowed/simd-sicl-hash-table
- Owner: no-defun-allowed
- Created: 2021-02-26T03:24:12.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-03-06T03:01:02.000Z (over 4 years ago)
- Last Synced: 2025-01-31T05:47:20.435Z (4 months ago)
- Language: Common Lisp
- Size: 178 KB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A "port" of linear-probing-hash-table with SIMD intrinsics

This is a "port" of SICL's [linear-probing-hash-table](https://github.com/robert-strandh/SICL/tree/master/Code/Hash-tables/Linear-probing)
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](https://github.com/no-defun-allowed/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.