Usuba, Optimizing & Trustworthy Bitslicing Compiler
Bitslicing is a programming technique commonly used in cryptography that consists in (efficiently) implementing a combinatorial circuit in software. It results in a massively parallel program, immune to cache-timing attacks by design. However, writing a program in bitsliced form requires extreme minutia. This paper introduces Usuba, a synchronous dataflow language producing bitsliced C code. Usuba is both a domain-specific language – providing syntactic support for the implementation of cryptographic algorithms – as well as a domain-specific compiler – taking advantage of well- defined semantics invariants to perform various optimizations before handing the generated code to an (optimizing) C compiler. On the Data Encryption Standard (DES) algorithm, we show that Usuba outperforms a reference, hand-tuned implementation by 15% (using Intel’s 64 bits general-purpose registers and depending on the underlying C compiler) whilst our implementation also transparently supports modern SIMD extensions (SSE, AVX, AVX-512), other architectures (ARM Neon, IBM Altivec) as well as multiple processors through an OpenMP backend.
Sat 24 FebDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:30 - 15:00 | |||
13:30 30mTalk | Ikra-Cpp: A C++/CUDA DSL for Object-Oriented Programming with Structure-of-Arrays Layout WPMVP | ||
14:00 30mTalk | Usuba, Optimizing & Trustworthy Bitslicing Compiler WPMVP Darius Mercadier Sorbonne Universités —UPMC Univ Paris 06, Lionel Lacassagne University Paris 6, Gilles Muller LIP6-INRIA/UPMC, Pierre-Evariste Dagand LIP6/CNRS | ||
14:30 30mTalk | A Data Layout Transformation for Vectorizing Compilers WPMVP Arsène Pérard-Gayot Saarland University, Germany, Richard Membarth DFKI, Germany, Philipp Slusallek DFKI, Germany, Simon Moll , Roland Leißa Saarland University, Germany, Sebastian Hack Saarland University, Germany |