chainer.function_hooks.CupyMemoryProfileHook

class chainer.function_hooks.CupyMemoryProfileHook[source]

Function hook for measuring memory usage of functions in cupy memory pool.

Example

Code example:

from chainer.function_hooks import CupyMemoryProfileHook
hook = CupyMemoryProfileHook()
with hook:
    trainer.run()
hook.print_report()

Output example:

       FunctionName  UsedBytes  AcquiredBytes  Occurrence
     LinearFunction     5.16GB       179.98MB        3900
               ReLU   991.82MB       458.97MB        2600
SoftmaxCrossEntropy     7.71MB         5.08MB        1300
           Accuracy   617.97KB       351.00KB         700

where FunctionName is the name of function that calls the hook, and UsedBytes is the memory bytes the function used from cupy memory pool, and AcquiredBytes is the actual memory bytes the cupy memory pool acquired from GPU device on the function call, and Occurrence is the number of calls.

Variables:call_history – List of measurement results. It consists of the function that calls this hook, the memory bytes the function used from cupy memory pool, and the memory bytes the cupy memory pool acquired from GPU device on the function call.

Methods

__enter__()[source]
__exit__(*_)[source]
added(function=None)[source]
backward_postprocess(function, in_data, out_grad)[source]
backward_preprocess(function, in_data, out_grad)[source]
deleted(function=None)[source]
forward_postprocess(function, in_data)[source]
forward_preprocess(function, in_data)[source]
print_report(file=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>)[source]

Prints a summary report of memory profiling in functions.

summary()[source]

Returns a summary of memory profiling in functions.

Returns:A summarized dictionary whose keys are function names and values are dictionaries of used_bytes, acquired_bytes, and occurrrence.
total_acquired_bytes()[source]

Returns total bytes that cupy memory pool acquired from GPU.

total_used_bytes()[source]

Returns total bytes that functions used from cupy memory pool.

Attributes

name = 'CupyMemoryProfileHook'