aboutsummaryrefslogtreecommitdiffhomepage
path: root/.devcontainer
diff options
context:
space:
mode:
Diffstat (limited to '.devcontainer')
-rw-r--r--.devcontainer/Dockerfile37
-rw-r--r--.devcontainer/devcontainer.json34
2 files changed, 71 insertions, 0 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 0000000..3df6b99
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,37 @@
+FROM nvidia/cuda:12.4.1-base-ubuntu22.04
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get update -y && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ wget \
+ build-essential \
+ cmake \
+ ninja-build \
+ python3 \
+ ripgrep \
+ git \
+ ltrace
+
+# Feel free to change to a newer version if you have a newer verison on your host
+ARG CUDA_VERSION=12-4
+# Docker <-> host driver version compatiblity is newer host <-> older docker
+# We don't care about a specific driver version, so pick oldest 5XX
+ARG CUDA_DRIVER=515
+RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ nvidia-utils-${CUDA_DRIVER} \
+ cuda-cudart-${CUDA_VERSION}
+
+ARG ROCM_VERSION=6.2.2
+RUN mkdir --parents --mode=0755 /etc/apt/keyrings && \
+ wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
+ gpg --dearmor | tee /etc/apt/keyrings/rocm.gpg > /dev/null && \
+ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/${ROCM_VERSION} jammy main" > /etc/apt/sources.list.d/rocm.list && \
+ echo 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' > /etc/apt/preferences.d/rocm-pin-600 && \
+ DEBIAN_FRONTEND=noninteractive apt update -y && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ rocminfo \
+ rocm-gdb \
+ rocm-smi-lib \
+ hip-runtime-amd && \
+ echo '/opt/rocm/lib' > /etc/ld.so.conf.d/rocm.conf && \
+ ldconfig
+
+ENV PATH=$PATH:/opt/rocm-6.2.2/bin
+
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..7cae35a
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,34 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/rust
+{
+ "name": "zluda",
+ "build": {
+ "dockerfile": "Dockerfile"
+ },
+ "securityOpt": [ "seccomp=unconfined" ],
+ "runArgs": [
+ "--runtime=nvidia",
+ "--device=/dev/kfd",
+ "--device=/dev/dri",
+ "--group-add=video"
+ ],
+ "mounts": [
+ {
+ "source": "${localEnv:HOME}/.cargo/",
+ "target": "/root/.cargo",
+ "type": "bind"
+ }
+ ],
+ // https://containers.dev/features.
+ "features": {
+ "ghcr.io/devcontainers/features/rust:1": {}
+ },
+ // https://aka.ms/dev-containers-non-root.
+ "remoteUser": "root",
+ //"hostRequirements": { "gpu": "optional" }
+ "customizations": {
+ "vscode": {
+ "extensions": [ "mhutchie.git-graph" ],
+ }
+}
+}