Répertoire de publications
de recherche en accès libre
de recherche en accès libre
Lemire, Daniel
ORCID: https://orcid.org/0000-0003-3306-6922
(sous presse).
Fast Forgiving Base64 Decoding with SIMD Instructions. ACM Transactions on Architecture and Code Optimization.
|
PDF
- TACO-2026-292-final-noacmref.pdf
Contenu du fichier : Document de travail Licence : Creative Commons CC BY. |
|
| Catégorie de document : | Articles de revues |
|---|---|
| Évaluation par un comité de lecture : | Oui |
| Étape de publication : | Accepté (sous presse) |
| Résumé : | On the Internet, we use the Base64 format to represent binary data (e.g., images or cryptographic keys) as text. The ES2026 JavaScript standard, following the WHATWG forgiving-base64 rules, requires decoders to ignore ASCII whitespace while rejecting other non-alphabet characters. Prior SIMD Base64 decoders assume whitespace-free input. We present a block-oriented decoding algorithm that removes whitespace inside the SIMD loop: clean 64-character blocks are decoded directly, while blocks with ignorable characters are compacted into a small stack buffer. We provide implementations for x64 (SSSE3 through AVX-512 VBMI2), ARM NEON, and LoongArch. Our C++ decoder reaches up to 94 GB/s on recent AMD Zen 5 processors. In Node.js 25, integration of our decoder raises Uint8Array.fromBase64 throughput by up to 6x compared with Node.js 19. The implementation has been adopted by major browsers and JavaScript runtimes. |
| Déposant: | Lemire, Daniel |
| Responsable : | Daniel Lemire |
| Dépôt : | 13 oct. 2026 18:03 |
| Dernière modification : | 13 oct. 2026 18:03 |
|
RÉVISER |