Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dpcpp builds #67

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Dpcpp builds #67

wants to merge 2 commits into from

Conversation

trws
Copy link
Collaborator

@trws trws commented Feb 17, 2022

Not sure this is the best way, adding cuda and hip backend dpcpp compilers.

@vsoch
Copy link
Contributor

vsoch commented Feb 17, 2022

okay! So here is how I test uptodate, given that you have Go. If you need some kind of release LMK I can add an automated build - release workflow tonight.

git clone https://github.com/vsoch/uptodate
cd uptodate

And given a repo (this one)

$ cd /tmp
$ git clone -b dpcpp https://github.com/trws/docker-images/
$ cd ubuntu/dpcpp-cuda

And then to run uptodate (I usually run from uptodate root)

go run main.go dockerbuild --registry ghcr.io/rse-ops /tmp/docker-images/ubuntu/dpcpp-cuda
$ go run main.go dockerbuild --registry ghcr.io/rse-ops --all /tmp/docker-images/dpcpp-cuda/
              _            _       _       
  _   _ _ __ | |_ ___   __| | __ _| |_ ___ 
 | | | | '_ \| __/ _ \ / _  |/ _  | __/ _ \
 | |_| | |_) | || (_) | (_| | (_| | ||  __/
  \__,_| .__/ \__\___/ \__,_|\__,_|\__\___|
       |_|                     dockerbuild

docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version= ghcr.io/rse-ops/dpcpp-cuda-cuda-:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-10.1.243 ghcr.io/rse-ops/dpcpp-cuda-cuda-cuda-10.1.243:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.0.3 ghcr.io/rse-ops/dpcpp-cuda-cuda-cuda-11.0.3:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.1.1 ghcr.io/rse-ops/dpcpp-cuda-cuda-cuda-11.1.1:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.2.2 ghcr.io/rse-ops/dpcpp-cuda-cuda-cuda-11.2.2:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.3.1 ghcr.io/rse-ops/dpcpp-cuda-cuda-cuda-11.3.1:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.4.0 ghcr.io/rse-ops/dpcpp-cuda-cuda-cuda-11.4.0:dpcpp-2021.09

And I'm playing around with organization - we could either put this in the cuda folder:

$ go run main.go dockerbuild --registry ghcr.io/rse-ops --all /tmp/docker-images/ubuntu/cuda/dpcpp/
              _            _       _       
  _   _ _ __ | |_ ___   __| | __ _| |_ ___ 
 | | | | '_ \| __/ _ \ / _  |/ _  | __/ _ \
 | |_| | |_) | || (_) | (_| | (_| | ||  __/
  \__,_| .__/ \__\___/ \__,_|\__,_|\__\___|
       |_|                     dockerbuild

docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version= ghcr.io/rse-ops/dpcpp-cuda-:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-10.1.243 ghcr.io/rse-ops/dpcpp-cuda-cuda-10.1.243:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.0.3 ghcr.io/rse-ops/dpcpp-cuda-cuda-11.0.3:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.1.1 ghcr.io/rse-ops/dpcpp-cuda-cuda-11.1.1:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.2.2 ghcr.io/rse-ops/dpcpp-cuda-cuda-11.2.2:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.3.1 ghcr.io/rse-ops/dpcpp-cuda-cuda-11.3.1:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.4.0 ghcr.io/rse-ops/dpcpp-cuda-cuda-11.4.0:dpcpp-2021.09

Or we could put it at the top level

$ go run main.go dockerbuild --registry ghcr.io/rse-ops --all /tmp/docker-images/dpcpp/cuda
              _            _       _       
  _   _ _ __ | |_ ___   __| | __ _| |_ ___ 
 | | | | '_ \| __/ _ \ / _  |/ _  | __/ _ \
 | |_| | |_) | || (_) | (_| | (_| | ||  __/
  \__,_| .__/ \__\___/ \__,_|\__,_|\__\___|
       |_|                     dockerbuild

docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version= ghcr.io/rse-ops/cuda-cuda-:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-10.1.243 ghcr.io/rse-ops/cuda-cuda-cuda-10.1.243:dpcpp-2021.09
docker build -f Dockerfile --build-arg cuda_version=cuda-11.0.3 --build-arg dpcpp_version=2021.09 ghcr.io/rse-ops/cuda-cuda-cuda-11.0.3:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.1.1 ghcr.io/rse-ops/cuda-cuda-cuda-11.1.1:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.2.2 ghcr.io/rse-ops/cuda-cuda-cuda-11.2.2:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.3.1 ghcr.io/rse-ops/cuda-cuda-cuda-11.3.1:dpcpp-2021.09
docker build -f Dockerfile --build-arg dpcpp_version=2021.09 --build-arg cuda_version=cuda-11.4.0 ghcr.io/rse-ops/cuda-cuda-cuda-11.4.0:dpcpp-2021.09

And I'm looking at that output, and I think I should tweak uptodate to not include repeated strings. Let me do that tonight (it's not a lab project) and then we can discuss organization!

Also -I needed to remove the min versions for it to work. Because the version strings aren't in semver it doesn't order them correctly.

@vsoch
Copy link
Contributor

vsoch commented Feb 17, 2022

I'm also wondering - maybe we should add a param in the uptodate.yaml that can make it easy for the user to specify the exact container name they want? That way we can continue nesting into the cuda folder without a super long name. E.g., @trws if you had to name these two containers, what would be your preference?

@trws
Copy link
Collaborator Author

trws commented Feb 17, 2022

It would be something like dpcpp-cuda-<cuda ver> and dpcpp-hip-<hip ver>. It occurred to me today that I'm not completely sure these are mutually exclusive, if we can build one image with both that might be good, but then I need to figure out how to get a cuda+hip base.

@vsoch
Copy link
Contributor

vsoch commented Feb 17, 2022

@trws see #68

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants