Files
rocm-systems/tests/test_analyze_commands.py
T

672 lines
21 KiB
Python
Raw Normal View History

2025-01-02 13:29:47 -08:00
import os
2024-02-28 11:52:43 -06:00
import shutil
2025-01-02 13:29:47 -08:00
from importlib.machinery import SourceFileLoader
from unittest.mock import patch
2024-02-28 11:52:43 -06:00
import pandas as pd
2025-01-02 13:29:47 -08:00
import pytest
import test_utils
2022-11-04 14:49:36 -05:00
config = {}
config["cleanup"] = True if "PYTEST_XDIST_WORKER_COUNT" in os.environ else False
2024-05-31 20:49:15 +00:00
indirs = [
"tests/workloads/vcopy/MI100",
"tests/workloads/vcopy/MI200",
"tests/workloads/vcopy/MI300A_A1",
2024-05-31 20:49:15 +00:00
"tests/workloads/vcopy/MI300X_A1",
2025-04-03 02:21:18 -04:00
"tests/workloads/vcopy/MI350",
]
2024-02-07 12:52:44 -06:00
2024-05-31 20:49:15 +00:00
2024-02-07 12:52:44 -06:00
@pytest.mark.misc
2025-02-20 17:51:57 -05:00
def test_valid_path(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(["analyze", "--path", workload_dir])
assert code == 0
2022-11-04 14:49:36 -05:00
2024-03-15 13:40:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-03-15 13:54:40 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.misc
2025-02-20 17:51:57 -05:00
def test_list_kernels(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--list-stats"]
)
assert code == 0
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.list_metrics
2025-02-20 17:51:57 -05:00
def test_list_metrics_gfx90a(binary_handler_analyze_rocprof_compute):
code = binary_handler_analyze_rocprof_compute(["analyze", "--list-metrics", "gfx90a"])
assert code == 1
2022-11-04 14:49:36 -05:00
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--list-metrics", "gfx90a"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.list_metrics
2025-02-20 17:51:57 -05:00
def test_list_metrics_gfx906(binary_handler_analyze_rocprof_compute):
code = binary_handler_analyze_rocprof_compute(["analyze", "--list-metrics", "gfx906"])
assert code == 1
2022-11-04 14:49:36 -05:00
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--list-metrics", "gfx906"]
)
assert code == 0
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.list_metrics
2025-02-20 17:51:57 -05:00
def test_list_metrics_gfx908(binary_handler_analyze_rocprof_compute):
code = binary_handler_analyze_rocprof_compute(["analyze", "--list-metrics", "gfx908"])
assert code == 1
2023-10-25 14:09:59 -05:00
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--list-metrics", "gfx908"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-03-07 15:21:44 -06:00
@pytest.mark.filter_block
2025-02-20 17:51:57 -05:00
def test_filter_block_1(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--block", "1"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-03-07 15:21:44 -06:00
@pytest.mark.filter_block
2025-02-20 17:51:57 -05:00
def test_filter_block_2(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--block", "5"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-03-07 15:21:44 -06:00
@pytest.mark.filter_block
2025-02-20 17:51:57 -05:00
def test_filter_block_3(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--block", "5.2.2"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-03-07 15:21:44 -06:00
@pytest.mark.filter_block
2025-02-20 17:51:57 -05:00
def test_filter_block_4(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--block", "6.1"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-03-07 15:21:44 -06:00
@pytest.mark.filter_block
2025-02-20 17:51:57 -05:00
def test_filter_block_5(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--block", "10"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-03-07 15:21:44 -06:00
@pytest.mark.filter_block
2025-02-20 17:51:57 -05:00
def test_filter_block_6(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--block", "100"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_filter_kernel_1(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel", "0"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_filter_kernel_2(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel", "1"]
)
assert code == 1
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_filter_kernel_3(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel", "0", "1"]
)
assert code == 1
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_dispatch_1(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--dispatch", "0"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_dispatch_2(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--dispatch", "1"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_dispatch_3(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--dispatch", "2"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_dispatch_4(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--dispatch", "1", "4"]
)
assert code == 1
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.serial
2025-02-20 17:51:57 -05:00
def test_dispatch_5(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--dispatch", "5", "6"]
)
assert code == 1
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.misc
2025-02-20 17:51:57 -05:00
def test_gpu_ids(binary_handler_analyze_rocprof_compute):
for dir in indirs:
2025-04-03 02:21:18 -04:00
if dir.endswith("MI350"):
gpu_id = "0"
else:
gpu_id = "2"
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
2025-04-03 02:21:18 -04:00
["analyze", "--path", workload_dir, "--gpu-id", gpu_id]
2025-02-20 17:51:57 -05:00
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.normal_unit
2025-02-20 17:51:57 -05:00
def test_normal_unit_per_wave(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--normal-unit", "per_wave"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.normal_unit
2025-02-20 17:51:57 -05:00
def test_normal_unit_per_cycle(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--normal-unit", "per_cycle"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.normal_unit
2025-02-20 17:51:57 -05:00
def test_normal_unit_per_second(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--normal-unit", "per_second"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.normal_unit
2025-02-20 17:51:57 -05:00
def test_normal_unit_per_kernel(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--normal-unit", "per_kernel"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2022-11-04 14:49:36 -05:00
@pytest.mark.max_stat
2025-02-20 17:51:57 -05:00
def test_max_stat_num_1(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--max-stat-num", "0"]
)
assert code == 0
2022-11-04 14:49:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2022-11-04 14:49:36 -05:00
@pytest.mark.max_stat
2025-02-20 17:51:57 -05:00
def test_max_stat_num_2(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--max-stat-num", "5"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
@pytest.mark.max_stat
2025-02-20 17:51:57 -05:00
def test_max_stat_num_3(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--max-stat-num", "10"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
@pytest.mark.max_stat
2025-02-20 17:51:57 -05:00
def test_max_stat_num_4(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--max-stat-num", "15"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.time_unit
2025-02-20 17:51:57 -05:00
def test_time_unit_s(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--time-unit", "s"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.time_unit
2025-02-20 17:51:57 -05:00
def test_time_unit_ms(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--time-unit", "ms"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.time_unit
2025-02-20 17:51:57 -05:00
def test_time_unit_us(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--time-unit", "us"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.time_unit
2025-02-20 17:51:57 -05:00
def test_time_unit_ns(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--time-unit", "ns"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.decimal
2025-02-20 17:51:57 -05:00
def test_decimal_1(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--decimal", "0"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.decimal
2025-02-20 17:51:57 -05:00
def test_decimal_2(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--decimal", "1"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.decimal
2025-02-20 17:51:57 -05:00
def test_decimal_3(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--decimal", "4"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
@pytest.mark.misc
2025-02-20 17:51:57 -05:00
def test_save_dfs(binary_handler_analyze_rocprof_compute):
output_path = "tests/workloads/vcopy/saved_analysis"
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--save-dfs", output_path]
)
assert code == 0
files_in_workload = os.listdir(output_path)
single_row_tables = [
"0.1_Top_Kernels.csv",
"13.3_Instruction_Cache_-_L2_Interface.csv",
"18.1_Aggregate_Stats_(All_channels).csv",
]
for file_name in files_in_workload:
df = pd.read_csv(output_path + "/" + file_name)
if file_name in single_row_tables:
assert len(df.index) == 1
else:
assert len(df.index) >= 3
shutil.rmtree(output_path)
test_utils.clean_output_dir(config["cleanup"], workload_dir)
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--save-dfs", output_path]
)
assert code == 0
files_in_workload = os.listdir(output_path)
for file_name in files_in_workload:
df = pd.read_csv(output_path + "/" + file_name)
if file_name in single_row_tables:
assert len(df.index) == 1
else:
assert len(df.index) >= 3
test_utils.clean_output_dir(config["cleanup"], workload_dir)
@pytest.mark.col
2025-02-20 17:51:57 -05:00
def test_col_1(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--cols", "0"]
)
assert code == 0
test_utils.clean_output_dir(config["cleanup"], workload_dir)
@pytest.mark.col
2025-02-20 17:51:57 -05:00
def test_col_2(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--cols", "2"]
)
assert code == 0
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.col
2025-02-20 17:51:57 -05:00
def test_col_3(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--cols", "0", "2"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.misc
2025-02-20 17:51:57 -05:00
def test_g(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "-g"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.kernel_verbose
2025-02-20 17:51:57 -05:00
def test_kernel_verbose_0(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel-verbose", "0"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.kernel_verbose
2025-02-20 17:51:57 -05:00
def test_kernel_verbose_1(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel-verbose", "1"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
2024-03-15 13:40:36 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-03-15 13:54:40 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.kernel_verbose
2025-02-20 17:51:57 -05:00
def test_kernel_verbose_2(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel-verbose", "2"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.kernel_verbose
2025-02-20 17:51:57 -05:00
def test_kernel_verbose_3(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel-verbose", "3"]
)
assert code == 0
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.kernel_verbose
2025-02-20 17:51:57 -05:00
def test_kernel_verbose_4(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel-verbose", "4"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.kernel_verbose
2025-02-20 17:51:57 -05:00
def test_kernel_verbose_5(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel-verbose", "5"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.kernel_verbose
2025-02-20 17:51:57 -05:00
def test_kernel_verbose_6(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--kernel-verbose", "6"]
)
assert code == 0
2023-10-25 14:09:59 -05:00
test_utils.clean_output_dir(config["cleanup"], workload_dir)
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.misc
2025-02-20 17:51:57 -05:00
def test_baseline(binary_handler_analyze_rocprof_compute):
code = binary_handler_analyze_rocprof_compute(
[
"analyze",
"--path",
"tests/workloads/vcopy/MI200",
"--path",
"tests/workloads/vcopy/MI100",
]
)
assert code == 0
code = binary_handler_analyze_rocprof_compute(
[
"analyze",
"--path",
"tests/workloads/vcopy/MI200",
"--path",
"tests/workloads/vcopy/MI200",
]
)
assert code == 1
code = binary_handler_analyze_rocprof_compute(
[
"analyze",
"--path",
"tests/workloads/vcopy/MI100",
"--path",
"tests/workloads/vcopy/MI100",
]
)
assert code == 1
2023-10-25 14:09:59 -05:00
2024-02-07 12:52:44 -06:00
@pytest.mark.misc
2025-02-20 17:51:57 -05:00
def test_dependency_MI100(binary_handler_analyze_rocprof_compute):
for dir in indirs:
workload_dir = test_utils.setup_workload_dir(dir)
2025-02-20 17:51:57 -05:00
code = binary_handler_analyze_rocprof_compute(
["analyze", "--path", workload_dir, "--dependency"]
)
assert code == 0
test_utils.clean_output_dir(config["cleanup"], workload_dir)