Example #1
0
    def new_func(*args, **kwargs):
        #vector timer
        print("\n", old_func.__name__)
        start = time.time()
        old_func(*args, **kwargs)
        end = time.time()
        no_diff = end - start + 0.001
        print("\t", " without optimizations took", "%.3f" % no_diff,
              "seconds to run ")

        temp_f = jit(old_func)
        temp_f(*args, **kwargs)
        start = time.time()

        temp_f(*args, **kwargs)

        end = time.time()
        llvm.set_option('', '--debug-only=loop-vectorize')
        temp_f(*args, **kwargs)
        llvm.set_option('', '--debug=None')
        v_diff = end - start + 0.0001
        print("\t", " with optimizations took", "%.3f" % v_diff,
              "seconds to run ")

        print(" It is", "%.3f" % ((no_diff) / (v_diff)),
              "times faster with optimizations")

        return old_func(*args, **kwargs)
Example #2
0
from llvmlite import binding

binding.set_option("tmp", "-non-global-value-max-name-size=2048")
"""
Just in time Lake To Pond Transition
------------------------------------

Just in time Checks for transitions from lake to pond
"""
import numpy as np

from numba import jit

from .debug import DEBUG, PARALLEL
if DEBUG:
    import llvmlite.binding as llvm
    llvm.set_option('', '--debug-only=loop-vectorize')


@jit(parallel=PARALLEL, nopython=True, nogil=True)
def update_depth(depth_grid, elapsed_ts, depth_factor):
    """Just in time Update Depth for lake to pond

    Parameters
    ----------
    depth_grid: np.array like (float)
        grid of current lake depths
    elapsed_ts: float
        number timesteps since start year
    depth_factor: float

    Returns
    -------
    np.array
Example #4
0
def init_diagnostics():
    llvm.set_option('', '--debug-only=loop-vectorize')
    return
Example #5
0
import argparse
from datetime import datetime, timedelta
import sys
import time
import threading
import logging
import numpy
import uhd
import pdb
import math
import pyfftw
import numba
from numba import *
import llvmlite.binding as llvm
llvm.set_option(
    '',
    'opt -O0 -simplifycfg  -loop-rotate  -debug-only=loop-vectorize list_1.ll -S -o list_2.ll && opt -O3 -debug-only=loop-vectorize list_2.ll '
)

CLOCK_TIMEOUT = 1000  # 1000mS timeout for external clock locking
INIT_DELAY = 0.05  # 50mS initial delay before transmit


def parse_args():
    """Parse the command line arguments"""
    description = """UHD Benchmark Rate (Python API)
        """
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter, description=description)
    parser.add_argument("-a",
                        "--args",
                        default="",
Example #6
0
import platform
import numpy as np
from numba import types
from unittest import TestCase, skipIf
from numba.tests.support import override_env_config
from numba.core.compiler import compile_isolated, Flags
from numba.core.cpu_options import FastMathOptions

_DEBUG = False
if _DEBUG:
    from llvmlite import binding as llvm
    # Prints debug info from the LLVMs vectorizer
    llvm.set_option("", "--debug-only=loop-vectorize")


@skipIf(platform.machine() != 'x86_64', 'x86_64 only test')
class TestVectorization(TestCase):
    """
    Tests to assert that code which should vectorize does indeed vectorize
    """
    def gen_ir(self, func, args_tuple, fastmath=False):
        with override_env_config("NUMBA_CPU_NAME",
                                 "skylake-avx512"), override_env_config(
                                     "NUMBA_CPU_FEATURES", ""):
            _flags = Flags()
            _flags.set('fastmath', FastMathOptions(fastmath))
            jitted = compile_isolated(func, args_tuple, flags=_flags)
            return jitted.library.get_llvm_str()

    def test_nditer_loop(self):
        # see https://github.com/numba/numba/issues/5033
Example #7
0
            mpm.run(mod)

            if verbose:
                print('====== IR (optimized) ======')
                print(mod)

        # Now add the module and make sure it is ready for execution
        engine.add_module(mod)
        engine.finalize_object()
        engine.run_static_constructors()

        return mod


# All these initializations are required for code generation!
binding.initialize()
binding.initialize_native_target()
binding.initialize_native_asmprinter()

binding.load_library_permanently("libsvml.so")
binding.set_option('', '-vector-library=SVML')

llvm = LLVM(CTypesFunction)

# Plugins
plugins = []

from . import default

plugins.append(default)