Update run-ci.py (#641)

* Temp: Fixing node id

* source formatting (clang-format v11) (#709)

Co-authored-by: ammarwa <3832908+ammarwa@users.noreply.github.com>

* Using logical node id

* Update agent.cpp

* Update agent.cpp

* Python formatting

* Update run-ci.py

* Update run-ci.py

* Update continuous_integration.yml

* Update continuous_integration.yml

running directly using the prepared runner container

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update run-ci.py

* Clean up

* Fixing install paths

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Fixing GPU Agents Test Validation

* python formatting (black) (#712)

Co-authored-by: ammarwa <3832908+ammarwa@users.noreply.github.com>

* Fixing the issue with rocclr detected kernels __amd_rocclr_.*

* python formatting (black) (#713)

Co-authored-by: ammarwa <3832908+ammarwa@users.noreply.github.com>

* Fixing the issue with rocclr detected kernels __amd_rocclr_.*

* Fixing static number of async copies and using hsa_api instead for validation

* python formatting (black) (#714)

Co-authored-by: ammarwa <3832908+ammarwa@users.noreply.github.com>

* Increasing the time limit for waiting on active signals

* Update continuous_integration.yml

* Update async_copy.cpp

* Update CMakeLists.txt

* changing node id to logical node id in rocprofv3

* Update tool.cpp

* testing async mem copy signal decrement

* Update logging.cpp

* Update validate.py

---------

Co-authored-by: Ammar ELWazir <aelwazir@rocprofiler1.amd.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ammarwa <3832908+ammarwa@users.noreply.github.com>
Co-authored-by: Ammar ELWazir <aelwazir@rocprofiler2.amd.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
This commit is contained in:
Ammar ELWazir
2024-04-02 01:39:24 -05:00
committed by GitHub
parent 62625d0aa1
commit 2905fb5e95
10 changed files with 144 additions and 93 deletions
@@ -4,6 +4,7 @@ import sys
import pytest
import numpy as np
import pandas as pd
import re
kernel_list = sorted(
["addition_kernel", "subtract_kernel", "multiply_kernel", "divide_kernel"]
@@ -23,11 +24,19 @@ def test_validate_counter_collection_pmc1(input_data: pd.DataFrame):
assert (df["Process_Id"].astype(int).values > 0).all()
assert len(df["Kernel_Name"]) > 0
assert kernel_list == sorted(df["Kernel_Name"].unique().tolist())
counter_collection_pmc1_kernel_list = [
x
for x in sorted(df["Kernel_Name"].unique().tolist())
if not re.search(r"__amd_rocclr_.*", x)
]
assert kernel_list == counter_collection_pmc1_kernel_list
kernel_count = dict([[itr, 0] for itr in kernel_list])
assert len(kernel_count) == len(kernel_list)
for itr in df["Kernel_Name"]:
if re.search(r"__amd_rocclr_.*", itr):
continue
kernel_count[itr] += 1
kn_cnt = [itr for _, itr in kernel_count.items()]
assert min(kn_cnt) == max(kn_cnt) and len(unique(kn_cnt)) == 1
@@ -27,7 +27,7 @@ set_tests_properties(
rocprofv3-test-trace-hip-in-libraries-execute
PROPERTIES
TIMEOUT
45
100
LABELS
"integration-tests"
ENVIRONMENT
@@ -1,7 +1,9 @@
#!/usr/bin/env python3
import re
import sys
import pytest
import subprocess
class dim3(object):
@@ -79,7 +81,6 @@ def test_api_trace(hsa_input_data, hip_input_data):
def test_kernel_trace(kernel_input_data):
valid_kernel_names = sorted(
[
"__amd_rocclr_fillBufferAligned",
"(anonymous namespace)::transpose(int const*, int*, int, int)",
"void (anonymous namespace)::addition_kernel<float>(float*, float const*, float const*, int, int)",
"void (anonymous namespace)::divide_kernel<float>(float*, float const*, float const*, int, int)",
@@ -91,6 +92,8 @@ def test_kernel_trace(kernel_input_data):
kernels = []
for row in kernel_input_data:
kernel_name = row["Kernel_Name"]
if re.search(r"__amd_rocclr_.*", kernel_name):
continue
assert row["Kind"] == "KERNEL_DISPATCH"
assert int(row["Agent_Id"]) > 0
@@ -123,18 +126,34 @@ def test_kernel_trace(kernel_input_data):
assert kernels == valid_kernel_names
def test_memory_copy_trace(memory_copy_input_data):
def test_memory_copy_trace(memory_copy_input_data, hsa_input_data):
for row in memory_copy_input_data:
assert row["Kind"] == "MEMORY_COPY"
assert row["Direction"] in ("HOST_TO_DEVICE", "DEVICE_TO_HOST")
if row["Direction"] == "HOST_TO_DEVICE":
assert int(row["Source_Agent_Id"]) == 0
output = subprocess.check_output(
'rocminfo | grep "Node: *'
+ row["Source_Agent_Id"]
+ '" -A 1 | grep "Device Type" | sed \'s/.*: *//\'',
shell=True,
)
assert int(str(output).find("CPU")) >= 0
elif row["Direction"] == "DEVICE_TO_HOST":
assert int(row["Destination_Agent_Id"]) == 0
output = subprocess.check_output(
'rocminfo | grep "Node: *'
+ row["Destination_Agent_Id"]
+ '" -A 1 | grep "Device Type" | sed \'s/.*: *//\'',
shell=True,
)
assert int(str(output).find("CPU")) >= 0
assert int(row["Correlation_Id"]) > 0
assert int(row["End_Timestamp"]) >= int(row["Start_Timestamp"])
assert len(memory_copy_input_data) == 120
valid_length = 0
for row in hsa_input_data:
if re.search(r".*memory_async_copy.*", row["Function"]):
valid_length += 1
assert len(memory_copy_input_data) == valid_length
if __name__ == "__main__":
+29 -4
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
import sys
import subprocess
import pytest
@@ -67,15 +68,39 @@ def test_memory_copy_trace(memory_copy_input_data):
row = memory_copy_input_data[0]
assert row["Direction"] == "HOST_TO_DEVICE"
assert int(row["Source_Agent_Id"]) == 0
assert int(row["Destination_Agent_Id"]) >= 1
output = subprocess.check_output(
'rocminfo | grep "Node: *'
+ row["Source_Agent_Id"]
+ '" -A 1 | grep "Device Type" | sed \'s/.*: *//\'',
shell=True,
)
assert int(str(output).find("CPU")) >= 0
output = subprocess.check_output(
'rocminfo | grep "Node: *'
+ row["Destination_Agent_Id"]
+ '" -A 1 | grep "Device Type" | sed \'s/.*: *//\'',
shell=True,
)
assert int(str(output).find("GPU")) >= 0
assert int(row["Correlation_Id"]) > 0
assert int(row["End_Timestamp"]) >= int(row["Start_Timestamp"])
row = memory_copy_input_data[1]
assert row["Direction"] == "DEVICE_TO_HOST"
assert int(row["Source_Agent_Id"]) >= 1
assert int(row["Destination_Agent_Id"]) == 0
output = subprocess.check_output(
'rocminfo | grep "Node: *'
+ row["Source_Agent_Id"]
+ '" -A 1 | grep "Device Type" | sed \'s/.*: *//\'',
shell=True,
)
assert int(str(output).find("GPU")) >= 0
output = subprocess.check_output(
'rocminfo | grep "Node: *'
+ row["Destination_Agent_Id"]
+ '" -A 1 | grep "Device Type" | sed \'s/.*: *//\'',
shell=True,
)
assert int(str(output).find("CPU")) >= 0
assert int(row["Correlation_Id"]) > 0
assert int(row["End_Timestamp"]) >= int(row["Start_Timestamp"])