Comments (8)
That's right @FabioLuporini. The docker folder contains the 3 images we use for our CI testing. One per supported distro: SLES 15, Ubuntu 20.04, and RHEL 8.
I'm not sure if that's what you're looking for. It satisfies your ROCm requirement, but MPI, Omniperf, and Omnitrace would need to be added. Pretty easy tweak if you wanted to put that in (probably 3-5 lines of code in Dockerfile)
I'm not sure the Omniperf repo would be the place for such a Dockerfile, but if you submit a PR perhaps we could find a place to host it elsewhere. Hope this helps!
from omniperf.
From the omnitrace perspective, I am considering streamlining installation of a pre-built binary with a omnitrace-docker-install.sh
script that is a part of the release, which, from your perspective, would look something like:
ARG OMNITRACE_VERSION=latest
RUN wget https://github.com/AMDResearch/omnitrace/releases/download/${OMNITRACE_VERSION}/omnitrace-docker-install.sh && \
chmod +x ./omnitrace-docker-install.sh && \
./omnitrace-docker-install.sh && \
rm ./omnitrace-docker-install.sh
And the script would just be something like:
OS_DISTRIB=$(cat /etc/os-release | grep '^ID=' | sed -r 's/=/ /g' | awk '{print $NF}')
OS_VERSION=$(cat /etc/os-release | grep '^VERSION_ID=' | sed -r 's/[="]/ /g' | awk '{print $NF}')
for i in version version-dev version-hip-libraries version-hip-sdk
do
if [ -f /opt/rocm/.info/${i} ]; then
ROCM_VERSION=$(cat /opt/rocm/.info/${i} | sed -r 's/[\.-]/ /g' | awk '{print 10000*$1+100*$2}')
break
fi
done
OMNITRACE_INSTALL_SCRIPT=omnitrace-@OMNITRACE_VERSION@-${OS_DISTRIB}-${OS_VERSION}-ROCm-${ROCM_VERSION}-PAPI-OMPT-Python3.sh
wget -O ./omnitrace-install.sh https://github.com/AMDResearch/omnitrace/releases/download/v@OMNITRACE_VERSION@/${OMNITRACE_INSTALL_SCRIPT}
chmod +x ./${OMNITRACE_INSTALL_SCRIPT}
mkdir -p ${OMNITRACE_INSTALL_DIR}
./${OMNITRACE_INSTALL_SCRIPT} --prefix=${OMNITRACE_INSTALL_DIR} --skip-license --exclude-subdir
rm ./${OMNITRACE_INSTALL_SCRIPT}
where @OMNITRACE_VERSION@
is encoded directly (since this will be directly tied to the omnitrace-docker-install.sh
script in that release).
from omniperf.
Actually, I will probably just call it omnitrace-install.sh
since this will work outside of docker too.
from omniperf.
That would be perfect for us!
from omniperf.
@FabioLuporini See ROCm/omnitrace#221. It got complicated enough that I used python instead of bash so while that may require installing python in the container, the python script uses only standard libraries so at least it doesn't require any pip installs.
from omniperf.
Thanks. That's completely fine for us, we apt-get-install python anyway :)
from omniperf.
Hi, I see a docker folder now. And an amdgpu.deb package for ubuntu?
from omniperf.
Gotcha, thanks!
This is how we install ROCm + MPI: https://github.com/devitocodes/devito/blob/master/docker/Dockerfile.amd
And here's a relatively old PR that attempts to add Omniperf and Omnitrace to our Dockerfile.amd
https://github.com/devitocodes/devito/pull/2032/files (note that the Dockerfile.amd
in this PR is fairly older than that linked above)
I must review the Omni* installation instructions to see if anything has changed. One of the reasons I never really completed the PR above is that Omni* is a fast-moving project (which is great!), and perhaps installation instructions would change as well, and I was not particularly willing to maintain that
from omniperf.
Related Issues (20)
- Weird interactions between CLI filtering args and standalone gui
- Request roofline-only data files
- Hard coded bandwidth in standalone GUI ranges HOT 1
- Update Grafana GUI for v2.0 metrics HOT 1
- Enable Mi300 Roofline HOT 3
- KeyError: `Grid_Size' when filtering for invalid device or kernel HOT 1
- Enable rocprofv2 on Mi200
- rmtree called on a symlink fails HOT 3
- Metric filtering does not work with baseline compare HOT 3
- Consistent rocprof run order
- 'Issue loading top kernels. Check pmc_kernel_top.csv' when using --no-roof on MI200
- Roofline crashes in Ubuntu 22.04 HOT 1
- In 2.x branch "--list-kernels" argument not recognized HOT 3
- Add a batch mode that parallelizes counter collection over multiple identical GPUs
- --list-metrics requires a workload directory be specified
- Kernel filtering with Omniperf profile HOT 1
- Omniperf --help says flag is `--kernel-verbose`, but `omniperf profile` doesn't recognize that flag HOT 2
- Allow not profiling a specific "troublesome" kernel
- Add Checkpointing to profiling to save profiling progress
- Non-deterministic ordering of pmc_perf_*.txt file (sometimes???)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from omniperf.