CERN Accelerating science

Vectorization Studies of Random Number Generators on Intel’s Haswell Architecture

Date published: 
Monday, 1 September, 2014
Document type: 
Summer student report
Y. Demirag
Project Specification: This project concerns the field of vectorization for Computing in High Energy Physics at CERN,Geneva. This paper summarises the results and progress of vectorizing two newly proposed counter based random number generators on Intel’s Haswell Architecture. Abstract: This project studies SIMD optimizing two different newly proposed random number generators on Intel’s Haswell architecture with AVX2 instruction sets. AVX2 instruction set is necessary since many random number generators rely on 64-bit integer multiplication. In first phase, mathematical algorithms behind the random number generators are studied and the places where they can be vectorized are identified. Then all internal data structures of random number generators are transformed from Array of Struct to Struct of Array for better auto-vectorization. To achieve better results intrinsics are used via a high-level C++ wrapping library. In second phase we performed benchmarks and studied the speed up obtained up to 1.57 times for Threefry CBRNG due to vectorization on Haswell.