コード例 #1
0
languages = [lang for lang in [
    getlang(PythonLanguage),
    getlang(NumexprPythonLanguage),
    getlang(CPPLanguage, extra_compile_args=['-O3', '-ffast-math', '-march=native'], restrict='__restrict__', flush_denormals=True),
    #getlang(CUDALanguage),
    ] if lang is not None]

codestrings = {}

for lang in languages:
    innercode = translate(G.abstract_code, G.specifiers, float64, lang)
    code = lang.apply_template(innercode, lang.template_state_update())
    codestrings[lang] = code
    print lang.__class__.__name__
    print '='*len(lang.__class__.__name__)
    codeprint(code)

if not test_compile:
    exit()

N = 100000
Nshow = 10
tshow = 100
ttest = 1000
dt = 0.001
_array_V = pylab.rand(N)
_array_I = pylab.rand(N)
_array_tau = pylab.ones(N)*30*0.001

print
print 'Timings'
コード例 #2
0
dt = 0.001
N = 10
I = pylab.zeros(N)
f = 1.0+pylab.arange(N)

for lang in languages:
    namespace = {
        '_array_I': I.copy(),
        '_array_f': f.copy(),
        'pi': pylab.pi,
        '_num_neurons': N,
        }
    innercode = translate(abstract, specifiers, float64, lang)
    print '*********', lang.__class__.__name__, '*********'
    print '========= INNER CODE ========='
    codeprint(innercode)
    print '=========== TEMPLATE ========='
    tmp = lang.template_state_update()
    codeprint(tmp)
    code = lang.apply_template(innercode, lang.template_state_update())
    print '=========== CODE ============='
    codeprint(code)
    codeobj = lang.code_object(code, specifiers)
    codeobj.compile(namespace)
    T = []
    M = []
    for t in pylab.arange(100)*dt:
        t = float(t)
        M.append(namespace['_array_I'].copy())
        T.append(t)
        codeobj(t=t)