Skip to content

Commit

Permalink
Merge branch 'main' into docs/refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
peterjunpark authored Jun 17, 2024
2 parents 5250969 + 6d24a07 commit f85b070
Show file tree
Hide file tree
Showing 10,373 changed files with 20,123 additions and 245,506 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
8 changes: 0 additions & 8 deletions .dockerignore

This file was deleted.

8 changes: 3 additions & 5 deletions .github/workflows/mi-rhel9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,11 @@ jobs:
mkdir build
cd build
ml cmake
cmake -DENABLE_COVERAGE=ON -DPYTEST_NUMPROCS=8 ..
- name: Create HIP binary (vcopy)
run: |
hipcc --offload-arch=$CI_ARCH -o tests/vcopy ./sample/vcopy.cpp
- name: Run [profile] mode
cmake -DENABLE_TESTS=ON -DCMAKE_HIP_ARCHITECTURES=$CI_ARCH -DENABLE_COVERAGE=ON -DPYTEST_NUMPROCS=8 ..
- name: Build tests and Run [profile] mode
run: |
cd build
make
srun -N 1 -J omniperf -p $CI_QUEUE -t 00:20:00 ctest -j 4 --resource-spec-file ../tests/4gpus.json --verbose -L profile
- name: Run [analyze workloads] mode
if: '!cancelled()'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: Rename tarball
run: mv build/omniperf-*.tar.gz build/omniperf-${{github.ref_name}}.tar.gz
- name: Archive tarball
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: omniperf-${{github.ref_name}}.tar.gz
path: build/omniperf-${{github.ref_name}}.tar.gz
2 changes: 1 addition & 1 deletion .github/workflows/rhel-8.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ jobs:
- name: CTest- Analyze Workloads
run: |
cd build
ctest --verbose -R test_analyze_workloads test_saved_analysis
ctest --verbose -R test_analyze_workloads
2 changes: 1 addition & 1 deletion .github/workflows/ubuntu-jammy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ jobs:
- name: CTest- Analyze Workloads
run: |
cd build
ctest --verbose -R test_analyze_workloads test_saved_analysis
ctest --verbose -R test_analyze_workloads
3 changes: 2 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
# source control.
Xiaomin Lu
Cole Ramos
Karl Schultz
Fei Zheng
Nicholas Curtis
Jose Santos
Karl Schultz
22 changes: 22 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
Version 2.0.1 (03 Jun 2024)

