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.