示例#1
0
def aot_compile(file_name):
    """

    :param file_name:
    :return:
    """
    cc = CC(config['module_name'])
    func = []
    signatures = []
    if os.path.exists(config['example']):
        f = os.open(config['example'], os.O_RDONLY)
        stdin_bk = os.dup(0)
        os.dup2(f, 0)
        try:
            module = runpy.run_module(file_name, run_name="__main__")
            for k in module:
                e = module[k]
                if type(e) == numba.targets.registry.CPUDispatcher \
                        and e.nopython_signatures:
                    cc.export(k, e.nopython_signatures[0])(e)
                    func.append(k)
                    signatures.append(str(e.nopython_signatures[0]))
            auto_jit = True
        finally:
            os.dup2(stdin_bk, 0)
            os.close(f)
    else:
        module = importlib.import_module(file_name)
        for dir_ in dir(module):
            e = eval('module.' + dir_)
            if type(e) == numba.targets.registry.CPUDispatcher \
                    and e.nopython_signatures:
                cc.export(dir_, e.nopython_signatures[0])(e)
                func.append(dir_)
                signatures.append(str(e.nopython_signatures[0]))
        auto_jit = False

    cc.output_dir = os.curdir
    if func:
        cc.compile()
    return cc, func, signatures, auto_jit
示例#2
0
import os
import numpy as np
from numba.pycc import CC

cc = CC('kernels')

output_dir = '{}/dist'.format(os.path.abspath('..'))
cc.output_dir = output_dir


@cc.export('square', 'f8(f8)')
def square(x):
    return x**2


@cc.export('squarearr', 'f8[:](f8[:])')
def square_array(arr):
    return np.square(arr)


cc.compile()
示例#3
0
This is the pure python version where the cython code is outlined
CSparse3.py: a Concise Sparse matrix Python package

@author: Timothy A. Davis
@author: Richard Lincoln
@author: Santiago Peñate Vera
"""

import numpy as np
import numba as nb
from numba.pycc import CC
from numba.typed import List
import math

cc = CC(extension_name='csc_native', source_module='CSparse3')
cc.output_dir = 'CSParse3'


def compile_code():
    cc.compile()


@cc.export('ialloc', 'i4[:](i8)')
def ialloc(n):
    return np.zeros(n, dtype=nb.int32)


@cc.export('xalloc', 'f8[:](i8)')
def xalloc(n):
    return np.zeros(n, dtype=nb.float64)