torch_geometric.profile
一个用于简化函数性能分析的装饰器,例如,获取特定模型在特定数据集上的训练运行时间和内存统计信息。 |
|
一个上下文装饰器,用于方便地计时一个函数,例如,获取特定模型在特定数据集上的运行时间。 |
|
创建收集的运行时和内存统计信息的摘要。 |
|
给定一个 |
|
给定一个 |
|
给定一个 |
|
返回由Python垃圾收集器报告的已使用的CPU内存,单位为字节。 |
|
返回由Python垃圾收集器报告的已用GPU内存(以字节为单位)。 |
|
返回以兆字节为单位的空闲和已使用的GPU内存,由 |
|
返回XPU内存统计信息。 |
|
对接收相同参数集 |
|
启用NVTX分析功能。 |
GNN 分析包。
- profileit(device: str)[source]
一个用于简化函数性能分析的装饰器,例如,获取特定模型在特定数据集上的训练运行时间和内存统计信息。 如果
device是xpu,则返回GPUStats,如果device是cuda,则返回扩展对象CUDAStats。- Parameters:
device (str) – 用于性能分析的目标设备。选项有:
cuda和 obj:xpu。
@profileit("cuda") def train(model, optimizer, x, edge_index, y): optimizer.zero_grad() out = model(x, edge_index) loss = criterion(out, y) loss.backward() optimizer.step() return float(loss) loss, stats = train(model, x, edge_index, y)
- class timeit(log: bool = True, avg_time_divisor: int = 0)[source]
一个上下文装饰器,用于方便地计时一个函数,例如,获取特定模型在特定数据集上的运行时间。
@torch.no_grad() def test(model, x, edge_index): return model(x, edge_index) with timeit() as t: z = test(model, x, edge_index) time = t.duration
- Parameters:
- get_stats_summary(stats_list: Union[List[GPUStats], List[CUDAStats]]) Union[GPUStatsSummary, CUDAStatsSummary][source]
创建收集的运行时和内存统计信息的摘要。 如果传递了
GPUStats列表,则返回GPUStatsSummary, 否则(传递了CUDAStats列表), 返回CUDAStatsSummary。- Parameters:
stats_list (Union[List[GPUStats], List[CUDAStats]]) – 一个由
GPUStats或CUDAStats对象组成的列表,由profileit()返回。- Return type:
Union[GPUStatsSummary,CUDAStatsSummary]
- count_parameters(model: Module) int[source]
Given a
torch.nn.Module, count its trainable parameters.- Parameters:
model (torch.nn.Model) – 模型。
- Return type:
- get_model_size(model: Module) int[source]
Given a
torch.nn.Module, get its actual disk size in bytes.- Parameters:
model (torch model) – 模型。
- Return type:
- get_data_size(data: BaseData) int[source]
给定一个
torch_geometric.data.Data对象,获取其理论内存使用量(以字节为单位)。- Parameters:
data (torch_geometric.data.Data 或 torch_geometric.data.HeteroData) –
Data或HeteroData图对象。- Return type:
- get_gpu_memory_from_nvidia_smi(device: int = 0, digits: int = 2) Tuple[float, float][source]
返回以兆字节为单位的空闲和已用GPU内存,由
nivdia-smi报告。注意
nvidia-smi通常会高估实际程序使用的内存量,请参阅 这里。
- get_gpu_memory_from_ipex(device: int = 0, digits=2) Tuple[float, float, float][source]
返回XPU内存统计信息。
- benchmark(funcs: List[Callable], args: Union[Tuple[Any], List[Tuple[Any]]], num_steps: int, func_names: Optional[List[str]] = None, num_warmups: int = 10, backward: bool = False, per_step: bool = False, progress_bar: bool = False)[source]
对接收相同参数集
args的函数列表funcs进行基准测试。- Parameters:
funcs ([Callable]) – 要基准测试的函数列表。
args ((Any, ) 或 [(Any, )]) – 传递给函数的参数。 可以是
funcs中每个函数的参数列表,以防它们的头部不同。 或者,你可以传递动态生成参数的函数(例如,用于在不同大小上对模型进行基准测试时很有用)。num_steps (int) – 运行基准测试的步骤数。
func_names ([str], optional) – 函数的名称。如果未提供,将尝试从函数本身推断名称。 (默认值:
None)num_warmups (int, optional) – 预热步骤的数量。 (默认:
10)backward (bool, optional) – 如果设置为
True,将同时对前向和后向传递进行基准测试。(默认值:False)progress_bar (bool, 可选) – 如果设置为
True,将在基准测试期间打印进度条。(默认值:False)