Tooling to Containerize an OpenCL Visual Analytics Platform G R A P H I S T R Y Lee Butterman lsb@graphistry.com Graphistry, Inc.
Graphistry is using GPUs to power the future of visual analytics 100 ⨉ data in the first client ⟷ cloud GPU visual analytics platform: see all known proteins https://labs.graphistry.com/graph/graph.html?dataset=Biogrid&workbook=3fc6c877dc94b107
Every known protein in the NIH BioGrid database at a glance
Real-time zoom in to see detail
Inspection over all columns of data
Scrub a histogram to see different clusters
How to build & deploy a web app with a GPU-accelerated HTTP loop? Goal: Change OpenCL kernels, 1-click deploy to environments in minutes!
Plan Reproducible builds : artifact-based deploys Host management : GPU drivers et cetera on the box Validation: minimize GPU surprises Fallback : multicore via CPU
Problem: Reproducible Builds Deploy artifact to staging, production, a customer’s air gapped network Easily re-deploy old build Docker is popular and has a huge container ecosystem
Problem: Make Docker Talk to GPU nvidia-docker : wraps the Docker CLI Need drivers on disk Customers on Ubuntu, RHEL, and more Install Docker, nvidia-docker, drivers on RHEL/Ubuntu ⇒ our Ansible script! https://github.com/graphistry/infrastructure/tree/master/nvidia-docker-host nvidia-docker 2.0: native orchestration docker-swarm/kubernetes/mesos
Add NodeJS to GPU-Accelerated Containers We need company-wide base containers of app runtime + OpenCL drivers Pull from dockerhub: graphistry/{cpu,gpu}-base, graphistry/js-and-{cpu,gpu}
Auto-Test GPU Environment Assumptions! • Insufficient: nvidia-smi alone • Better: clinfo , testing node-opencl, wide coverage • Use our library cl.js to do a simple image convolution • Pull & test from dockerhub: graphistry/cljs Edge Detection Demo 7 ms to compute.
CPU Mode for the full app is a great idea nvidia-docker only supports Linux Many developers are not using Linux natively Sufficient performance, much less cost Pull from docker hub: graphistry/js-and-cpu
Recap • Build apps and tests on top of GPU and CPU OpenCL containers • Package an artifact for a deploy • Setup nvidia-docker host to run the artifact ➔ Automatically & reliably go from 0 to new machine running new code in half an hour! https://github.com/graphistry/infrastructure
Thank You! G R A P H I S T R Y info@graphistry & build@graphistry.com Lee Butterman lsb@graphistry.com Graphistry, Inc.
Recommend
More recommend