Releases: plasma-umass/scalene
Force release of all wheels
Maintenance release to force generation of wheels.
Numerous improvements to proposed optimizations; bug fixes and compatibility improvements; adds internal changes for planned enhancements
What's Changed
(All changes by @emeryberger unless otherwise specified.)
Proposed optimizations
- Click to optimize now works for entire classes (4253475)
- Proposed optimizations now focus on native modules as optimization opportunities (24f630e)
numpy
always suggested for non-GPU contexts,cupy
for GPU optimizations (29df26d)- Added more context to guide optimizations (d64d8bb)
- Clicking on proposed optimizations now copies text to buffer (b4168e5)
- GPU optimizations by default now enabled only on systems with NVIDIA GPUs (c3341e5)
- Added switch to allow choosing to optimize performance vs. memory (a04e47d)
Bug fixes
- Resolved SEGV issue (7cb2649) by @sternj
- Remove preload of environment variables to avoid issues with launching Firefox
- Restored compatibility with Python 3.8
- Fixes issue with Jupyter
- Fixes encoding problem reported here https://stackoverflow.com/questions/74606510/scalene-an-exception-of-type-unicodeencodeerror, by @iuliivasilev in #547
- Fix for Windows issue (#540) by @sternj in #548
- Allows arguments with spaces for subprocesses by @sauyon in #562
- Fixed issue with inadvertent removal of shim logic by @sternj
UI enhancments
- Current filename now "sticky" when scrolling, added blur to top and bottom
Internal changes
- Collects stack traces (not yet exposed in the AI) in #552
- Added core utilization tracking (utilization across all cores) in #572
New Contributors
- @iuliivasilev made their first contribution in #547
- @sauyon made their first contribution in #562
Full Changelog: v1.5.19...v1.5.20
Further improvements to AI-powered proposed optimizations
What's Changed
- Proposed optimizations now can be applied to identified regions (loops or functions) instead of just individual lines by @emeryberger in #534
Full Changelog: v1.5.18...v1.5.19
Maintenance release, attempting to fix Conda builds
Changed case of Cython in dependency to work with case-sensitive filesystems. Also includes minor UI tweaks.
Major UI enhancement, including AI-powered optimization suggestions
What's Changed
Enhancements
- Scalene now incorporates AI-powered optimization suggestions. To enable these, you need to enter an OpenAI key:
Once a valid key is entered, click on the lightning bolt (⚡) beside any line to generate a proposed optimization.
You can click as many times as you like on the lightning bolt, and it will generate different suggested optimizations.
Your mileage may vary, but in some cases, the suggestions are quite impressive. While this is currently limited to optimizing a single
line, we anticipate broadening this to groups of lines or even functions in the near future. To our knowledge, this is the first
integration of AI into profilers. It's a brave new world.
- The web UI now incorporates collapsible profiles to web GUI (#527). You can now
toggle the displayed lines of code (all or reduced), and show/hide individual files.
Bug fixes
- Improved logic for filtering out Python libraries from results.
- Added sorting to memory sample intake, made JSON work with subprocesses by @sternj in #513
- Fix C should_trace to support OS-specific path separators by @emeryberger in #521
- Eliminates binary file reading/writing and dependency on linecache. by @emeryberger in #522
- Disable Windows switching of on/off status of profiling for background processes by @emeryberger in #523
- Fixed some Win32 issues. by @emeryberger in #524
Full Changelog: v1.5.16...v1.5.17
Improved performance, better visualizations, a number of minor fixes
What's Changed
Enhancements
- Memory profiling now occasionally much faster: reimplemented
settrace
callback in C by @sternj (#479, #492, #494) - Incorporates (RDP) algorithm to compress visualizations without sacrificing overall shape by @emeryberger
- Uses local fork of crdp to include its dependency on Cython
- Improves time and space reporting logic for units (e.g.,
ms
,s
,m
) by @emeryberger (2041b10)
Bug fixes
- Fixes an install issue that required pre-installation of Cython by @emeryberger, thanks to help from @SnoopJ (a830fd2)
- Fixes an issue bringing up the web browser on some platforms by @emeryberger
- Fixes an issue running Scalene on Windows by @emeryberger (esp. 8877e22)
- Fixes an issue running Scalene with older GPUs by @emeryberger (c1aa3cb)
Other
- Now builds wheel for Python 3.11 by @jaltmayerpizzorno (52247f7, df26dc2)
- Removed install-time dependency on
wheel
by @emeryberger (ad4da28)
Full Changelog: v1.5.15...v1.5.16
UI and CLI enhancements, improved multiprocessing/module support, and Windows bugfixes
What's Changed
- Now generates HTML instead of using a web server by @emeryberger in #477
- Clearer command-line parameters (
--cpu
,--gpu
, and--memory
) by @emeryberger in #477 - Improved multiprocessing and module support by @RuRo in #484
- Fixes several issues running Scalene on Windows by @emeryberger
New Contributors
Full Changelog: v1.5.14...v1.5.15
Maintenance release: various bug fixes
Changes in this release:
Bug fixes:
- Disabled GPU profiling for very old NVIDIA platforms that don't support profiling utilization and/or memory consumption; this used to lead to failures
- More graceful handling of non source files (which could lead to failures)
- Uses correct path regardless of changes to the working directory
UI:
- forced profiles in Jupyter cells to consume 100% of the available width
- minor usability fix for Jupyter, fixing an issue with
%scrun
Full Changelog: v1.5.13...v1.5.14
Disable GPU profiling for Apple, since it is unreliable
Changes in this release:
- Disabled Apple GPU profiling for now since it is unreliable (the Apple GPU does not record activity on a per-process basis).
Full Changelog: v1.5.12...v1.5.13
Improved memory reporting
Changes in this release:
- Corrected some memory attribution errors (primarily relating to calculating average memory per line/function, as well as a race condition).
Full Changelog: v1.5.11...v1.5.12