Code Monkey home page Code Monkey logo

Comments (8)

coleramos425 avatar coleramos425 commented on July 23, 2024 1

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.

jrmadsen avatar jrmadsen commented on July 23, 2024

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.

jrmadsen avatar jrmadsen commented on July 23, 2024

Actually, I will probably just call it omnitrace-install.sh since this will work outside of docker too.

from omniperf.

FabioLuporini avatar FabioLuporini commented on July 23, 2024

That would be perfect for us!

from omniperf.

jrmadsen avatar jrmadsen commented on July 23, 2024

@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.

FabioLuporini avatar FabioLuporini commented on July 23, 2024

Thanks. That's completely fine for us, we apt-get-install python anyway :)

from omniperf.

FabioLuporini avatar FabioLuporini commented on July 23, 2024

Hi, I see a docker folder now. And an amdgpu.deb package for ubuntu?

from omniperf.

FabioLuporini avatar FabioLuporini commented on July 23, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.