Accelerating Iterative SpMV for Discrete Logarithm Problem using GPUs
LORIA
arXiv:1209.5520 [cs.CR] (25 Sep 2012)
@article{2012arXiv1209.5520J,
author={Jeljeli, Hamza},
title={"{Accelerating Iterative SpMV for Discrete Logarithm Problem using GPUs}"},
journal={ArXiv e-prints},
archivePrefix={"arXiv"},
eprint={1209.5520},
primaryClass={"cs.CR"},
keywords={Cryptography and Security (cs.CR)},
year={2012},
month={sep}
}
In the cryptanalytic context, computing discrete logarithms in large cyclic groups using index-calculus-based methods, such as the number field sieve or the function field sieve, requires solving large sparse systems of linear equations modulo the group order. Most of the fast algorithms used to solve such systems — e.g., the conjugate gradient or the Lanczos and Wiedemann algorithms — iterate a product of the corresponding sparse matrix with a vector (SpMV). This central operation can be accelerated on GPUs using specific computing models and addressing patterns, which increase the arithmetic intensity while reducing irregular memory accesses. In this work, we investigate the implementation of SpMV kernels on NVIDIA GPUs, for several representations of the sparse matrix in memory. We explore the use of Residue Number System (RNS) arithmetic to accelerate modular operations. We target linear systems arising when attacking the discrete logarithm problem on groups of size 160 to 320 bits, which correspond to the sizes in the last record computations. The proposed SpMV implementation on a 1.7M-by-1.7M matrix containing 86M non-zeros, delivers a throughput of 24.3 SpMV/s on an NVIDIA GeForce GTX 580, which corresponds to 50 GFLOP/s.
September 26, 2012 by hgpu