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