Skip to content

Detailled Benchmark of fgemv for Givaro::Integer in the field of RNS on a multicore server

ZHG2017 edited this page Jun 10, 2019 · 20 revisions

Note p = (0 for sequential, 1 for <RNSModulus, grain>, 2 for <RNSModulus, threads>, 3 for ParSeqHelper::Compose<ParSeqHelper::Parallel<FFLAS::CuttingStrategy::RNSModulus, grain>, ParSeqHelper::Parallel<rec, StrategyParameter::TwoDAdaptive>>)

Benchmark using OpenMP

OMP_NUM_THREADS=1

100 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
4.70943 0 4000 4000 3 1526855394

FGEMM_MP: nb prime: 12
FGEMM_MP: init: 1091ms
FGEMM_MP: to RNS: 2100ms
==========================================
Pointwise fgemm : 1.40045 (12) moduli
==========================================
FGEMM_MP: RNS Mul: 1400ms
FGEMM_MP: from RNS: 69ms

1000 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
47.763 0 4000 4000 3 1526855394

FGEMM_MP: nb prime: 109
FGEMM_MP: init: 1618ms
FGEMM_MP: to RNS: 31189ms
==========================================
Pointwise fgemm : 13.7958 (109) moduli
==========================================
FGEMM_MP: RNS Mul: 13796ms
FGEMM_MP: from RNS: 627ms

OMP_NUM_THREADS=8

100 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
3.3133 1 4000 4000 3 1526855394
3.53367 2 4000 4000 3 1526855394
3.34736 3 4000 4000 3 1526855394

Method 1

FGEMM_MP: nb prime: 12
FGEMM_MP: init: 1164ms
FGEMM_MP: to RNS: 1574ms
==========================================
Pointwise fgemm : 0.457937 (12) moduli
==========================================
FGEMM_MP: RNS Mul: 458ms
FGEMM_MP: from RNS: 113ms


Method 2

FGEMM_MP: nb prime: 12
FGEMM_MP: init: 1175ms
FGEMM_MP: to RNS: 2056ms
==========================================
Pointwise fgemm : 0.532401 (12) moduli
==========================================
FGEMM_MP: RNS Mul: 532ms
FGEMM_MP: from RNS: 80ms


Method 3

FGEMM_MP: nb prime: 12
FGEMM_MP: init: 1133ms
FGEMM_MP: to RNS: 1584ms
==========================================
Pointwise fgemm : 0.532509 (12) moduli
==========================================
FGEMM_MP: RNS Mul: 532ms
FGEMM_MP: from RNS: 81ms


1000 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
27.5132 1 4000 4000 3 1526855394
27.2788 2 4000 4000 3 1526855394
28.7421 3 4000 4000 3 1526855394

Method 1

FGEMM_MP: nb prime: 109
FGEMM_MP: init: 4508ms
FGEMM_MP: to RNS: 17709ms
==========================================
Pointwise fgemm : 4.09299 (109) moduli
==========================================
FGEMM_MP: RNS Mul: 4093ms
FGEMM_MP: from RNS: 682ms


Method 2

FGEMM_MP: nb prime: 109
FGEMM_MP: init: 4810ms
FGEMM_MP: to RNS: 18192ms
==========================================
Pointwise fgemm : 3.6855 (109) moduli
==========================================
FGEMM_MP: RNS Mul: 3685ms
FGEMM_MP: from RNS: 692ms


Method 3

FGEMM_MP: nb prime: 109
FGEMM_MP: init: 4706ms
FGEMM_MP: to RNS: 20976ms
==========================================
Pointwise fgemm : 3.91202 (109) moduli
==========================================
FGEMM_MP: RNS Mul: 3912ms
FGEMM_MP: from RNS: 715ms


OMP_NUM_THREADS=16

100 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
3.12621 1 4000 4000 3 1526855394
3.22379 2 4000 4000 3 1526855394
3.27937 3 4000 4000 3 1526855394

Method 1

FGEMM_MP: nb prime: 12
FGEMM_MP: init: 1135ms
FGEMM_MP: to RNS: 1575ms
==========================================
Pointwise fgemm : 0.42829 (12) moduli
==========================================
FGEMM_MP: RNS Mul: 428ms
FGEMM_MP: from RNS: 87ms


Method 2

FGEMM_MP: nb prime: 12
FGEMM_MP: init: 1175ms
FGEMM_MP: to RNS: 1649ms
==========================================
Pointwise fgemm : 0.398379 (12) moduli
==========================================
FGEMM_MP: RNS Mul: 398ms
FGEMM_MP: from RNS: 86ms


Method 3

FGEMM_MP: nb prime: 12
FGEMM_MP: init: 1177ms
FGEMM_MP: to RNS: 1626ms
==========================================
Pointwise fgemm : 0.41382 (12) moduli
==========================================
FGEMM_MP: RNS Mul: 414ms
FGEMM_MP: from RNS: 90ms


OMP_NUM_THREADS=16

1000 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
26.1346 1 4000 4000 3 1526855394
27.8272 2 4000 4000 3 1526855394
26.5143 3 4000 4000 3 1526855394

Method 1

FGEMM_MP: nb prime: 109
FGEMM_MP: init: 5014ms
FGEMM_MP: to RNS: 17740ms
==========================================
Pointwise fgemm : 3.10184 (109) moduli
==========================================
FGEMM_MP: RNS Mul: 3102ms
FGEMM_MP: from RNS: 723ms


Method 2

FGEMM_MP: nb prime: 109
FGEMM_MP: init: 5346ms
FGEMM_MP: to RNS: 19011ms
==========================================
Pointwise fgemm : 3.44793 (109) moduli
==========================================
FGEMM_MP: RNS Mul: 3448ms
FGEMM_MP: from RNS: 722ms


Method 3

FGEMM_MP: nb prime: 109
FGEMM_MP: init: 4732ms
FGEMM_MP: to RNS: 17915ms
==========================================
Pointwise fgemm : 3.15413 (109) moduli
==========================================
FGEMM_MP: RNS Mul: 3154ms
FGEMM_MP: from RNS: 741ms