Exemple #1
0
    def __call__(self, *args, **kwargs):
        # Update arguments from ordered list
        if len(args) > 0 and self.argnames is not None:
            kwargs.update(
                {aname: arg
                 for aname, arg in zip(self.argnames, args)})

        try:
            argtuple, initargtuple = self._construct_args(kwargs)

            # Call initializer function if necessary, then SDFG
            if self._initialized is False:
                self._lib.load()
                self.initialize(*initargtuple)
            # PROFILING
            if Config.get_bool('profiling'):
                operations.timethis(self._sdfg, 'DaCe', 0, self._cfunc,
                                    self._libhandle, *argtuple)
            else:
                self._cfunc(self._libhandle, *argtuple)

            return self._return_arrays
        except (RuntimeError, TypeError, UnboundLocalError, KeyError,
                cgx.DuplicateDLLError, ReferenceError):
            self._lib.unload()
            raise
Exemple #2
0
    def __call__(self, *args, **kwargs):
        argtuple = self._construct_args(*args, **kwargs)

        # Call initializer function if necessary, then SDFG
        if self._initialized == False:
            self.initialize(*argtuple)

        # PROFILING
        if Config.get_bool('profiling'):
            operations.timethis(self._sdfg.name, 'DaCe', 0, self._cfunc,
                                *argtuple)
        else:
            return self._cfunc(*argtuple)
Exemple #3
0
    def __call__(self, **kwargs):
        try:
            argtuple = self._construct_args(**kwargs)

            # Call initializer function if necessary, then SDFG
            if self._initialized is False:
                self.initialize(*argtuple)

            # PROFILING
            if Config.get_bool('profiling'):
                operations.timethis(self._sdfg.name, 'DaCe', 0, self._cfunc,
                                    *argtuple)
            else:
                return self._cfunc(*argtuple)
        except (RuntimeError, TypeError, UnboundLocalError, KeyError,
                DuplicateDLLError, ReferenceError):
            self._lib.unload()
            raise