⚡️ Speed up method SmolVLM2BlockV1.run by 14%
#636
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.
📄 14% (0.14x) speedup for
SmolVLM2BlockV1.runininference/core/workflows/core_steps/models/foundation/smolvlm/v1.py⏱️ Runtime :
11.6 microseconds→10.2 microseconds(best of39runs)📝 Explanation and details
The optimized code achieves a 13% speedup through three key memory and computational optimizations:
1. Generator Expression for Image Processing
inference_images = [i.to_inference_format(numpy_preferred=False) for i in images]to a generator expression(i.to_inference_format(numpy_preferred=False) for i in images)2. Tuple-based Prompt Replication
prompts = [prompt] * len(inference_images)withprompts = (prompt,) * len(images)len()on the generator3. Eliminated Intermediate Variable
response_text = prediction.responseand usedprediction.responsedirectly in the result dictionaryPerformance Impact by Test Case:
These optimizations are particularly effective for workflows processing multiple images, where the reduced per-iteration overhead and memory pressure compound across the batch processing loop.
✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-SmolVLM2BlockV1.run-mhbylsp0and push.