|
@ -1,12 +1,14 @@ |
|
|
Tips for performance tuning on a specific architecture: |
|
|
Tips for performance tuning on a specific architecture: |
|
|
|
|
|
|
|
|
1. Choose the optimal limb size (intDsize). This is fundamental. On 32-bit |
|
|
|
|
|
|
|
|
1a. Choose the optimal digit size (intDsize). This is fundamental. On 32-bit |
|
|
platforms intDsize=32 is best. On 64-bit platforms intDsize=64 may be |
|
|
platforms intDsize=32 is best. On 64-bit platforms intDsize=64 may be |
|
|
better, especially if there is a 64x64-bit multiplication in hardware. |
|
|
better, especially if there is a 64x64-bit multiplication in hardware. |
|
|
|
|
|
|
|
|
2. Tune GMP. |
|
|
|
|
|
|
|
|
1b. Alternatively, tune GMP. When GMP is used, CLN's digit size (intDsize) has |
|
|
|
|
|
to match GMP's limb size (sizeof(mp_limb_t)). There is nothing to do at the |
|
|
|
|
|
CLN side: The configure script will take care of intDsize automatically. |
|
|
|
|
|
|
|
|
3. The break-even points between several algorithms for the same task |
|
|
|
|
|
|
|
|
2. The break-even points between several algorithms for the same task |
|
|
have to be determined experimentally, in the order given below: |
|
|
have to be determined experimentally, in the order given below: |
|
|
|
|
|
|
|
|
multiplication: |
|
|
multiplication: |
|
|