Le 26/03/2014 12:28, Bill Hart a écrit :
Hi all,

We still don't have any tuning code on ARM or Atom for MPIR. Note MPIR will
run extremely slowly without new tuning values due to recent changes.

Please let us know on the mpir-devel list if you are willing to help.

As far as we know, there are three things that can go wrong with tuning
(which is otherwise very simple), but they all have very easy fixes, so
please let us know if tune does not complete for some reason and we'll give
instructions.

git clone https://github.com/wbhart/mpir
cd mpir
./configure
make -j
cd tune
make tune


Here is what /proc/cpuinfo has:

processor       : 0
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 1694.10
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0f
CPU revision    : 4

processor       : 1
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 1694.10
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0f
CPU revision    : 4

Hardware        : SAMSUNG EXYNOS5 (Flattened Device Tree)
Revision        : 0000
Serial          : 0000000000000000

And what "make tune" outputs:

make  tuneup
make[1]: Entering directory `/home/jpuydt/mpir/tune'
make[1]: `tuneup' is up to date.
make[1]: Leaving directory `/home/jpuydt/mpir/tune'
./tuneup
Parameters for ./mpn/arm/gmp-mparam.h
clock_gettime is 1.000ns accurate
Using: microsecond accurate getrusage()
speed_precision 10000, speed_unittime 1.00e-09 secs, CPU freq 1694.10 MHz
DEFAULT_MAX_SIZE 1000, fft_max_size 50000

/* Generated by tuneup.c, 2014-03-28, gcc 4.8 */

#define MUL_KARATSUBA_THRESHOLD          22
#define MUL_TOOM3_THRESHOLD             147
#define MUL_TOOM4_THRESHOLD             184
#define MUL_TOOM8H_THRESHOLD            387

#define SQR_BASECASE_THRESHOLD           12
#define SQR_KARATSUBA_THRESHOLD          34
#define SQR_TOOM3_THRESHOLD             116
#define SQR_TOOM4_THRESHOLD             330
#define SQR_TOOM8_THRESHOLD             375

#define POWM_THRESHOLD                  984

#define DIVREM_1_NORM_THRESHOLD           0  /* preinv always */
#define DIVREM_1_UNNORM_THRESHOLD         0  /* always */
#define MOD_1_NORM_THRESHOLD              0  /* always */
#define MOD_1_UNNORM_THRESHOLD            0  /* always */
#define USE_PREINV_DIVREM_1               1  /* preinv always */
#define USE_PREINV_MOD_1                  1  /* preinv always */
#define DIVREM_2_THRESHOLD                0  /* preinv always */
#define DIVEXACT_1_THRESHOLD              0  /* always */
#define MODEXACT_1_ODD_THRESHOLD          0  /* always */
#define MOD_1_1_THRESHOLD                 7
#define MOD_1_2_THRESHOLD                 7
#define MOD_1_3_THRESHOLD                25
#define DIVREM_HENSEL_QR_1_THRESHOLD      8
#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD     12
#define DIVREM_EUCLID_HENSEL_THRESHOLD    100

#define MUL_FFT_FULL_THRESHOLD         3904

#define SQR_FFT_FULL_THRESHOLD         3648

#define MULLOW_BASECASE_THRESHOLD         0  /* always */
#define MULLOW_DC_THRESHOLD              36
#define MULLOW_MUL_THRESHOLD           5963

#define MULHIGH_BASECASE_THRESHOLD        4
#define MULHIGH_DC_THRESHOLD             38
#define MULHIGH_MUL_THRESHOLD          4101

#define MULMOD_2EXPM1_THRESHOLD          36

#define SB_DIVAPPR_Q_SMALL_THRESHOLD      4
#define SB_DIV_QR_SMALL_THRESHOLD         4
#define DC_DIV_QR_THRESHOLD              55
#define INV_DIV_QR_THRESHOLD           2444
#define INV_DIVAPPR_Q_N_THRESHOLD        55
#define DC_DIV_Q_THRESHOLD               58
#define INV_DIV_Q_THRESHOLD            1187
#define DC_DIVAPPR_Q_THRESHOLD           35
#define INV_DIVAPPR_Q_THRESHOLD        9960
#define DC_BDIV_QR_THRESHOLD             52
#define DC_BDIV_Q_THRESHOLD              30

#define ROOTREM_THRESHOLD                 6

#define MATRIX22_STRASSEN_THRESHOLD      31
#define HGCD_THRESHOLD                   47
#define HGCD_APPR_THRESHOLD              54
#define HGCD_REDUCE_THRESHOLD          6852
#define GCD_DC_THRESHOLD                386
#define GCDEXT_DC_THRESHOLD             268
#define JACOBI_BASE_METHOD                2

#define GET_STR_DC_THRESHOLD             11
#define GET_STR_PRECOMPUTE_THRESHOLD     25
#define SET_STR_DC_THRESHOLD            200
#define SET_STR_PRECOMPUTE_THRESHOLD    788

#define FAC_DSC_THRESHOLD               272
#define FAC_ODD_THRESHOLD                34

/* fft_tuning -- autogenerated by tune-fft */

#define FFT_TAB \
   { { 4, 3 }, { 3, 2 }, { 2, 1 }, { 1, 0 }, { 1, 0 } }

#define MULMOD_TAB \
   { 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1 }

#define FFT_N_NUM 15

#define FFT_MULMOD_2EXPP1_CUTOFF 256


/* Tuneup completed successfully, took 366 seconds */


Thanks,

Snark

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to