├── genai-perf ├── tests │ └── __init__.py ├── genai_perf │ ├── .gitignore │ ├── inputs │ │ ├── retrievers │ │ │ ├── source_images │ │ │ │ ├── dlss.png │ │ │ │ ├── h100.jpeg │ │ │ │ ├── h200.jpeg │ │ │ │ └── jensen.jpeg │ │ │ └── __init__.py │ │ └── __init__.py │ ├── record │ │ └── types │ │ │ ├── __init__.py │ │ │ ├── gpu_clock_sm_p1.py │ │ │ ├── gpu_clock_sm_p5.py │ │ │ ├── request_latency_p1.py │ │ │ ├── request_latency_p5.py │ │ │ ├── xid_last_error_p1.py │ │ │ ├── xid_last_error_p5.py │ │ │ ├── gpu_clock_sm_avg.py │ │ │ ├── gpu_clock_sm_max.py │ │ │ ├── gpu_clock_sm_min.py │ │ │ ├── gpu_clock_sm_p10.py │ │ │ ├── gpu_clock_sm_p25.py │ │ │ ├── gpu_clock_sm_p50.py │ │ │ ├── gpu_clock_sm_p75.py │ │ │ ├── gpu_clock_sm_p90.py │ │ │ ├── gpu_clock_sm_p95.py │ │ │ ├── gpu_clock_sm_p99.py │ │ │ ├── gpu_clock_sm_std.py │ │ │ ├── request_latency_avg.py │ │ │ ├── request_latency_max.py │ │ │ ├── request_latency_min.py │ │ │ ├── request_latency_p10.py │ │ │ ├── request_latency_p25.py │ │ │ ├── request_latency_p50.py │ │ │ ├── request_latency_p75.py │ │ │ ├── request_latency_p90.py │ │ │ ├── request_latency_p95.py │ │ │ ├── request_latency_p99.py │ │ │ ├── request_latency_std.py │ │ │ ├── xid_last_error_max.py │ │ │ ├── xid_last_error_min.py │ │ │ ├── xid_last_error_p10.py │ │ │ ├── xid_last_error_p25.py │ │ │ ├── xid_last_error_p50.py │ │ │ ├── xid_last_error_p75.py │ │ │ ├── xid_last_error_p90.py │ │ │ ├── xid_last_error_p95.py │ │ │ ├── xid_last_error_p99.py │ │ │ ├── xid_last_error_avg.py │ │ │ ├── xid_last_error_std.py │ │ │ ├── gpu_memory_free_p1.py │ │ │ ├── gpu_memory_free_p5.py │ │ │ ├── gpu_memory_used_p1.py │ │ │ ├── gpu_memory_used_p5.py │ │ │ ├── gpu_power_usage_p1.py │ │ │ ├── gpu_power_usage_p5.py │ │ │ ├── sm_utilization_max.py │ │ │ ├── sm_utilization_min.py │ │ │ ├── sm_utilization_p50.py │ │ │ ├── sm_utilization_p75.py │ │ │ ├── sm_utilization_p90.py │ │ │ ├── sm_utilization_p95.py │ │ │ ├── sm_utilization_p99.py │ │ │ ├── gpu_memory_free_max.py │ │ │ ├── gpu_memory_free_min.py │ │ │ ├── gpu_memory_free_p10.py │ │ │ ├── gpu_memory_free_p25.py │ │ │ ├── gpu_memory_free_p50.py │ │ │ ├── gpu_memory_free_p75.py │ │ │ ├── gpu_memory_free_p90.py │ │ │ ├── gpu_memory_free_p95.py │ │ │ ├── gpu_memory_free_p99.py │ │ │ ├── gpu_memory_used_max.py │ │ │ ├── gpu_memory_used_min.py │ │ │ ├── gpu_memory_used_p10.py │ │ │ ├── gpu_memory_used_p25.py │ │ │ ├── gpu_memory_used_p50.py │ │ │ ├── gpu_memory_used_p75.py │ │ │ ├── gpu_memory_used_p90.py │ │ │ ├── gpu_memory_used_p95.py │ │ │ ├── gpu_memory_used_p99.py │ │ │ ├── gpu_power_limit_avg.py │ │ │ ├── gpu_power_usage_avg.py │ │ │ ├── gpu_power_usage_max.py │ │ │ ├── gpu_power_usage_min.py │ │ │ ├── gpu_power_usage_p10.py │ │ │ ├── gpu_power_usage_p25.py │ │ │ ├── gpu_power_usage_p50.py │ │ │ ├── gpu_power_usage_p75.py │ │ │ ├── gpu_power_usage_p90.py │ │ │ ├── gpu_power_usage_p95.py │ │ │ ├── gpu_power_usage_p99.py │ │ │ ├── gpu_power_usage_std.py │ │ │ ├── gpu_temperature_p1.py │ │ │ ├── gpu_temperature_p5.py │ │ │ ├── gpu_utilization_p1.py │ │ │ ├── gpu_utilization_p5.py │ │ │ ├── sm_utilization_avg.py │ │ │ ├── sm_utilization_std.py │ │ │ ├── time_to_first_token_avg.py │ │ │ ├── time_to_first_token_max.py │ │ │ ├── time_to_first_token_min.py │ │ │ ├── time_to_first_token_p1.py │ │ │ ├── time_to_first_token_p25.py │ │ │ ├── time_to_first_token_p5.py │ │ │ ├── time_to_first_token_p50.py │ │ │ ├── time_to_first_token_p75.py │ │ │ ├── time_to_first_token_p90.py │ │ │ ├── time_to_first_token_p95.py │ │ │ ├── time_to_first_token_p99.py │ │ │ ├── time_to_first_token_std.py │ │ │ ├── gpu_clock_memory_p1.py │ │ │ ├── gpu_clock_memory_p5.py │ │ │ ├── gpu_memory_free_avg.py │ │ │ ├── gpu_memory_free_std.py │ │ │ ├── gpu_memory_used_avg.py │ │ │ ├── gpu_memory_used_std.py │ │ │ ├── gpu_temperature_avg.py │ │ │ ├── gpu_temperature_max.py │ │ │ ├── gpu_temperature_min.py │ │ │ ├── gpu_temperature_p10.py │ │ │ ├── gpu_temperature_p25.py │ │ │ ├── gpu_temperature_p50.py │ │ │ ├── gpu_temperature_p75.py │ │ │ ├── gpu_temperature_p90.py │ │ │ ├── gpu_temperature_p95.py │ │ │ ├── gpu_temperature_p99.py │ │ │ ├── gpu_temperature_std.py │ │ │ ├── gpu_utilization_avg.py │ │ │ ├── gpu_utilization_max.py │ │ │ ├── gpu_utilization_min.py │ │ │ ├── gpu_utilization_p10.py │ │ │ ├── gpu_utilization_p25.py │ │ │ ├── gpu_utilization_p50.py │ │ │ ├── gpu_utilization_p75.py │ │ │ ├── gpu_utilization_p90.py │ │ │ ├── gpu_utilization_p95.py │ │ │ ├── gpu_utilization_p99.py │ │ │ ├── inter_token_latency_avg.py │ │ │ ├── inter_token_latency_max.py │ │ │ ├── inter_token_latency_min.py │ │ │ ├── inter_token_latency_p1.py │ │ │ ├── inter_token_latency_p25.py │ │ │ ├── inter_token_latency_p5.py │ │ │ ├── inter_token_latency_p50.py │ │ │ ├── inter_token_latency_p75.py │ │ │ ├── inter_token_latency_p90.py │ │ │ ├── inter_token_latency_p95.py │ │ │ ├── inter_token_latency_p99.py │ │ │ ├── inter_token_latency_std.py │ │ │ ├── time_to_first_token_p10.py │ │ │ ├── time_to_second_token_avg.py │ │ │ ├── time_to_second_token_max.py │ │ │ ├── time_to_second_token_min.py │ │ │ ├── time_to_second_token_p1.py │ │ │ ├── time_to_second_token_p25.py │ │ │ ├── time_to_second_token_p5.py │ │ │ ├── time_to_second_token_p50.py │ │ │ ├── time_to_second_token_p75.py │ │ │ ├── time_to_second_token_p90.py │ │ │ ├── time_to_second_token_p95.py │ │ │ ├── time_to_second_token_p99.py │ │ │ ├── time_to_second_token_std.py │ │ │ ├── gpu_clock_memory_avg.py │ │ │ ├── gpu_clock_memory_max.py │ │ │ ├── gpu_clock_memory_min.py │ │ │ ├── gpu_clock_memory_p10.py │ │ │ ├── gpu_clock_memory_p25.py │ │ │ └── gpu_clock_memory_p50.py │ └── exceptions.py ├── .gitignore └── docs │ └── assets │ ├── request_latency.jpeg │ ├── time_to_first_token.jpeg │ ├── time_to_first_token_vs_input_sequence_lengths.jpeg │ ├── token-to-token_latency_vs_output_token_position.jpeg │ └── distribution_of_input_sequence_lengths_to_output_sequence_lengths.jpeg ├── .gitignore └── .devcontainer └── devcontainer.json /genai-perf/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/.gitignore: -------------------------------------------------------------------------------- 1 | *.json 2 | *.cache 3 | -------------------------------------------------------------------------------- /genai-perf/.gitignore: -------------------------------------------------------------------------------- 1 | artifacts/ 2 | __pycache__/ 3 | *.pyc 4 | -------------------------------------------------------------------------------- /genai-perf/docs/assets/request_latency.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/docs/assets/request_latency.jpeg -------------------------------------------------------------------------------- /genai-perf/docs/assets/time_to_first_token.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/docs/assets/time_to_first_token.jpeg -------------------------------------------------------------------------------- /genai-perf/genai_perf/inputs/retrievers/source_images/dlss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/genai_perf/inputs/retrievers/source_images/dlss.png -------------------------------------------------------------------------------- /genai-perf/genai_perf/inputs/retrievers/source_images/h100.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/genai_perf/inputs/retrievers/source_images/h100.jpeg -------------------------------------------------------------------------------- /genai-perf/genai_perf/inputs/retrievers/source_images/h200.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/genai_perf/inputs/retrievers/source_images/h200.jpeg -------------------------------------------------------------------------------- /genai-perf/genai_perf/inputs/retrievers/source_images/jensen.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/genai_perf/inputs/retrievers/source_images/jensen.jpeg -------------------------------------------------------------------------------- /genai-perf/docs/assets/time_to_first_token_vs_input_sequence_lengths.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/docs/assets/time_to_first_token_vs_input_sequence_lengths.jpeg -------------------------------------------------------------------------------- /genai-perf/docs/assets/token-to-token_latency_vs_output_token_position.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/docs/assets/token-to-token_latency_vs_output_token_position.jpeg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # C++ 2 | /build 3 | 4 | # GenAI-Perf Artifacts 5 | artifacts/ 6 | 7 | # Avoid squashing local people's file for now 8 | /.vscode 9 | 10 | # Python setuptools artifacts 11 | *.egg-info/ 12 | dist/ 13 | bin/ 14 | -------------------------------------------------------------------------------- /genai-perf/docs/assets/distribution_of_input_sequence_lengths_to_output_sequence_lengths.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/triton-inference-server/perf_analyzer/HEAD/genai-perf/docs/assets/distribution_of_input_sequence_lengths_to_output_sequence_lengths.jpeg -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "perf_analyzer Dev Container", 3 | "image": "gitlab-master.nvidia.com:5005/dl/dgx/tritonserver:master-py3-base", 4 | "postCreateCommand": "apt update && apt install -y --no-install-recommends clang-format-16 cmake gdb rapidjson-dev libssl-dev && update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-16 100", 5 | "runArgs": ["--gpus=all", "--net=host", "--pull=always"], 6 | "customizations": { 7 | "vscode": { 8 | "extensions": ["ms-vscode.cpptools", "ms-vscode.cmake-tools", "xaver.clang-format", "ms-python.python"] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/inputs/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/exceptions.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | class GenAIPerfException(Exception): 17 | """ 18 | A custom exception specific to the genai-perf 19 | """ 20 | 21 | pass 22 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/inputs/retrievers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from .synthetic_audio_generator import SyntheticAudioGenerator 16 | from .synthetic_image_generator import SyntheticImageGenerator 17 | from .synthetic_prompt_generator import SyntheticPromptGenerator 18 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP1(GPUClockSMBase): 22 | """ 23 | A record for p1 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP5(GPUClockSMBase): 22 | """ 23 | A record for p5 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP1(RequestLatencyBase): 22 | """ 23 | A record for p1 Request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP5(RequestLatencyBase): 22 | """ 23 | A record for p5 Request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP1(XidLastErrorBase): 22 | """ 23 | A record for p1 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP5(XidLastErrorBase): 22 | """ 23 | A record for p5 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMAvg(GPUClockSMBase): 22 | """ 23 | A record for avg GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMMax(GPUClockSMBase): 22 | """ 23 | A record for max GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMMin(GPUClockSMBase): 22 | """ 23 | A record for min GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP10(GPUClockSMBase): 22 | """ 23 | A record for p10 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP25(GPUClockSMBase): 22 | """ 23 | A record for p25 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP50(GPUClockSMBase): 22 | """ 23 | A record for p50 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP75(GPUClockSMBase): 22 | """ 23 | A record for p75 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP90(GPUClockSMBase): 22 | """ 23 | A record for p90 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP95(GPUClockSMBase): 22 | """ 23 | A record for p95 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMP99(GPUClockSMBase): 22 | """ 23 | A record for p99 GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_sm_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_sm_base import GPUClockSMBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockSMStd(GPUClockSMBase): 22 | """ 23 | A record for std GPU Clock SM metric 24 | """ 25 | 26 | tag = GPUClockSMBase.base_tag + "_std" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. GPU Clock SM (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyAvg(RequestLatencyBase): 22 | """ 23 | A record for avg request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyMaX(RequestLatencyBase): 22 | """ 23 | A record for max request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_max" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyMin(RequestLatencyBase): 22 | """ 23 | A record for min request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_min" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP10(RequestLatencyBase): 22 | """ 23 | A record for p10 Request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP25(RequestLatencyBase): 22 | """ 23 | A record for p25 request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP50(RequestLatencyBase): 22 | """ 23 | A record for p50 request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP75(RequestLatencyBase): 22 | """ 23 | A record for p75 request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP90(RequestLatencyBase): 22 | """ 23 | A record for p90 request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP95(RequestLatencyBase): 22 | """ 23 | A record for p95 request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyP99(RequestLatencyBase): 22 | """ 23 | A record for p99 request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/request_latency_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.request_latency_base import RequestLatencyBase 18 | 19 | 20 | @total_ordering 21 | class RequestLatencyStd(RequestLatencyBase): 22 | """ 23 | A record for std request latency metric 24 | """ 25 | 26 | tag = RequestLatencyBase.base_tag + "_std" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. Request Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorMax(XidLastErrorBase): 22 | """ 23 | A record for max Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorMin(XidLastErrorBase): 22 | """ 23 | A record for min Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP10(XidLastErrorBase): 22 | """ 23 | A record for p10 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP25(XidLastErrorBase): 22 | """ 23 | A record for p25 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP50(XidLastErrorBase): 22 | """ 23 | A record for p50 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP75(XidLastErrorBase): 22 | """ 23 | A record for p75 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP90(XidLastErrorBase): 22 | """ 23 | A record for p90 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP95(XidLastErrorBase): 22 | """ 23 | A record for p95 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorP99(XidLastErrorBase): 22 | """ 23 | A record for p99 Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorAvg(XidLastErrorBase): 22 | """ 23 | A record for avg Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/xid_last_error_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.xid_last_error_base import XidLastErrorBase 18 | 19 | 20 | @total_ordering 21 | class XidLastErrorStd(XidLastErrorBase): 22 | """ 23 | A record for std Xid Last Error 24 | """ 25 | 26 | tag = XidLastErrorBase.base_tag + "_std" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. Xid Last Error" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP1(GPUMemoryFreeBase): 22 | """ 23 | A record for p1 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP5(GPUMemoryFreeBase): 22 | """ 23 | A record for p5 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP1(GPUMemoryUsedBase): 22 | """ 23 | A record for p1 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP5(GPUMemoryUsedBase): 22 | """ 23 | A record for p5 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GpuPowerUsageP1(GPUPowerUsageBase): 22 | """ 23 | A record for p1 GPU power usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GpuPowerUsageP5(GPUPowerUsageBase): 22 | """ 23 | A record for p5 GPU power usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationMax(SMUtilizationBase): 22 | """ 23 | A record for max SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationMin(SMUtilizationBase): 22 | """ 23 | A record for min SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationP50(SMUtilizationBase): 22 | """ 23 | A record for p50 SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "P50 SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationP75(SMUtilizationBase): 22 | """ 23 | A record for p75 SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "P75 SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationP90(SMUtilizationBase): 22 | """ 23 | A record for p90 SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "P90 SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationP95(SMUtilizationBase): 22 | """ 23 | A record for p95 SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "P95 SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationP99(SMUtilizationBase): 22 | """ 23 | A record for p99 SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "P99 SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeMax(GPUMemoryFreeBase): 22 | """ 23 | A record for max GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeMin(GPUMemoryFreeBase): 22 | """ 23 | A record for min GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP10(GPUMemoryFreeBase): 22 | """ 23 | A record for p10 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP25(GPUMemoryFreeBase): 22 | """ 23 | A record for p25 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP50(GPUMemoryFreeBase): 22 | """ 23 | A record for p50 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP75(GPUMemoryFreeBase): 22 | """ 23 | A record for p75 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP90(GPUMemoryFreeBase): 22 | """ 23 | A record for p90 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP95(GPUMemoryFreeBase): 22 | """ 23 | A record for p95 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeP99(GPUMemoryFreeBase): 22 | """ 23 | A record for p99 GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedMax(GPUMemoryUsedBase): 22 | """ 23 | A record for max GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedMin(GPUMemoryUsedBase): 22 | """ 23 | A record for min GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP10(GPUMemoryUsedBase): 22 | """ 23 | A record for p10 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP25(GPUMemoryUsedBase): 22 | """ 23 | A record for p25 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP50(GPUMemoryUsedBase): 22 | """ 23 | A record for p50 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP75(GPUMemoryUsedBase): 22 | """ 23 | A record for p75 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP90(GPUMemoryUsedBase): 22 | """ 23 | A record for p90 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP95(GPUMemoryUsedBase): 22 | """ 23 | A record for p95 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedP99(GPUMemoryUsedBase): 22 | """ 23 | A record for p99 GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_limit_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_limit_base import GPUPowerLimitBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerLimitAvg(GPUPowerLimitBase): 22 | """ 23 | A record for avg GPU Power Limit metric 24 | """ 25 | 26 | tag = GPUPowerLimitBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Power Limit (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageAvg(GPUPowerUsageBase): 22 | """ 23 | A record for avg GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageMax(GPUPowerUsageBase): 22 | """ 23 | A record for max GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageMin(GPUPowerUsageBase): 22 | """ 23 | A record for min GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GpuPowerUsageP10(GPUPowerUsageBase): 22 | """ 23 | A record for p10 GPU power usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageP25(GPUPowerUsageBase): 22 | """ 23 | A record for p25 GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageP50(GPUPowerUsageBase): 22 | """ 23 | A record for p50 GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageP75(GPUPowerUsageBase): 22 | """ 23 | A record for p75 GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageP90(GPUPowerUsageBase): 22 | """ 23 | A record for p90 GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageP95(GPUPowerUsageBase): 22 | """ 23 | A record for p95 GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageP99(GPUPowerUsageBase): 22 | """ 23 | A record for p99 GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_power_usage_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_power_usage_base import GPUPowerUsageBase 18 | 19 | 20 | @total_ordering 21 | class GPUPowerUsageStd(GPUPowerUsageBase): 22 | """ 23 | A record for std GPU Power Usage metric 24 | """ 25 | 26 | tag = GPUPowerUsageBase.base_tag + "_std" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. GPU Power Usage (W)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP1(GPUTemperatureBase): 22 | """ 23 | A record for p1 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP5(GPUTemperatureBase): 22 | """ 23 | A record for p5 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GpuUtilizationP1(GPUUtilizationBase): 22 | """ 23 | A record for p1 GPU utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GpuUtilizationP5(GPUUtilizationBase): 22 | """ 23 | A record for p5 GPU utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationAvg(SMUtilizationBase): 22 | """ 23 | A record for avg SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/sm_utilization_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.sm_utilization_base import SMUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class SMUtilizationStd(SMUtilizationBase): 22 | """ 23 | A record for std SM Utilization metric 24 | """ 25 | 26 | tag = SMUtilizationBase.base_tag + "_std" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. SM Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenAvg(TimeToFirstTokenBase): 22 | """ 23 | A record for avg Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenMax(TimeToFirstTokenBase): 22 | """ 23 | A record for max Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_max" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenMin(TimeToFirstTokenBase): 22 | """ 23 | A record for min Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_min" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP1(TimeToFirstTokenBase): 22 | """ 23 | A record for p1 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP25(TimeToFirstTokenBase): 22 | """ 23 | A record for p25 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP5(TimeToFirstTokenBase): 22 | """ 23 | A record for p5 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP50(TimeToFirstTokenBase): 22 | """ 23 | A record for p50 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP75(TimeToFirstTokenBase): 22 | """ 23 | A record for p75 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP90(TimeToFirstTokenBase): 22 | """ 23 | A record for p90 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP95(TimeToFirstTokenBase): 22 | """ 23 | A record for p95 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP99(TimeToFirstTokenBase): 22 | """ 23 | A record for p99 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenMin(TimeToFirstTokenBase): 22 | """ 23 | A record for std Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_std" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemory1(GPUClockMemoryBase): 22 | """ 23 | A record for p1 GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 GPU Clock Memory (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemoryP5(GPUClockMemoryBase): 22 | """ 23 | A record for p5 GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 GPU Clock Memory (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeAvg(GPUMemoryFreeBase): 22 | """ 23 | A record for avg GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_free_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_free_base import GPUMemoryFreeBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryFreeStd(GPUMemoryFreeBase): 22 | """ 23 | A record for std GPU memory free metric 24 | """ 25 | 26 | tag = GPUMemoryFreeBase.base_tag + "_std" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. GPU Memory Free (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedAvg(GPUMemoryUsedBase): 22 | """ 23 | A record for avg GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_memory_used_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_memory_used_base import GPUMemoryUsedBase 18 | 19 | 20 | @total_ordering 21 | class GpuMemoryUsedStd(GPUMemoryUsedBase): 22 | """ 23 | A record for std GPU memory used metric 24 | """ 25 | 26 | tag = GPUMemoryUsedBase.base_tag + "_std" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. GPU Memory Used (GB)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureAvg(GPUTemperatureBase): 22 | """ 23 | A record for avg GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureMax(GPUTemperatureBase): 22 | """ 23 | A record for max GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureMin(GPUTemperatureBase): 22 | """ 23 | A record for min GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP10(GPUTemperatureBase): 22 | """ 23 | A record for p10 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP25(GPUTemperatureBase): 22 | """ 23 | A record for p25 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP50(GPUTemperatureBase): 22 | """ 23 | A record for p50 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP75(GPUTemperatureBase): 22 | """ 23 | A record for p75 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP90(GPUTemperatureBase): 22 | """ 23 | A record for p90 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP95(GPUTemperatureBase): 22 | """ 23 | A record for p95 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureP99(GPUTemperatureBase): 22 | """ 23 | A record for p99 GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_temperature_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_temperature_base import GPUTemperatureBase 18 | 19 | 20 | @total_ordering 21 | class GpuTemperatureStd(GPUTemperatureBase): 22 | """ 23 | A record for std GPU Temperature metric 24 | """ 25 | 26 | tag = GPUTemperatureBase.base_tag + "_std" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std. GPU Temperature (°C)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationAvg(GPUUtilizationBase): 22 | """ 23 | A record for avg GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationMax(GPUUtilizationBase): 22 | """ 23 | A record for max GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationMin(GPUUtilizationBase): 22 | """ 23 | A record for min GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GpuUtilizationP10(GPUUtilizationBase): 22 | """ 23 | A record for p10 GPU utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationP25(GPUUtilizationBase): 22 | """ 23 | A record for p25 GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationP50(GPUUtilizationBase): 22 | """ 23 | A record for p50 GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationP75(GPUUtilizationBase): 22 | """ 23 | A record for p75 GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationP90(GPUUtilizationBase): 22 | """ 23 | A record for p90 GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationP95(GPUUtilizationBase): 22 | """ 23 | A record for p95 GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_utilization_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_utilization_base import GPUUtilizationBase 18 | 19 | 20 | @total_ordering 21 | class GPUUtilizationP99(GPUUtilizationBase): 22 | """ 23 | A record for p99 GPU Utilization metric 24 | """ 25 | 26 | tag = GPUUtilizationBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 GPU Utilization (%)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyAvg(InterTokenLatencyBase): 22 | """ 23 | A record for avg Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyMax(InterTokenLatencyBase): 22 | """ 23 | A record for max Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_max" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyMin(InterTokenLatencyBase): 22 | """ 23 | A record for min Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_min" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP1(InterTokenLatencyBase): 22 | """ 23 | A record for p1 Inter-token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP25(InterTokenLatencyBase): 22 | """ 23 | A record for p25 Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP5(InterTokenLatencyBase): 22 | """ 23 | A record for p5 Inter-token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP50(InterTokenLatencyBase): 22 | """ 23 | A record for p50 Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP75(InterTokenLatencyBase): 22 | """ 23 | A record for p75 Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP90(InterTokenLatencyBase): 22 | """ 23 | A record for p90 Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP95(InterTokenLatencyBase): 22 | """ 23 | A record for p95 Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyP99(InterTokenLatencyBase): 22 | """ 23 | A record for p99 Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/inter_token_latency_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.inter_token_latency_base import InterTokenLatencyBase 18 | 19 | 20 | @total_ordering 21 | class InterTokenLatencyStd(InterTokenLatencyBase): 22 | """ 23 | A record for std Inter token latency metric 24 | """ 25 | 26 | tag = InterTokenLatencyBase.base_tag + "_std" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std Inter Token Latency (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_first_token_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_first_token_base import TimeToFirstTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToFirstTokenP10(TimeToFirstTokenBase): 22 | """ 23 | A record for p10 Time to first token metric 24 | """ 25 | 26 | tag = TimeToFirstTokenBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 Time To First Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenAvg(TimeToSecondTokenBase): 22 | """ 23 | A record for avg Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenMax(TimeToSecondTokenBase): 22 | """ 23 | A record for max Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_max" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenMin(TimeToSecondTokenBase): 22 | """ 23 | A record for min Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_min" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p1.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP1(TimeToSecondTokenBase): 22 | """ 23 | A record for p1 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p1" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p1 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP25(TimeToSecondTokenBase): 22 | """ 23 | A record for p25 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p5.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP5(TimeToSecondTokenBase): 22 | """ 23 | A record for p5 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p5" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p5 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP50(TimeToSecondTokenBase): 22 | """ 23 | A record for p50 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p75.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP75(TimeToSecondTokenBase): 22 | """ 23 | A record for p75 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p75" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p75 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p90.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP90(TimeToSecondTokenBase): 22 | """ 23 | A record for p90 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p90" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p90 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p95.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP95(TimeToSecondTokenBase): 22 | """ 23 | A record for p95 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p95" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p95 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_p99.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenP99(TimeToSecondTokenBase): 22 | """ 23 | A record for p99 Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_p99" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p99 Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/time_to_second_token_std.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.time_to_second_token_base import TimeToSecondTokenBase 18 | 19 | 20 | @total_ordering 21 | class TimeToSecondTokenMin(TimeToSecondTokenBase): 22 | """ 23 | A record for std Time to second token metric 24 | """ 25 | 26 | tag = TimeToSecondTokenBase.base_tag + "_std" 27 | 28 | def __init__(self, value, timestamp=0): 29 | super().__init__(value, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Std Time To Second Token (ms)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_avg.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemoryAvg(GPUClockMemoryBase): 22 | """ 23 | A record for avg GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_avg" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Avg. GPU Clock Memory (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_max.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemoryMax(GPUClockMemoryBase): 22 | """ 23 | A record for max GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_max" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Max GPU Clock Memory (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_min.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemoryMin(GPUClockMemoryBase): 22 | """ 23 | A record for min GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_min" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "Min GPU Clock Memory (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_p10.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemoryP10(GPUClockMemoryBase): 22 | """ 23 | A record for p10 GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_p10" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p10 GPU Clock Memory (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_p25.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemoryP25(GPUClockMemoryBase): 22 | """ 23 | A record for p25 GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_p25" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p25 GPU Clock Memory (MHz)" 34 | -------------------------------------------------------------------------------- /genai-perf/genai_perf/record/types/gpu_clock_memory_p50.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from functools import total_ordering 16 | 17 | from genai_perf.record.types.gpu_clock_memory_base import GPUClockMemoryBase 18 | 19 | 20 | @total_ordering 21 | class GpuClockMemoryP50(GPUClockMemoryBase): 22 | """ 23 | A record for p50 GPU Clock Memory metric 24 | """ 25 | 26 | tag = GPUClockMemoryBase.base_tag + "_p50" 27 | 28 | def __init__(self, value, device_uuid=None, timestamp=0): 29 | super().__init__(value, device_uuid, timestamp) 30 | 31 | @classmethod 32 | def header(cls, aggregation_tag=False) -> str: 33 | return "p50 GPU Clock Memory (MHz)" 34 | --------------------------------------------------------------------------------