Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance issues about tf.function #58

Open
DLPerf opened this issue Mar 5, 2023 · 4 comments
Open

Performance issues about tf.function #58

DLPerf opened this issue Mar 5, 2023 · 4 comments

Comments

@DLPerf
Copy link
Contributor

DLPerf commented Mar 5, 2023

Hello! Our static bug checker has found a performance issue in ONNX/lambda-onnx/onnxruntime/transformers/benchmark.py: run_with_tf_optimizations (1),(2),(3) is repeatedly called in a for loop, but there is a tf.function decorated function run_in_graph_mode defined and called in run_with_tf_optimizations.

In that case, when run_with_tf_optimizations is called in a loop, the function run_in_graph_mode will create a new graph every time, and that can trigger tf.function retracing warning.

Similar problems in ONNX-ARM/lambda-onnx-arm-3.8/onnxruntime/transformers/benchmark.py.

Here is the tensorflow document to support it.

Briefly, for better efficiency, it's better to use:

@tf.function
def inner():
    pass

def outer():
    inner()  

than:

def outer():
    @tf.function
    def inner():
        pass
    inner()

Looking forward to your reply.

@DLPerf
Copy link
Contributor Author

DLPerf commented Mar 6, 2023

We are investigating this kind of issues, and your answer will be of great help to our work. Can you take a look? Thank you in advance! @rvaneijk @ryfeus @Con-Mi

@martinpeck
Copy link
Contributor

Can you explain why you've tagged me in this issue please?
Beyond fixing a 1 character typo in the README, I wouldn't consider myself as someone to tag on issues like this.
Please don't tag random people.

@DLPerf
Copy link
Contributor Author

DLPerf commented Mar 6, 2023

ok, sorry.

@ryfeus
Copy link
Owner

ryfeus commented Mar 7, 2023

Thank you for sharing! It's a library dependency so this part wasn't written by me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants