Beispiel #1
0
https://github.com/pydata/numexpr

for more info about it.

"""

from __config__ import show as show_config, get_info

if get_info('mkl'):
    use_vml = True
else:
    use_vml = False

from cpuinfo import cpu

if cpu.is_AMD() or cpu.is_Intel():
    is_cpu_amd_intel = True
else:
    is_cpu_amd_intel = False

import os, os.path
import platform
from numexpr.expressions import E
from numexpr.necompiler import NumExpr, disassemble, evaluate, re_evaluate
from numexpr.tests import test, print_versions
from numexpr.utils import (
    get_vml_version, set_vml_accuracy_mode, set_vml_num_threads,
    set_num_threads, detect_number_of_cores, detect_number_of_threads)

# Detect the number of cores
ncores = detect_number_of_cores()
https://github.com/pydata/numexpr

for more info about it.

"""

from __config__ import show as show_config, get_info

if get_info('mkl'):
    use_vml = True
else:
    use_vml = False

from cpuinfo import cpu

if cpu.is_AMD() or cpu.is_Intel():
    is_cpu_amd_intel = True
else:
    is_cpu_amd_intel = False

import os, os.path
import platform
from numexpr.expressions import E
from numexpr.necompiler import NumExpr, disassemble, evaluate, re_evaluate
from numexpr.tests import test, print_versions
from numexpr.utils import (get_vml_version, set_vml_accuracy_mode,
                           set_vml_num_threads, set_num_threads,
                           detect_number_of_cores, detect_number_of_threads)

# Detect the number of cores
ncores = detect_number_of_cores()
 def get_flags_arch(self):
     opt = []
     if sys.platform=='darwin':
         if os.name != 'posix':
             # this should presumably correspond to Apple
             if cpu.is_ppc():
                 opt.append('-arch ppc')
             elif cpu.is_i386():
                 opt.append('-arch i386')
         for a in '601 602 603 603e 604 604e 620 630 740 7400 7450 750'\
                 '403 505 801 821 823 860'.split():
             if getattr(cpu,'is_ppc%s'%a)():
                 opt.append('-mcpu='+a)
                 opt.append('-mtune='+a)
                 break    
         return opt
     march_flag = 1
     # 0.5.25 corresponds to 2.95.x
     if self.get_version() == '0.5.26': # gcc 3.0
         if cpu.is_AthlonK6():
             opt.append('-march=k6')
         elif cpu.is_AthlonK7():
             opt.append('-march=athlon')
         else:
             march_flag = 0
     # Note: gcc 3.2 on win32 has breakage with -march specified
     elif self.get_version() >= '3.1.1' \
         and not sys.platform=='win32': # gcc >= 3.1.1
         if cpu.is_AthlonK6():
             opt.append('-march=k6')
         elif cpu.is_AthlonK6_2():
             opt.append('-march=k6-2')
         elif cpu.is_AthlonK6_3():
             opt.append('-march=k6-3')
         elif cpu.is_AthlonK7():
             opt.append('-march=athlon')
         elif cpu.is_AthlonMP():
             opt.append('-march=athlon-mp')
             # there's also: athlon-tbird, athlon-4, athlon-xp
         elif cpu.is_PentiumIV():
             opt.append('-march=pentium4')
         elif cpu.is_PentiumIII():
             opt.append('-march=pentium3')
         elif cpu.is_PentiumII():
             opt.append('-march=pentium2')
         else:
             march_flag = 0
         if self.get_version() >= '3.4' and not march_flag:
             march_flag = 1
             if cpu.is_Opteron():
                 opt.append('-march=opteron')
             elif cpu.is_Athlon64():
                 opt.append('-march=athlon64')
             else:
                 march_flag = 0
         if cpu.has_mmx(): opt.append('-mmmx')      
         if self.get_version() > '3.2.2':
             if cpu.has_sse2(): opt.append('-msse2')
             if cpu.has_sse(): opt.append('-msse')
         if self.get_version() >= '3.4':
             if cpu.has_sse3(): opt.append('-msse3')
         if cpu.has_3dnow(): opt.append('-m3dnow')
     else:
         march_flag = 0
     if march_flag:
         pass
     elif cpu.is_i686():
         opt.append('-march=i686')
     elif cpu.is_i586():
         opt.append('-march=i586')
     elif cpu.is_i486():
         opt.append('-march=i486')
     elif cpu.is_i386():
         opt.append('-march=i386')
     if cpu.is_Intel():
         opt.extend(['-malign-double','-fomit-frame-pointer'])
     return opt