Date: Mon Jul 19 17:22:28 2021 -0500
- Fixes issues with Windows CUDA builds
- Removes requirement for NVTX_LIBRARY for NVTX_FOUND
Date: Sun Jul 18 05:53:34 2021 -0500
- Fixes: Fatal Python error: PyMUTEX_LOCK(gil->mutex) failed on macOS
Date: Wed Jul 14 20:42:29 2021 -0500
- Python gotcha fixes
- Fixed issues with mallocp segfaulting from Python
- Fixed storage merge() segfaulting
- New Python tools submodule (timemory.tools)
- tools.function_wrappers combines {start,stop}_{mpip,ompt,ncclp,mallocp} into one configurable handle and provides decorator + context-manager features
- New Python functions which are used within tools.function_wrappers
- timemory.start_function_wrappers
- timemory.stop_function_wrappers
- Fixed timemory-python-line-profiler script calling timemory.profiler
- API change in ring_buffer template
- read/write member functions return pointer to object read/written to instead of bytes
- API change in storage and tsettings
- Classes are declared as final to optimize any vtable calls
- Removed runtime_configurable restriction for do_enumerator_generate
- This enables user_bundles to be used again in Python
- Added operation::python_class_name
- Updated examples:
- ex_python_bindings (and libex_python_bindings)
- Fix to get_hash_identifier
- Removed concurrency comparison when generating a diff b/t two runs
- Fixed issues with popen.cpp guarding with TIMEMORY_WINDOWS but never defined
Date: Fri Jul 9 16:55:33 2021 -0500
- pytimem fix
- fix missing import of component_bundle and component_tuple
- added additional python tests
- Ability to build with static libraries: python bindings, mpip library, mallocp library, ompt library, ncclp library, KokkosP libraries
- Setting TIMEMORY_BUILD_PYTHON to OFF now results in searching for external pybind11 install
- Renamed some CMake files in cmake/Modules
- Updated caliper and gotcha submodules to support {CALIPER,GOTCHA}INSTALL{CONFIG,HEADER} options
- Added TIMEMORY_INSTALL_PYTHON option
- Fixed BUILD_STATIC_LIBS=ON + CMAKE_POSITION_INDEPENDENT_CODE=ON
- Fixed TIMEMORY_USE_CUDA=ON + TIMEMORY_REQUIRE_PACKAGES=ON to fail
- If TIMEMORY_REQUIRED_PACKAGES=OFF, search for packages first before adding submodule
- Extended setup.py to support more options and support non-development install (no headers or cmake config)
- Removed TIMEMORY_EMBED_PYTHON option
- Disable timemory-jump when no shared libraries are built since dlopen isn't possible
- Replaced allocator member functions construct, destroy, allocate, deallocate with calls to static functions of allocator traits
- added support for CMAKE_ARGS env variable in setup.py
- remove absolute rpath when SKBUILD/SPACK_BUILD (since these have staging directories)
- timemory-{c,cxx,fortran} alias libraries in build tree
- toggled python function profiler to not include line number by default
- This can cause strange results when generators are used
Date: Sun Jun 27 21:10:57 2021 -0500
- Numerous stability fixes
- Fortran module
- Compiler instrumentation
- NCCL support
- timemory-mallocp
- timemory-ncclp
- timemory-nvml
- Python line-by-line tracing
- I/O {read,write}_{char,bytes}
- Network stats components
- libunwind support
- CMake minimum upgraded to 3.15
- Type-traits for tree/flat/timeline
- Hierarchical serialization (hatchet support)
- Concepts
- Improved settings
- Python tracer (line-by-line)
- CTestNotes support
- Command-line options for settings
- Migrated cereal to internal (i.e.
cereal::
->tim::cereal::
) - Dramatically improved Windows support
- Improved kokkos support
- Command-line options
- Print help
- XML serialization support
- Shared caches for components
- Support for C++17
string_view
- Python bindings to storage classes
- Windows support for different CPU timers
- CUDA Cupti PCSampling support (CUDA v11+)
- User metadata
- Sampling support in opaque (i.e. within user-bundles)
- Static polymorphic base for bundlers
- Namespace re-organization
- CUDA compilation with Clang compiler
- Piecewise installation
- timem support md5sum hashing of command-line
papi_threading
settingis_invalid
in base_state- New operations
stack_push
stack_pop
insert
set_depth_change
set_is_flat
set_is_on_stack
set_is_invalid
set_iterator
get_is_flat
get_is_invalid
get_is_on_stack
get_depth
get_storage
get_iterator
Date: Wed, 30 Oct 2019 01:23:50 -0700
- Introducing the variadic interface
- Refer to new documentation at https://timemory.readthedocs.io
Date: Wed Oct 10 03:11:33 2018 -0700
- Fixed issue with cxx11_abi between compilers
- TIMEMORY_USE_MPI=OFF by default
- timem updates
Date: Wed Jun 6 03:19:39 2018 -0700
- Minor fix to avoid very rare FPE when serializing
Date: Tue Jun 6 01:32:45 2018 -0700
- fix to TiMemoryConfig.cmake when installed via sudo
Date: Tue Jun 5 00:28:10 2018 -0700
- self-cost available in manager + plotting safeguards
- Improved singleton deletion
- alternative colors for when len(_types) == 1 in plotting
- plotting label fix
Date: Wed May 16 11:38:28 2018 -0700
- Significant performance improvement (~2x)
- new C interface for TiMemory
- requires variable assignment and freeing
- void* atimer = TIMEMORY_AUTO_TIMER("")
- FREE_TIMEMORY_AUTO_TIMER(atimer)
- requires variable assignment and freeing
- command-line tools: timem (UNIX-only) and pytimem
- Environment control
- TIMEMORY_VERBOSE
- TIMEMORY_DISABLE_TIMER_MEMORY
- TIMEMORY_NUM_THREADS_ENV
- TIMEMORY_NUM_THREADS
- TIMEMORY_ENABLE
- TIMEMORY_TIMING_FORMAT
- TIMEMORY_TIMING_PRECISION
- TIMEMORY_TIMING_WIDTH
- TIMEMORY_TIMING_UNITS
- TIMEMORY_TIMING_SCIENTIFIC
- TIMEMORY_MEMORY_FORMAT
- TIMEMORY_MEMORY_PRECISION
- TIMEMORY_MEMORY_WIDTH
- TIMEMORY_MEMORY_UNITS
- TIMEMORY_MEMORY_SCIENTIFIC
- TIMEMORY_TIMING_MEMORY_FORMAT
- TIMEMORY_TIMING_MEMORY_PRECISION
- TIMEMORY_TIMING_MEMORY_WIDTH
- TIMEMORY_TIMING_MEMORY_UNITS
- TIMEMORY_TIMING_MEMORY_SCIENTIFIC
- Ability of push/pop default formatting
- improved thread-local singleton using C++ shared_ptrs
- automatic merge and deletion of manager instances at sub-thread exit
- Hard-code python exe into timemory python scripts
- Various fixes (plotting, argparse, etc.)
Date: Wed Apr 25 12:59:06 2018 -0700
- Large re-write of formatting
- Python format module with classes timemory.format.rss and timemory.format.timer
- Python units module
- format names variables prefix/suffix instead of begin/close
- timemory.rss_usage has more initialization options
- Intel -xHOST and -axMIC-AVX512 flags enabled for Intel compilers
- Added units.hpp
- Added formatters.{hpp,cpp}
- Some minor serialization updates
Date: Thu Apr 12 02:02:20 2018 -0700
- Fixes to Windows
Date: Tue Apr 10 07:40:01 2018 -0700
- Custom TiMemory namespace was removed, now just tim
- Large rewrite of plotting utilities resulting in a significant improvement
- Replaced timing_manager with manager but typedef in C++ and Python to allow backwards-compatibility
- Added new features to auto_timer
- Removed clone from timer
- Added rss_{tot,self}_min
- Updated pybind11 to v2.2.2
- Updated docs and README.rst
- Shared library linking + plotting fixes
- All cmake options are not prefixed with TIMEMORY_
- Improved Windows DLL support
- setup.py will install CMake config properly
- platform-default settings on whether to use dynamic linking (Windows=OFF, else=ON)
Date: Wed Feb 28 15:31:53 2018 -0800
- Improved testing + memory unit improvements
- Memory units are now always in multiples of 1024
- Added some thread-safety
- Updated README to deprecate is_class in decorator
Date: Wed Feb 28 02:49:51 2018 -0800
- added auto-detection of is_class in decorators
- Fixed build flags
- Removed -march=native (GNU) and -xHOST (Intel) from non-debug builds as these flags create illegal instructions in Docker -- specifically NERSC's Edison
Date: Tue Feb 6 05:12:56 2018 -0800
- Large restructuring to fix submodule nesting issue
- Python \3.1 now allows: "from timemory.util import rss_usage"
- requires importlib.util
- not available in older versions
- Better C++ auto_timer tagging and second option
- TIMEMORY_AUTO_TIMER (<func@'file'>:line)
- TIMEMORY_AUTO_TIMER_SIMPLE (func)
- TIMEMORY_AUTO_TIMER_SIMPLE was the old TIMEMORY_AUTO_TIMER
- Squashed bugs + I/O and test improvements
- Excluded non-displayed timers (i.e. falling below minimum) from setting the output width
- Improved MPI detection
- Included tests in installation --\timemory.tests.run(pattern="")
- timemory.plotting routines have improved handling of bar graphs to help eliminate hidden graphs in the overlay
- added context managers
- moved report_fname field in options to report_filename
- moved serial_fname field in options to serial_filename
Date: Wed Jan 31 14:28:19 2018 -0800
- I/O fix for RSS to report negative values (i.e. deallocation)
Date: Mon Jan 29 18:46:09 2018 -0800
- Backported CMake to support older version of CMake (previous min: 3.1.3, new min: 2.8.12)
Date: Mon Jan 29 18:46:09 2018 -0800
- added timemory.set_exit_action(...) capability for defining a function to handle the exit of the application due to a signal being raised (e.g. SIGHUP, SIGINT, SIGABRT)
Date: Mon Jan 29 16:20:06 2018 -0800
- removed Python 'cmake' requirement in 'setup.py
Date: Mon Jan 29 15:00:12 2018 -0800
- Added 'report_at_exit' parameter to auto_timer decorator
- Added added_args flag for auto_timer decorator
- Fixed I/O output bug
- Added setup.cfg
- Fixed auto_timer decorator issue with self.key, self.is_class, and self.add_args
Date: Fri Jan 26 17:24:42 2018 -0800
- Updated documentation for TiMemory 1.1b0
- added rss_usage decorator
- made a base class for the decorators
- update the setup.py to 1.1b0
- +=, -=, +, -, current, and peak methods to RSS in Python
- updated timemory_test.py
- restructured submodules: originally all submodules were under util, now only the decorators live there
- new submodules are: options, mpi_support, plotting, util, and signals
- timemory.options: I/O options, formerly timemory.util.options
- timemory.plotting: plotting utilities, formerly timemory.util.plot
- timemory.util: decorators, formerly all-encompassing submodule
- timemory.signals: signal enumeration, new submodule
- timemory.mpi_support: report MPI information, new submodule
- added new RSS capability (+=, -= usage)
- added Python RSS interface
- added signals interface