From 50dd5a697eabe9e0834274dfb4cb7da51db5215c Mon Sep 17 00:00:00 2001 From: adapryor Date: Wed, 27 Nov 2024 17:57:01 -0600 Subject: [PATCH 1/3] SWDEV-500830 add building and running examples Signed-off-by: adapryor Change-Id: I976e999d4a9f4a22730542df95f50549f58ad317 --- .github/workflows/main.yml | 22 ++++++++++++++++++++++ example/rocprofiler_example.cc | 3 +-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 52467861..008593d2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -179,3 +179,25 @@ jobs: else echo "No missing libs found!" fi + + - name: Build RDC Examples + shell: bash + run: | + cd /opt/rocm/share/rdc/example + cmake -B build + make -C build -j $(nproc) + + - name: Test RDC Examples + shell: bash + run: | + cd /opt/rocm/share/rdc/example/build + for example in ./diagnostic ./fieldvalue ./jobstats ./rocprofiler; do + echo "Testing $example..." + echo 0 | $example + if [ $? -ne 0 ]; then + echo "Example $example failed!" + exit 1 + fi + done + echo "All examples ran successfully!" + diff --git a/example/rocprofiler_example.cc b/example/rocprofiler_example.cc index 48c69e94..98460559 100644 --- a/example/rocprofiler_example.cc +++ b/example/rocprofiler_example.cc @@ -128,8 +128,7 @@ int run() { field_ids.push_back(RDC_FI_GPU_MEMORY_USAGE); field_ids.push_back(RDC_FI_POWER_USAGE); // profiler metrics - field_ids.push_back(RDC_FI_PROF_MEAN_OCCUPANCY_PER_CU); - field_ids.push_back(RDC_FI_PROF_MEAN_OCCUPANCY_PER_ACTIVE_CU); + field_ids.push_back(RDC_FI_PROF_OCCUPANCY_PERCENT); field_ids.push_back(RDC_FI_PROF_ACTIVE_CYCLES); field_ids.push_back(RDC_FI_PROF_ACTIVE_WAVES); field_ids.push_back(RDC_FI_PROF_ELAPSED_CYCLES); From 1c2269942d6f87c233447f37433e9b1d92fc5892 Mon Sep 17 00:00:00 2001 From: adapryor Date: Wed, 27 Nov 2024 17:57:01 -0600 Subject: [PATCH 2/3] SWDEV-500830 add building and running examples Signed-off-by: adapryor Change-Id: I976e999d4a9f4a22730542df95f50549f58ad317 Signed-off-by: adapryor --- .github/workflows/main.yml | 22 ++++++++++++++++++++++ example/diagnostic_example.cc | 3 ++- example/rocprofiler_example.cc | 3 +-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 52467861..008593d2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -179,3 +179,25 @@ jobs: else echo "No missing libs found!" fi + + - name: Build RDC Examples + shell: bash + run: | + cd /opt/rocm/share/rdc/example + cmake -B build + make -C build -j $(nproc) + + - name: Test RDC Examples + shell: bash + run: | + cd /opt/rocm/share/rdc/example/build + for example in ./diagnostic ./fieldvalue ./jobstats ./rocprofiler; do + echo "Testing $example..." + echo 0 | $example + if [ $? -ne 0 ]; then + echo "Example $example failed!" + exit 1 + fi + done + echo "All examples ran successfully!" + diff --git a/example/diagnostic_example.cc b/example/diagnostic_example.cc index 9acd7bc6..f518d735 100644 --- a/example/diagnostic_example.cc +++ b/example/diagnostic_example.cc @@ -103,7 +103,8 @@ int main(int, char**) { // (2) start to run short diagnostic. rdc_diag_response_t response; - result = rdc_diagnostic_run(rdc_handle, group_id, RDC_DIAG_LVL_SHORT, nullptr, 0, &response); + rdc_diag_callback_t callback; + result = rdc_diagnostic_run(rdc_handle, group_id, RDC_DIAG_LVL_SHORT, nullptr, 0, &response, &callback); if (result != RDC_ST_OK) { std::cout << "Error run RDC_DIAG_LVL_SHORT diagnostic. Return: " << rdc_status_string(result); diff --git a/example/rocprofiler_example.cc b/example/rocprofiler_example.cc index 48c69e94..98460559 100644 --- a/example/rocprofiler_example.cc +++ b/example/rocprofiler_example.cc @@ -128,8 +128,7 @@ int run() { field_ids.push_back(RDC_FI_GPU_MEMORY_USAGE); field_ids.push_back(RDC_FI_POWER_USAGE); // profiler metrics - field_ids.push_back(RDC_FI_PROF_MEAN_OCCUPANCY_PER_CU); - field_ids.push_back(RDC_FI_PROF_MEAN_OCCUPANCY_PER_ACTIVE_CU); + field_ids.push_back(RDC_FI_PROF_OCCUPANCY_PERCENT); field_ids.push_back(RDC_FI_PROF_ACTIVE_CYCLES); field_ids.push_back(RDC_FI_PROF_ACTIVE_WAVES); field_ids.push_back(RDC_FI_PROF_ELAPSED_CYCLES); From 7e955184759b138d33b91cabab21ea3eccdc1c13 Mon Sep 17 00:00:00 2001 From: adapryor Date: Tue, 3 Dec 2024 14:24:30 -0600 Subject: [PATCH 3/3] SWDEV-500830 add building and running examples Signed-off-by: adapryor Change-Id: I2472585b10ec8f95cc7513e617f83c713575f02a --- .github/workflows/main.yml | 51 +++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c77aafbb..0f8c224e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -152,4 +152,53 @@ jobs: fi done echo "All examples ran successfully!" - + + + + test: + needs: build + runs-on: lstt + container: rocm/rocm-build-ubuntu-22.04:6.2 + + steps: + - name: Set up apt repos + run: | + cat /etc/os-release + apt update -y + # provides add-apt-repository and support for caching actions + apt install -y software-properties-common jq nodejs + + - name: Package RDC + uses: actions/download-artifact@v3 + with: + name: rdc + path: /opt/ + + - name: Test RDC installation + shell: bash + run: | + COUNT=$(find /opt/ -iname 'rdc*.deb' | wc -l) + test "$COUNT" -eq '2' + dpkg --force-all -i /opt/rdc*.deb + # confirm binaries are installed + find $ROCM_DIR/bin -maxdepth 1 -iname rdcd + find $ROCM_DIR/bin -maxdepth 1 -iname rdci + find $ROCM_DIR/share/rdc -iname rdctst + # confirm that libraries are installed + MISSING_LIBS=() + for lib in librdc.so librdc_bootstrap.so librdc_client.so; do + test -e "$ROCM_DIR/lib/$lib" || MISSING_LIBS+=("$lib") + done + for lib in librdc_rocr.so librdc_rocp.so; do + test -e "$ROCM_DIR/lib/rdc/$lib" || MISSING_LIBS+=("$lib") + done + + if test "${#MISSING_LIBS[@]}" != "0"; then + echo "Missing libs found!" + for lib in "${MISSING_LIBS[@]}"; do + echo "- $lib" + done + exit 1 + else + echo "No missing libs found!" + fi \ No newline at end of file