Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The lazy tensor functionality has been deprecated (and split off as linear operator) for over two years. Since then, the old lazy tensor classes have been raising a deprecation warning and pointing to the corresponding linear operator classes via the
deprecated_lazy_tensor
helper class.While profiling candidate generation in Ax / BoTorch, I've noticed 5-15% of the runtime being spent in
deprecated_lazy_tensor.__init__
. This class is being instantiated hundreds of thousands of times during each candidate generation, adding a significant overhead without a clear benefit. I think it's time to remove it and claw back that overhead.Here's a sample of an example cProfile output:
You can see that
deprecated_lazy_tensor.__init__
was called 693531 times, resulting in a 22.865 second overhead in a total runtime of 150.665 seconds.