sc_tools.memory — GPU and Memory#

GPU detection and memory profiling utilities.

import sc_tools.memory as memory

if memory.check_gpu_available():
    print("GPU ready")

memory.log_memory("before deconvolution")

GPU#

sc_tools.memory.check_gpu_available()[source]#

Check if GPU is available for PyTorch.

Returns:

True if GPU is available, False otherwise

Return type:

bool

Memory Profiling#

sc_tools.memory.get_memory_usage()[source]#

Get current memory usage in MB.

Returns:

Dictionary with memory usage metrics: - ‘rss_mb’: Resident Set Size in MB - ‘vms_mb’: Virtual Memory Size in MB (if psutil available) - ‘percent’: Memory usage as percentage of process (if psutil available) - ‘system_available_mb’: Available system memory in MB (if psutil available) - ‘system_percent’: System memory usage percentage (if psutil available) - ‘tracemalloc_current_mb’: Current traced memory (if tracemalloc active) - ‘tracemalloc_peak_mb’: Peak traced memory (if tracemalloc active)

Return type:

dict

sc_tools.memory.log_memory(step_name, adata=None, logger_instance=None)[source]#

Log memory usage at a specific step.

Parameters:
  • step_name (str) – Name of the step for logging

  • adata (AnnData, optional) – Optional AnnData object to estimate its memory usage

  • logger_instance (Logger, optional) – Custom logger instance. If None, uses module logger.

Returns:

Memory usage dictionary (from get_memory_usage)

Return type:

dict

sc_tools.memory.aggressive_cleanup()[source]#

Aggressively clean up memory.

Performs garbage collection and attempts to release memory back to the operating system (platform-dependent).

sc_tools.memory.estimate_adata_memory(adata)[source]#

Estimate memory usage of AnnData object in MB.

Parameters:

adata (AnnData) – AnnData object to estimate

Returns:

Estimated memory usage in MB

Return type:

float

sc_tools.memory.check_memory_threshold(threshold_mb=8000, threshold_percent=85.0, logger_instance=None)[source]#

Check if memory usage exceeds thresholds.

Parameters:
  • threshold_mb (float) – Maximum RSS memory in MB

  • threshold_percent (float) – Maximum system memory usage percentage

  • logger_instance (Logger, optional) – Custom logger instance. If None, uses module logger.

Returns:

True if memory is below thresholds, False otherwise

Return type:

bool