Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
"features": {
"ghcr.io/devcontainers/features/go:1.3.2": {
"version": "1.24.5"
"version": "1.24.7"
},
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
"ghcr.io/devcontainers-extra/features/devcontainers-cli:1": {}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ jobs:
"mingw",
"nginx",
"node",
"nvidia-cuda",
"playwright-deps",
"python",
"rust",
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Below is a list with included features, click on the link for more details.
| [mingw](./features/src/mingw/README.md) | Installs MinGW. |
| [nginx](./features/src/nginx/README.md) | Installs Nginx. |
| [node](./features/src/node/README.md) | Installs Node.js. |
| [nvidia-cuda](./features/src/nvidia-cuda/README.md) | A package which installs NVIDIA CUDA. |
| [playwright-deps](./features/src/playwright-deps/README.md) | Installs all dependencies required to run Playwright. |
| [python](./features/src/python/README.md) | Installs Python. |
| [rust](./features/src/rust/README.md) | A package which installs Rust, common Rust utilities and their required dependencies. |
Expand Down
5 changes: 5 additions & 0 deletions build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,11 @@ func init() {
gotaskr.Task("Feature:node:Test", func() error { return testFeature("node") })
gotaskr.Task("Feature:node:Publish", func() error { return publishFeature("node") })

////////// nvidia-cuda
gotaskr.Task("Feature:nvidia-cuda:Package", func() error { return packageFeature("nvidia-cuda") })
gotaskr.Task("Feature:nvidia-cuda:Test", func() error { return testFeature("nvidia-cuda") })
gotaskr.Task("Feature:nvidia-cuda:Publish", func() error { return publishFeature("nvidia-cuda") })

////////// playwright-deps
gotaskr.Task("Feature:playwright-deps:Package", func() error { return packageFeature("playwright-deps") })
gotaskr.Task("Feature:playwright-deps:Test", func() error { return testFeature("playwright-deps") })
Expand Down
48 changes: 48 additions & 0 deletions features/src/nvidia-cuda/NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
## Notes

### System Compatibility

> Only amd64 is supported

Debian, Ubuntu

### Accessed Urls
Comment thread
mailaenderli marked this conversation as resolved.
Outdated

Needs access to the following URL for downloading and resolving:
* https://developer.download.nvidia.com

### Install the NVIDIA Container Toolkit

Follow [NVIDIA's instructions to install the NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html) on your host machine. The NVIDIA Container Toolkit is available on a variety of Linux distributions. Make sure you have [installed the NVIDIA driver](https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html) for your Linux distribution before installing the NVIDIA Container Toolkit.

### Package Dependency Tree

Here is a list of the dependency tree of the packages in case you want to install only some of them.

cuda-toolkit
- cuda-compiler
- cuda-cuobjdump
- cuda-cuxxfilt
- cuda-nvcc
- cuda-nvprune
- cuda-libraries
- libnpp
- cuda-libraries-dev
- cuda-tools
- cuda-command-line-tools
- cuda-nvtx
- cuda-visual-tools
- gds-tools
- cuda-documentation
- cuda-nvml-dev

### NVIDIA cuDNN

TODO: This is not yet supported

* libcudnn8 - cuDNN runtime libraries
* libcudnn8-dev - cuDNN development libraries and headers
* libcudnn9-cuda-11 - cuDNN runtime libraries for CUDA 11.8
* libcudnn9-dev-cuda-11 - cuDNN development headers and symlinks for CUDA 11.8
* libcudnn9-cuda-12 - cuDNN runtime libraries for CUDA 12.4
* libcudnn9-dev-cuda-12 - cuDNN development headers and symlinks for CUDA 12.4
80 changes: 80 additions & 0 deletions features/src/nvidia-cuda/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# NVIDIA CUDA (nvidia-cuda)

A package which installs NVIDIA CUDA.

## Example Usage

```json
"features": {
"ghcr.io/postfinance/devcontainer-features/nvidia-cuda:0.1.0": {
"version": "latest",
"installLibraries": true,
"installDevLibraries": true,
"installCompiler": true,
"installTools": true,
"additionalCudaPackages": "",
"downloadUrl": ""
}
}
```

## Options

| Option | Description | Type | Default Value | Proposals |
|-----|-----|-----|-----|-----|
| version | The version of NVIDIA CUDA to install. | string | latest | latest, 12.9, 13.1 |
| installLibraries | Installs all runtime CUDA Library packages. | boolean | true | true, false |
| installDevLibraries | Installs all development CUDA Library packages. | boolean | true | true, false |
| installCompiler | Installs all CUDA compiler packages. | boolean | true | true, false |
| installTools | Installs all CUDA command line and visual tools. | boolean | true | true, false |
| additionalCudaPackages | A comma-separated list of additional CUDA packages to install. Disable the other flags to have full control over what is installed. | string | <empty> | |
| downloadUrl | The download URL to use for CUDA binaries. | string | <empty> | https://mycompany.com/artifactory/nvidia-cuda-generic-remote/ |

## Notes

### System Compatibility

> Only amd64 is supported

Debian, Ubuntu

### Accessed Urls
Comment thread
mailaenderli marked this conversation as resolved.
Outdated

Needs access to the following URL for downloading and resolving:
* https://developer.download.nvidia.com

### Install the NVIDIA Container Toolkit

Follow [NVIDIA's instructions to install the NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html) on your host machine. The NVIDIA Container Toolkit is available on a variety of Linux distributions. Make sure you have [installed the NVIDIA driver](https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html) for your Linux distribution before installing the NVIDIA Container Toolkit.

### Package Dependency Tree

Here is a list of the dependency tree of the packages in case you want to install only some of them.

cuda-toolkit
- cuda-compiler
- cuda-cuobjdump
- cuda-cuxxfilt
- cuda-nvcc
- cuda-nvprune
- cuda-libraries
- libnpp
- cuda-libraries-dev
- cuda-tools
- cuda-command-line-tools
- cuda-nvtx
- cuda-visual-tools
- gds-tools
- cuda-documentation
- cuda-nvml-dev

### NVIDIA cuDNN

TODO: This is not yet supported

* libcudnn8 - cuDNN runtime libraries
* libcudnn8-dev - cuDNN development libraries and headers
* libcudnn9-cuda-11 - cuDNN runtime libraries for CUDA 11.8
* libcudnn9-dev-cuda-11 - cuDNN development headers and symlinks for CUDA 11.8
* libcudnn9-cuda-12 - cuDNN runtime libraries for CUDA 12.4
* libcudnn9-dev-cuda-12 - cuDNN development headers and symlinks for CUDA 12.4
51 changes: 51 additions & 0 deletions features/src/nvidia-cuda/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"id": "nvidia-cuda",
"version": "0.1.0",
"name": "NVIDIA CUDA",
"description": "A package which installs NVIDIA CUDA.",
"options": {
"version": {
"type": "string",
"proposals": [
"latest",
"12.9",
"13.1"
],
"default": "latest",
"description": "The version of NVIDIA CUDA to install."
},
"installLibraries": {
"type": "boolean",
"default": true,
"description": "Installs all runtime CUDA Library packages."
},
"installDevLibraries": {
"type": "boolean",
"default": true,
"description": "Installs all development CUDA Library packages."
},
"installCompiler": {
"type": "boolean",
"default": true,
"description": "Installs all CUDA compiler packages."
},
"installTools": {
"type": "boolean",
"default": true,
"description": "Installs all CUDA command line and visual tools."
},
"additionalCudaPackages": {
"type": "string",
"default": "",
"description": "A comma-separated list of additional CUDA packages to install. Disable the other flags to have full control over what is installed."
},
"downloadUrl": {
"type": "string",
"default": "",
"proposals": [
"https://mycompany.com/artifactory/nvidia-cuda-generic-remote/"
],
"description": "The download URL to use for CUDA binaries."
}
}
}
10 changes: 10 additions & 0 deletions features/src/nvidia-cuda/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
. ./functions.sh

"./installer_$(detect_arch)" \
Comment thread
mailaenderli marked this conversation as resolved.
-version="${VERSION:-"latest"}" \
-installLibraries="${INSTALLLIBRARIES:-"true"}" \
-installDevLibraries="${INSTALLDEVLIBRARIES:-"true"}" \
-installCompiler="${INSTALLCOMPILER:-"true"}" \
-installTools="${INSTALLTOOLS:-"true"}" \
-additionalCudaPackages="${ADDITIONALCUDAPACKAGES:-""}" \
-downloadUrl="${DOWNLOADURL:-""}"
Loading
Loading