Create docker images to run the JayBeams benchmarks and programs.
coryan opened this issue · 2 comments
I want to have docker images for the JayBeams programs and benchmarks, without having to install the full development environment.
One way to solve the problem would be to create static binaries, but apparently this does not work with OpenCL: the OpenCL model is to dynamically load the device driver.
Maybe we can create static binaries for some programs and not others. That would make it possible to include the static binaries in really small images.
For binaries that must have shared libraries and dynamic loading: we will have to create mid-sized images with the necessary shared libraries, but without the development environment.
Copying from #99:
At the end of this task I want to be able to run the JayBeams benchmarks inside a docker container. I think this will require me to:
-
Change the rules to install benchmarks and their dependencies (driver scripts for example) in something like
/opt/jaybeams
. -
Run
make
andmake install
inside a container with the docker development images and where the destination for the install target is a docker volume. -
Possibly the install target should include installing the Dockerfiles to create the runtime images too.
-
Then run
docker build
to package the contents of /opt/jaybeams into a container. That must install all the dependencies, such as shared libraries, and tools used by the benchmarks. -
Then one can run a container with those images that just executes the benchmark, but might need to export the benchmark result to yet-another-volume.
-
Maybe I can figure out how to automatically upload the results to Google Cloud Storage (GCS). The last thing is not a requirement of this bug, but a nice to have.