Files
rocm-systems/tests/rocprofv3/pc-sampling/host-trap/exec-mask-manipulation/conftest.py
T
Nagaraj, Sriraksha 50b185b9ac rocprofv3: PC Sampling Support (#14)
* Adding tool pc sampling support

Fixing merge issue

tool support on SDKupdates

link amd-comgr

Sanitizer failure fix

fix format

Addressing review comments

misc fix

Adding dispatch id to the CSV output

AddingCHANGELOG

[ROCProfV3][PC Sampling] Initial ROCProfV3 PC sampling tests for JSON and CSV formats (#17)

ROCProfV3 initial tests for JSON and CSV output.

Simple kernels that simplify the verification of samples to instruction decoding
has been introduced.

removing option to enable pc sampling explicitly

Adding documentation

no pc-sampling option in tests anymore

Addressing review comments

Updating docs

an option for choosing whether all units must be sampled

try ignoring PC sampling tests (#36)

* run pc-sampling tests on MI2xx runners
* use v_fmac_f32 instead of s_nop 0 in tests

* fixing docs
2024-12-04 18:32:48 -06:00

68 líneas
1.8 KiB
Python

#!/usr/bin/env python3
import json
import os
import pytest
import pandas as pd
from rocprofiler_sdk.pytest_utils.dotdict import dotdict
from rocprofiler_sdk.pytest_utils import collapse_dict_list
def pytest_addoption(parser):
parser.addoption(
"--input-csv",
action="store",
help="Path to CSV file.",
)
parser.addoption(
"--input-json",
action="store",
help="Path to CSV file.",
)
parser.addoption(
"--all-sampled",
action="store",
help="All SW and HW units must be sampled.",
)
@pytest.fixture
def input_csv(request):
filename = request.config.getoption("--input-csv")
if not os.path.isfile(filename):
# The CSV file is not generated, because the dependency test
# responsible to generate this file was skipped or failed.
# Thus emit the message to skip this test as well.
print("PC sampling unavailable")
else:
with open(filename, "r") as inp:
return pd.read_csv(
inp,
na_filter=False, # parse empty fields as ""
keep_default_na=False, # parse empty fields as ""
dtype={
"Exec_Mask": "uint64",
"Instruction": str,
"Instruction_Comment": str,
},
)
@pytest.fixture
def input_json(request):
filename = request.config.getoption("--input-json")
with open(filename, "r") as inp:
# Significant overhead of 5-6secs observed when feeding
# data into the dotdict.
# Using plain python dict instead
return collapse_dict_list(json.load(inp))
@pytest.fixture
def all_sampled(request):
_all_sampled_str = request.config.getoption("--all-sampled")
return _all_sampled_str == "True"