* new option to force hardware target via OMNIPERF_ARCH_OVERRIDE global (#370)
* CI/CD support for MI300 hardware (#373)
* cmake build improvements (#374)
* support for MI308X hardware (#375)

Version 2.0.0 (17 May 2024)

* improved logging than spans all modes (#177) (#317) (#335) (#341)
* overhauled CI/CD that spans all modes (#179)
* extensible SoC classes to better support adding new hardware configs (#180)
* --kernel-verbose no longer overwrites kernel names (#193)
* general cleanup and improved organization of source code (#200) (#210)
* separate requirement files for docs and testing dependencies (#205) (#262) (#358)
* add support for MI300 hardware (#231)
* upgrade Grafana assets and build script to latest release (#235)
* update minimum ROCm and Python requirements (#277)
* sort rocprofiler input files prior to profiling (#304)
* new --quiet option will suppress verbose output and show a progress bar (#308)
* roofline support for Ubuntu 22.04 (#319)

Version 1.1.0-PR1 (13 Oct 2023)

* standardize headers to use 'avg' instead of 'mean'
Expand Down
24 changes: 15 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,16 @@ if(${GIT_CLONE})
endif()

# Setup testing collateral

option(ENABLE_TESTS "Enable compilation of testing collateral" OFF)
set(CMAKE_HIP_FLAGS_RELEASE "-O2")
if(${ENABLE_TESTS})
enable_language("C" "HIP")
add_subdirectory(tests)

endif()
message(STATUS "Enable tests compilation: ${ENABLE_TESTS}")

enable_testing()

option(ENABLE_COVERAGE "Enable code coverage" OFF)
Expand Down Expand Up @@ -251,15 +261,6 @@ add_test(
${COV_OPTION} ${PROJECT_SOURCE_DIR}/tests/test_analyze_workloads.py
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})

# ---------------------------
# saved analysis tests
# ---------------------------

add_test(
NAME test_saved_analysis
COMMAND pytest ${COV_OPTION} ${PROJECT_SOURCE_DIR}/tests/test_saved_analysis.py
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})

# ---------
# Install
# ---------
Expand Down Expand Up @@ -312,6 +313,11 @@ install(
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${PROJECT_NAME}
COMPONENT main
PATTERN "__pycache__" EXCLUDE)
# grafana assets
install(
DIRECTORY grafana
DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}
COMPONENT main)
# samples
install(
DIRECTORY sample
Expand Down
67 changes: 0 additions & 67 deletions Dockerfile

This file was deleted.

10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
## General
Omniperf is a system performance profiling tool for machine
learning/HPC workloads running on AMD MI GPUs. The tool presently
targets usage on MI100 and MI200 accelerators.
targets usage on MI100, MI200, and MI300 accelerators.

* For more information on available features, installation steps, and
workload profiling and analysis, please refer to the online
Expand Down Expand Up @@ -50,11 +50,11 @@ style reference is provided below for convenience:
Keith Lowery and
Nicholas Curtis and
Cristian Di Pietrantonio},
title = {AMDResearch/omniperf: v1.1.0-PR1 (13 Oct 2023)},
month = oct,
year = 2023,
title = {AMDResearch/omniperf: v2.0.1 (03 June 2024)},
month = june,
year = 2024,
publisher = {Zenodo},
version = {v1.1.0-PR1},
version = {v2.0.1},
doi = {10.5281/zenodo.7314631},
url = {https://doi.org/10.5281/zenodo.7314631}
}
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.0.0
2.0.1
1 change: 1 addition & 0 deletions grafana/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/dashboards
75 changes: 75 additions & 0 deletions grafana/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# -----------------------------------------------------------------------
# NOTE:
# Dependencies are not included as part of Omniperf.
# It's the user's responsibility to accept any licensing implications
# before building the project
# -----------------------------------------------------------------------

FROM ubuntu:22.04
WORKDIR /app

USER root

ENV DEBIAN_FRONTEND noninteractive
ENV TZ "US/Chicago"
ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 20.12.2

ADD plugins/omniperf_plugin /var/lib/grafana/plugins/omniperf_plugin

# Install Grafana and MongoDB Community Edition
RUN apt-get update && \
apt-get install -y apt-transport-https software-properties-common wget && \
mkdir -p /etc/apt/keyrings/ && \
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/grafana.gpg > /dev/null && \
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee -a /etc/apt/sources.list.d/grafana.list && \
apt-get update && \
apt-get install -y grafana && \
apt-get install -y gnupg curl && \
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor && \
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list && \
apt-get update && \
apt-get install -y mongodb-org

RUN mkdir /usr/local/nvm && \
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \
. $NVM_DIR/nvm.sh && \
nvm install $NODE_VERSION && \
nvm alias default $NODE_VERSION && \
nvm use default

ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH

RUN npm --version && \
node --version

# Install Grafana plugins
RUN apt-get install -y tzdata systemd apt-utils npm vim net-tools && \
/usr/sbin/grafana-cli plugins install michaeldmoore-multistat-panel && \
/usr/sbin/grafana-cli plugins install ae3e-plotly-panel && \
/usr/sbin/grafana-cli plugins install natel-plotly-panel && \
/usr/sbin/grafana-cli plugins install grafana-image-renderer && \
/usr/sbin/grafana-cli plugins install aceiot-svg-panel && \
chown root:grafana /etc/grafana && \
cd /var/lib/grafana/plugins/omniperf_plugin && \
npm install && \
npm run build && \
apt-get autoremove -y && \
apt-get autoclean -y && \
sed -i "s/ bindIp.*/ bindIp: 0.0.0.0/" /etc/mongod.conf && \
mkdir -p /var/lib/grafana && \
touch /var/lib/grafana/grafana.lib && \
chown grafana:grafana /var/lib/grafana/grafana.lib

# Overwrite grafana ini file
COPY grafana.ini /etc/grafana

# Switch Grafana port to 4000
RUN sed -i "s/^;http_port = 3000/http_port = 4000/" /etc/grafana/grafana.ini && \
sed -i "s/^http_port = 3000/http_port = 4000/" /usr/share/grafana/conf/defaults.ini

# Starts mongo and grafana-server at startup
COPY docker-entrypoint.sh /docker-entrypoint.sh

ENTRYPOINT [ "/docker-entrypoint.sh" ]
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 4 additions & 0 deletions docker-compose.yml → grafana/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ services:
container_name: omniperf-grafana-v1.0
restart: always
build: .
environment:
- GF_PATHS_CONFIG="grafana/etc/grafana.ini"
- GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=amd-omniperf-data-plugin
- GF_DEFAULT_APP_MODE=development
ports:
- "14000:4000"
volumes:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
# SOFTWARE.
##############################################################################el

pushd /var/lib/grafana/plugins/omniperfData_plugin
pushd /var/lib/grafana/plugins/omniperf_plugin
npm run server &
popd

Expand Down
2 changes: 1 addition & 1 deletion docker/grafana.ini → grafana/grafana.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# change

# possible values : production, development
;app_mode = production
app_mode = development

# instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty
;instance_name = ${HOSTNAME}
Expand Down
7 changes: 7 additions & 0 deletions grafana/plugins/omniperf_plugin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Dependency directories
node_modules/
jspm_packages/

# Nuxt.js build / generate output
.nuxt
dist
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit f85b070

Please sign in to comment.